Method: RCSimCinterface.rcsim_add_scope_systemIs
- Defined in:
- ext/hruby_sim/hruby_rcsim_build.c
.rcsim_add_scope_systemIs(scopeV, sysVs) ⇒ Object
Adds system instances to a C scope.
1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 |
# File 'ext/hruby_sim/hruby_rcsim_build.c', line 1060
VALUE rcsim_add_scope_systemIs(VALUE mod, VALUE scopeV, VALUE sysVs) {
/* Get the C scope from the Ruby value. */
Scope scope;
value_to_rcsim(ScopeS,scopeV,scope);
// printf("rcsim_add_scope_systemIs with scope=%p\n",scope);
/* Prepare the size for the system instances. */
long num = RARRAY_LEN(sysVs);
long old_num = scope->num_systemIs;
scope->num_systemIs += num;
// printf("first scope->systemIs=%p\n",scope->systemIs); fflush(stdout);
scope->systemIs = realloc(scope->systemIs,
sizeof(SystemI[scope->num_systemIs]));
// scope->systemIs = (SystemI*)my_realloc(scope->systemIs,
// sizeof(SystemI[old_num]), sizeof(SystemI[scope->num_systemIs]));
// printf("now scope->systemIs=%p\n",scope->systemIs); fflush(stdout);
// printf("access test: %p\n",scope->systemIs[0]); fflush(stdout);
/* Get and add the system instances from the Ruby value. */
for(long i=0; i< num; ++i) {
SystemI sys;
// show_access(scope->systemIs,old_num+i);
value_to_rcsim(SystemIS,rb_ary_entry(sysVs,i),sys);
scope->systemIs[old_num + i] = sys;
}
return scopeV;
}
|