diff options
author | Teddy <ted.sybil@gmail.com> | 2013-08-13 10:25:53 +0800 |
---|---|---|
committer | Teddy <ted.sybil@gmail.com> | 2013-08-13 10:25:53 +0800 |
commit | d6765d8d42bd543b414d6ae54392247dd26da649 (patch) | |
tree | d84ecd755a01c07a02d7e54cd339ec36e4931c2c /gc.cpp | |
parent | 79a2ecc929b30ae40f9324c258d8ded99ecde259 (diff) |
a little improvement (but it can't resolve the circular referencing problem)
Diffstat (limited to 'gc.cpp')
-rw-r--r-- | gc.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -48,7 +48,7 @@ void GarbageCollector::force() { } // fetch the pending pointers in the list // clear the list pending_list = NULL; */ - fprintf(stderr, "%d\n", mapping.size()); + fprintf(stderr, "%ld\n", mapping.size()); for (EvalObj2Int::iterator it = mapping.begin(); it != mapping.end(); it++) if (it->second == 0) *r++ = it->first; @@ -86,10 +86,12 @@ void GarbageCollector::force() { fprintf(stderr, "GC: Forced clear, %lu objects are freed, " "%lu remains\n" "=============================\n", cnt, mapping.size()); -/* for (EvalObj2Int::iterator it = mapping.begin(); + +#endif +#ifdef GC_DEBUG + for (EvalObj2Int::iterator it = mapping.begin(); it != mapping.end(); it++) - fprintf(stderr, "%llx => %lu\n", (ull)it->first, it->second); - */ + fprintf(stderr, "%llx => %s\n", (ull)it->first, it->first->ext_repr().c_str()); #endif collecting = false; } |