Skip to content
Snippets Groups Projects
Commit fc3e0de2 authored by Martin Nilsson's avatar Martin Nilsson
Browse files

Object counting code, mostly by mast.

Rev: lib/modules/Debug.pmod/module.pmod:1.4
parent c1e19332
No related branches found
No related tags found
No related merge requests found
// $Id: module.pmod,v 1.3 2002/11/27 21:14:05 nilsson Exp $
// $Id: module.pmod,v 1.4 2004/08/26 03:35:38 nilsson Exp $
#pike __REAL_VERSION__
......@@ -75,3 +75,25 @@ constant reset_dmalloc = _reset_dmalloc;
#if constant(_verify_internals)
constant verify_internals = _verify_internals;
#endif
//! Returns the number of objects of every kind in memory.
mapping(string:int) count_objects() {
int orig_enabled = Pike.gc_parameters()->enabled;
Pike.gc_parameters( (["enabled":0]) );
mapping(string:int) ret = ([]);
object obj = next_object();
// while( zero_type(_prev(obj)) ) obj=_prev(obj);
while(1) {
object next_obj;
if(catch(next_obj=_next(obj))) break;
string p = sprintf("%O",object_program(obj));
sscanf(p, "object_program(%s)", p);
ret[p]++;
obj = next_obj;
}
Pike.gc_parameters( (["enabled":orig_enabled]) );
return ret;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment