+ // update range to not clear still alive blocks
+ for (entry = *blist; entry != NULL; entry = entry->next) {
+ block = entry->block;
+ if (block->addr > a) {
+ if (to > block->addr)
+ to = block->addr;
+ }
+ else {
+ if (from < block->end_addr)
+ from = block->end_addr;
+ }
+ }
+
+ // clear code marks