Lines 28-34
Link Here
|
28 |
|
28 |
|
29 |
volatile memory_word *varmem = NULL; |
29 |
volatile memory_word *varmem = NULL; |
30 |
|
30 |
|
31 |
#ifndef NDEBUG |
31 |
#if 1 |
32 |
char *varmem_sizes = NULL; |
32 |
char *varmem_sizes = NULL; |
33 |
#endif |
33 |
#endif |
34 |
|
34 |
|
Lines 1273-1279
Link Here
|
1273 |
r = free_chain[s]; |
1273 |
r = free_chain[s]; |
1274 |
if (r != null) { |
1274 |
if (r != null) { |
1275 |
free_chain[s] = vlink(r); |
1275 |
free_chain[s] = vlink(r); |
1276 |
#ifndef NDEBUG |
1276 |
#if 1 |
1277 |
varmem_sizes[r] = s; |
1277 |
varmem_sizes[r] = s; |
1278 |
#endif |
1278 |
#endif |
1279 |
vlink(r) = null; |
1279 |
vlink(r) = null; |
Lines 1303-1309
Link Here
|
1303 |
type(p)); |
1303 |
type(p)); |
1304 |
return; |
1304 |
return; |
1305 |
} |
1305 |
} |
1306 |
#ifndef NDEBUG |
1306 |
#if 1 |
1307 |
varmem_sizes[p] = 0; |
1307 |
varmem_sizes[p] = 0; |
1308 |
#endif |
1308 |
#endif |
1309 |
if (s < MAX_CHAIN_SIZE) { |
1309 |
if (s < MAX_CHAIN_SIZE) { |
Lines 1325-1338
Link Here
|
1325 |
{ |
1325 |
{ |
1326 |
register halfword p = q; |
1326 |
register halfword p = q; |
1327 |
while (vlink(p) != null) { |
1327 |
while (vlink(p) != null) { |
1328 |
#ifndef NDEBUG |
1328 |
#if 1 |
1329 |
varmem_sizes[p] = 0; |
1329 |
varmem_sizes[p] = 0; |
1330 |
#endif |
1330 |
#endif |
1331 |
var_used -= s; |
1331 |
var_used -= s; |
1332 |
p = vlink(p); |
1332 |
p = vlink(p); |
1333 |
} |
1333 |
} |
1334 |
var_used -= s; |
1334 |
var_used -= s; |
1335 |
#ifndef NDEBUG |
1335 |
#if 1 |
1336 |
varmem_sizes[p] = 0; |
1336 |
varmem_sizes[p] = 0; |
1337 |
#endif |
1337 |
#endif |
1338 |
vlink(p) = free_chain[s]; |
1338 |
vlink(p) = free_chain[s]; |
Lines 1352-1358
Link Here
|
1352 |
} |
1352 |
} |
1353 |
memset((void *) (varmem), 0, t * sizeof(memory_word)); |
1353 |
memset((void *) (varmem), 0, t * sizeof(memory_word)); |
1354 |
|
1354 |
|
1355 |
#ifndef NDEBUG |
1355 |
#if 1 |
1356 |
varmem_sizes = (char *) realloc(varmem_sizes, sizeof(char) * t); |
1356 |
varmem_sizes = (char *) realloc(varmem_sizes, sizeof(char) * t); |
1357 |
if (varmem_sizes == NULL) { |
1357 |
if (varmem_sizes == NULL) { |
1358 |
overflow_string("node memory size", var_mem_max); |
1358 |
overflow_string("node memory size", var_mem_max); |
Lines 1371-1377
Link Here
|
1371 |
dump_int(var_mem_max); |
1371 |
dump_int(var_mem_max); |
1372 |
dump_int(rover); |
1372 |
dump_int(rover); |
1373 |
dump_things(varmem[0], var_mem_max); |
1373 |
dump_things(varmem[0], var_mem_max); |
1374 |
#ifndef NDEBUG |
1374 |
#if 1 |
1375 |
dump_things(varmem_sizes[0], var_mem_max); |
1375 |
dump_things(varmem_sizes[0], var_mem_max); |
1376 |
#endif |
1376 |
#endif |
1377 |
dump_things(free_chain[0], MAX_CHAIN_SIZE); |
1377 |
dump_things(free_chain[0], MAX_CHAIN_SIZE); |
Lines 1390-1396
Link Here
|
1390 |
varmem = xmallocarray(memory_word, var_mem_max); |
1390 |
varmem = xmallocarray(memory_word, var_mem_max); |
1391 |
/*memset ((void *)varmem,0,x*sizeof(memory_word)); */ |
1391 |
/*memset ((void *)varmem,0,x*sizeof(memory_word)); */ |
1392 |
undump_things(varmem[0], x); |
1392 |
undump_things(varmem[0], x); |
1393 |
#ifndef NDEBUG |
1393 |
#if 1 |
1394 |
varmem_sizes = xmallocarray(char, var_mem_max); |
1394 |
varmem_sizes = xmallocarray(char, var_mem_max); |
1395 |
memset((void *) varmem_sizes, 0, var_mem_max * sizeof(char)); |
1395 |
memset((void *) varmem_sizes, 0, var_mem_max * sizeof(char)); |
1396 |
undump_things(varmem_sizes[0], x); |
1396 |
undump_things(varmem_sizes[0], x); |
Lines 1454-1460
Link Here
|
1454 |
} |
1454 |
} |
1455 |
test_rovers("taken"); |
1455 |
test_rovers("taken"); |
1456 |
assert(vlink(rover) < var_mem_max); |
1456 |
assert(vlink(rover) < var_mem_max); |
1457 |
#ifndef NDEBUG |
1457 |
#if 1 |
1458 |
varmem_sizes[r] = (s > 127 ? 127 : s); |
1458 |
varmem_sizes[r] = (s > 127 ? 127 : s); |
1459 |
#endif |
1459 |
#endif |
1460 |
vlink(r) = null; |
1460 |
vlink(r) = null; |
Lines 1495-1501
Link Here
|
1495 |
} |
1495 |
} |
1496 |
memset((void *) (varmem + var_mem_max), 0, x * sizeof(memory_word)); |
1496 |
memset((void *) (varmem + var_mem_max), 0, x * sizeof(memory_word)); |
1497 |
|
1497 |
|
1498 |
#ifndef NDEBUG |
1498 |
#if 1 |
1499 |
varmem_sizes = |
1499 |
varmem_sizes = |
1500 |
(char *) realloc(varmem_sizes, sizeof(char) * (var_mem_max + x)); |
1500 |
(char *) realloc(varmem_sizes, sizeof(char) * (var_mem_max + x)); |
1501 |
if (varmem_sizes == NULL) { |
1501 |
if (varmem_sizes == NULL) { |