summaryrefslogtreecommitdiff
path: root/tool/ruby_vm/views/_leaf_helpers.erb
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-07-03 16:56:44 +0900
committerGitHub <noreply@github.com>2020-07-03 16:56:44 +0900
commita0f12a0258e4020bd657ee80b7d8f22bd33ea223 (patch)
treef6ebafa85cba2bddddc090f8d3c3b74c2c9f374b /tool/ruby_vm/views/_leaf_helpers.erb
parent8655c2e69041cc812d30c2e951a8ac9ea7a60c47 (diff)
Use ID instead of GENTRY for gvars. (#3278)
Use ID instead of GENTRY for gvars. Global variables are compiled into GENTRY (a pointer to struct rb_global_entry). This patch replace this GENTRY to ID and make the code simple. We need to search GENTRY from ID every time (st_lookup), so additional overhead will be introduced. However, the performance of accessing global variables is not important now a day and this simplicity helps Ractor development.
Notes
Notes: Merged-By: ko1 <ko1@atdot.net>
Diffstat (limited to 'tool/ruby_vm/views/_leaf_helpers.erb')
-rw-r--r--tool/ruby_vm/views/_leaf_helpers.erb57
1 files changed, 0 insertions, 57 deletions
diff --git a/tool/ruby_vm/views/_leaf_helpers.erb b/tool/ruby_vm/views/_leaf_helpers.erb
index ac60f2dcbc..2637f8777d 100644
--- a/tool/ruby_vm/views/_leaf_helpers.erb
+++ b/tool/ruby_vm/views/_leaf_helpers.erb
@@ -8,63 +8,6 @@
%;
#line <%= __LINE__ + 1 %> <%=cstr __FILE__ %>
-static bool
-leafness_of_getglobal(VALUE gentry)
-{
- const struct rb_global_entry *e = (void *)gentry;
-
- if (UNLIKELY(rb_gvar_is_traced(e))) {
- return false;
- }
- else {
- /* We cannot write this function using a switch() because a
- * case label cannot be a function pointer. */
- static rb_gvar_getter_t *const allowlist[] = {
- rb_gvar_val_getter,
- rb_gvar_var_getter,
- /* rb_gvar_undef_getter issues rb_warning() */
- };
- rb_gvar_getter_t *f = rb_gvar_getter_function_of(e);
- int i;
-
- for (i = 0; i < numberof(allowlist); i++) {
- if (f == allowlist[i]) {
- return true;
- }
- }
- return false;
- }
-}
-
-static bool
-leafness_of_setglobal(VALUE gentry)
-{
- const struct rb_global_entry *e = (void *)gentry;
-
- if (UNLIKELY(rb_gvar_is_traced(e))) {
- return false;
- }
- else {
- /* We cannot write this function using a switch() because a
- * case label cannot be a function pointer. */
- static rb_gvar_setter_t *const allowlist[] = {
- rb_gvar_val_setter,
- /* rb_gvar_readonly_setter issues rb_name_error() */
- rb_gvar_var_setter,
- rb_gvar_undef_setter,
- };
- rb_gvar_setter_t *f = rb_gvar_setter_function_of(e);
- int i;
-
- for (i = 0; i < numberof(allowlist); i++) {
- if (f == allowlist[i]) {
- return true;
- }
- }
- return false;
- }
-}
-
#include "iseq.h"
static bool