Method: RCSimCinterface.rcsim_add_scope_scopes
- Defined in:
- ext/hruby_sim/hruby_rcsim_build.c
.rcsim_add_scope_scopes(scopeV, scpVs) ⇒ Object
Adds sub scopes to a C scope.
1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 |
# File 'ext/hruby_sim/hruby_rcsim_build.c', line 1111
VALUE rcsim_add_scope_scopes(VALUE mod, VALUE scopeV, VALUE scpVs) {
/* Get the C scope from the Ruby value. */
Scope scope;
value_to_rcsim(ScopeS,scopeV,scope);
// printf("rcsim_add_scope_scopes with scope=%p\n",scope);
/* Prepare the size for the sub scopes. */
long num = RARRAY_LEN(scpVs);
long old_num = scope->num_scopes;
scope->num_scopes += num;
// printf("first scope->scopes=%p\n",scope->scopes); fflush(stdout);
scope->scopes = realloc(scope->scopes,
sizeof(Scope[scope->num_scopes]));
// scope->scopes = (Scope*)my_realloc(scope->scopes,
// sizeof(Scope[old_num]), sizeof(Scope[scope->num_scopes]));
// printf("now scope->scopes=%p\n",scope->scopes); fflush(stdout);
// printf("access test: %p\n",scope->scopes[0]); fflush(stdout);
/* Get and add the sub scopes from the Ruby value. */
for(long i=0; i< num; ++i) {
Scope scp;
// show_access(scope->scopes,old_num+i);
value_to_rcsim(ScopeS,rb_ary_entry(scpVs,i),scp);
scope->scopes[old_num + i] = scp;
}
return scopeV;
}
|