Method: RCSimCinterface.rcsim_add_block_inners
- Defined in:
- ext/hruby_sim/hruby_rcsim_build.c
.rcsim_add_block_inners(blockV, sigVs) ⇒ Object
Adds inners to a C block.
1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 |
# File 'ext/hruby_sim/hruby_rcsim_build.c', line 1405 VALUE rcsim_add_block_inners(VALUE mod, VALUE blockV, VALUE sigVs) { /* Get the C block from the Ruby value. */ Block block; value_to_rcsim(BlockS,blockV,block); // printf("rcsim_add_block_inners with block=%p\n",block); /* Prepare the size for the inners. */ long num = RARRAY_LEN(sigVs); long old_num = block->num_inners; block->num_inners += num; // printf("first block->inners=%p\n",block->inners); fflush(stdout); block->inners = realloc(block->inners, sizeof(SignalI[block->num_inners])); // block->inners = (SignalI*)my_realloc(block->inners, // sizeof(SignalI[old_num]), sizeof(SignalI[block->num_inners])); // printf("now block->inners=%p\n",block->inners); fflush(stdout); // printf("access test: %p\n",block->inners[0]); fflush(stdout); /* Get and add the signals from the Ruby value. */ for(long i=0; i< num; ++i) { SignalI sig; // show_access(block->inners,old_num+i); value_to_rcsim(SignalIS,rb_ary_entry(sigVs,i),sig); block->inners[old_num + i] = sig; } return blockV; } |