@@ -273,6 +273,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
273
273
if (!pool -> first ) Fill_Pool (pool );
274
274
node = pool -> first ;
275
275
pool -> first = * node ;
276
+ #ifdef WATCH_SERIES_POOL
277
+ printf (cs_cast ("*** SERIES_POOL Make_Node=> has: %u free: %u\n" ), Mem_Pools [SERIES_POOL ].has , Mem_Pools [SERIES_POOL ].free );
278
+ #endif
276
279
pool -> free -- ;
277
280
return (void * )node ;
278
281
}
@@ -290,6 +293,14 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
290
293
* node = Mem_Pools [pool_id ].first ;
291
294
Mem_Pools [pool_id ].first = node ;
292
295
Mem_Pools [pool_id ].free ++ ;
296
+ #ifdef WATCH_SERIES_POOL
297
+ if (pool_id == SERIES_POOL ) {
298
+ //if(Mem_Pools[SERIES_POOL].has == Mem_Pools[SERIES_POOL].free) {
299
+ // puts("last?");
300
+ //}
301
+ printf (cs_cast ("*** SERIES_POOL Free_Node=> has: %u free: %u\n" ), Mem_Pools [SERIES_POOL ].has , Mem_Pools [SERIES_POOL ].free );
302
+ }
303
+ #endif
293
304
}
294
305
295
306
@@ -320,6 +331,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
320
331
pool -> first = * node ;
321
332
pool -> free -- ;
322
333
length = pool -> wide ;
334
+ #ifdef WATCH_SERIES_POOL
335
+ if (pool_num == SERIES_POOL ) printf (cs_cast ("*** SERIES_POOL Make_Series_Data=> has: %u free: %u (size: %u)\n" ), Mem_Pools [SERIES_POOL ].has , Mem_Pools [SERIES_POOL ].free , length );
336
+ #endif
323
337
} else {
324
338
length = ALIGN (length , 2048 );
325
339
#ifdef DEBUGGING
@@ -338,6 +352,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
338
352
#endif
339
353
Mem_Pools [SYSTEM_POOL ].has += length ;
340
354
Mem_Pools [SYSTEM_POOL ].free ++ ;
355
+ #ifdef WATCH_SYSTEM_POOL
356
+ printf (cs_cast ("*** SYSTEM_POOL Make_Series_Data=> has: %u free: %u (size: %u)\n" ), Mem_Pools [SYSTEM_POOL ].has , Mem_Pools [SYSTEM_POOL ].free , length );
357
+ #endif
341
358
}
342
359
#ifdef CHAFF
343
360
memset ((REBYTE * )node , 0xff , length );
@@ -387,6 +404,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
387
404
pool -> free -- ;
388
405
length = pool -> wide ;
389
406
memset (node , 0 , length );
407
+ #ifdef WATCH_SERIES_POOL
408
+ if (pool_num == SERIES_POOL ) printf (cs_cast ("*** SERIES_POOL Make_Series=> has: %u free: %u (size: %u)\n" ), Mem_Pools [SERIES_POOL ].has , Mem_Pools [SERIES_POOL ].free , length );
409
+ #endif
390
410
} else {
391
411
if (powerof2 ) {
392
412
// !!! WHO added this and why??? Just use a left shift and mask!
@@ -415,6 +435,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
415
435
#endif
416
436
Mem_Pools [SYSTEM_POOL ].has += length ;
417
437
Mem_Pools [SYSTEM_POOL ].free ++ ;
438
+ #ifdef WATCH_SYSTEM_POOL
439
+ printf (cs_cast ("*** SYSTEM_POOL Make_Series => has: %u free: %u (size: %u)\n" ), Mem_Pools [SYSTEM_POOL ].has , Mem_Pools [SYSTEM_POOL ].free , length );
440
+ #endif
418
441
}
419
442
#ifdef CHAFF
420
443
memset ((REBYTE * )node , 0xff , length );
@@ -487,6 +510,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
487
510
* node = pool -> first ;
488
511
pool -> first = node ;
489
512
pool -> free ++ ;
513
+ #ifdef WATCH_SERIES_POOL
514
+ if (pool_num == SERIES_POOL ) printf (cs_cast ("*** SERIES_POOL Free_Series_Data=> has: %u free: %u (size: %u)\n" ), Mem_Pools [SERIES_POOL ].has , Mem_Pools [SERIES_POOL ].free , size );
515
+ #endif
490
516
} else {
491
517
#ifdef MUNGWALL
492
518
Free_Mem (((REBYTE * )node )- MUNG_SIZE , size + MUNG_SIZE * 2 );
@@ -495,6 +521,9 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
495
521
#endif
496
522
Mem_Pools [SYSTEM_POOL ].has -= size ;
497
523
Mem_Pools [SYSTEM_POOL ].free -- ;
524
+ #ifdef WATCH_SYSTEM_POOL
525
+ printf (cs_cast ("*** SYSTEM_POOL Free_Series_Data=> has: %u free: %u (size: %u)\n" ), Mem_Pools [SYSTEM_POOL ].has , Mem_Pools [SYSTEM_POOL ].free , size );
526
+ #endif
498
527
}
499
528
500
529
CHECK_MEMORY (2 );
@@ -516,7 +545,11 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
516
545
***********************************************************************/
517
546
{
518
547
REBCNT n ;
519
-
548
+ #ifdef WATCH_SERIES_POOL
549
+ if (SERIES_FREED (series )) {
550
+ puts ("series already free!" );
551
+ }
552
+ #endif
520
553
PG_Reb_Stats -> Series_Freed ++ ;
521
554
PG_Reb_Stats -> Series_Memory -= SERIES_TOTAL (series );
522
555
@@ -923,6 +956,7 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
923
956
//Dump_Series_In_Pool(-1);
924
957
925
958
FOREACH (n , SYSTEM_POOL ) {
959
+ //printf(cs_cast("*** Dispose_Pools[%u] Has: %u free: %u\n"), n, Mem_Pools[n].has, Mem_Pools[n].free);
926
960
if (Mem_Pools [n ].has == Mem_Pools [n ].free ) {
927
961
seg = Mem_Pools [n ].segs ;
928
962
while (seg ) {
@@ -932,9 +966,12 @@ const REBPOOLSPEC Mem_Pool_Spec[MAX_POOLS] =
932
966
}
933
967
}
934
968
else {
935
- // printf(cb_cast("Mem_Pool [%u] not empty! Has: %u free: %u\n"), n, Mem_Pools[n].has, Mem_Pools[n].free);
969
+ printf (cs_cast ( "!!! Mem_Pools [%u] not empty! Has: %u free: %u\n" ), n , Mem_Pools [n ].has , Mem_Pools [n ].free );
936
970
}
937
971
}
972
+ // SYSTEM_POOL contains not system series sizes (big series), at this state it should be empty!
973
+ if (Mem_Pools [SYSTEM_POOL ].has > 0 )
974
+ printf (cs_cast ("!!! Mem_Pools[SYSTEM_POOL].has: %u\n" ), Mem_Pools [SYSTEM_POOL ].has );
938
975
Free_Mem (Mem_Pools , 0 );
939
976
Free_Mem (PG_Pool_Map , 0 );
940
977
}
0 commit comments