2001-07-01
2001-07-01 21:05:08 by Martin Stjernholm <mast@lysator.liu.se>
-
e1be4f029dbd2d1def6afd4a3fb155a34ba22722
(83 lines)
(+43/-40)
[
Show
| Annotate
]
Branch: 7.9
More accurate types in some places. Use PRINTSIZET et al to avoid
conversions to long for fprintf.
Rev: src/gc.c:1.163
30:
#include "block_alloc.h"
- RCSID("$Id: gc.c,v 1.162 2001/07/01 18:17:30 mast Exp $");
+ RCSID("$Id: gc.c,v 1.163 2001/07/01 21:05:08 mast Exp $");
/* Run garbage collect approximately every time
* 20 percent of all arrays, objects and programs is
95:
#define GC_VERBOSE_DO(X)
#endif
- INT32 num_objects = 3; /* Account for *_empty_array. */
- INT32 num_allocs =0;
+ int num_objects = 3; /* Account for *_empty_array. */
+ int num_allocs =0;
ptrdiff_t alloc_threshold = MIN_ALLOC_THRESHOLD;
PMOD_EXPORT int Pike_in_gc = 0;
int gc_generation = 0;
239:
void dump_gc_info(void)
{
- fprintf(stderr,"Current number of objects: %ld\n",(long)num_objects);
- fprintf(stderr,"Objects allocated total : %ld\n",(long)num_allocs);
- fprintf(stderr," threshold for next gc() : %ld\n",(long)alloc_threshold);
+ fprintf(stderr,"Current number of objects: %d\n",num_objects);
+ fprintf(stderr,"Objects allocated total : %d\n",num_allocs);
+ fprintf(stderr," threshold for next gc() : %"PRINTPTRDIFFT"d\n",alloc_threshold);
fprintf(stderr,"Average allocs per gc() : %f\n",objects_alloced);
fprintf(stderr,"Average frees per gc() : %f\n",objects_freed);
fprintf(stderr,"Second since last gc() : %ld\n",
332:
type=attempt_to_identify(memblock);
if(memblock)
- fprintf(stderr,"%*s-> from %s %p offset %ld\n",
+ fprintf(stderr,"%*s-> from %s %p offset %"PRINTPTRDIFFT"d\n",
indent,"",
get_name_of_type(type),
memblock,
- DO_NOT_WARN((long)((char *)location - (char *)memblock)));
+ (char *)location - (char *)memblock);
else
fprintf(stderr,"%*s-> at location %p%s\n",
indent,"",
382:
ptr < (char*)(p->inherits+p->num_inherits))
{
e=((char *)ptr - (char *)(p->inherits)) / sizeof(struct inherit);
- fprintf(stderr,"%*s **In p->inherits[%ld] (%s)\n",indent,"",
- DO_NOT_WARN((long)e),
- p->inherits[e].name ? p->inherits[e].name->str : "no name");
+ fprintf(stderr,"%*s **In p->inherits[%"PRINTPTRDIFFT"d] (%s)\n",indent,"",
+ e, p->inherits[e].name ? p->inherits[e].name->str : "no name");
break;
}
394:
{
e = ((char *)ptr - (char *)(p->constants)) /
sizeof(struct program_constant);
- fprintf(stderr,"%*s **In p->constants[%ld] (%s)\n",indent,"",
- DO_NOT_WARN((long)e),
- p->constants[e].name ? p->constants[e].name->str : "no name");
+ fprintf(stderr,"%*s **In p->constants[%"PRINTPTRDIFFT"d] (%s)\n",indent,"",
+ e, p->constants[e].name ? p->constants[e].name->str : "no name");
break;
}
408:
e = ((char *)ptr - (char *)(p->identifiers)) /
sizeof(struct identifier);
- fprintf(stderr,"%*s **In p->identifiers[%ld] (%s)\n",indent,"",
- DO_NOT_WARN((long)e),
- p->identifiers[e].name ?
+ fprintf(stderr,"%*s **In p->identifiers[%"PRINTPTRDIFFT"d] (%s)\n",indent,"",
+ e, p->identifiers[e].name ?
(strlen(p->identifiers[e].name->str)<100 ? p->identifiers[e].name->str : "Name too long or already freed.." )
: "no name");
break;
419:
#define FOO(NTYP,TYP,NAME) \
if(location == (void *)&p->NAME) fprintf(stderr,"%*s **In p->" #NAME "\n",indent,""); \
if(ptr >= (char *)p->NAME && ptr<(char*)(p->NAME+p->PIKE_CONCAT(num_,NAME))) \
- fprintf(stderr,"%*s **In p->" #NAME "[%ld]\n",indent,"", \
- PTRDIFF_T_TO_LONG(((char *)ptr - (char *)(p->NAME)) / sizeof(TYP)));
+ fprintf(stderr,"%*s **In p->" #NAME "[%"PRINTPTRDIFFT"d]\n",indent,"", \
+ ((char *)ptr - (char *)(p->NAME)) / sizeof(TYP));
#include "program_areas.h"
break;
489:
{
struct array *a=(struct array *)descblock;
struct svalue *s=(struct svalue *)location;
- fprintf(stderr,"%*s **In index number %ld\n",indent,"",
- DO_NOT_WARN((long)(s-ITEM(a))));
+ fprintf(stderr,"%*s **In index number %"PRINTPTRDIFFT"d\n",indent,"",
+ s-ITEM(a));
break;
}
859:
case T_STRING:
{
struct pike_string *s=(struct pike_string *)a;
- fprintf(stderr, "%*s**String length is %ld:\n", indent, "",
- DO_NOT_WARN((long)s->len));
+ fprintf(stderr, "%*s**String length is %"PRINTPTRDIFFT"d:\n",
+ indent, "", s->len);
if(s->len>77)
{
fprintf(stderr,"%*s** \"%60s ...\"\n",indent,"",s->str);
925:
switch(s->type)
{
case T_INT:
- fprintf(stderr," %ld\n",(long)s->u.integer);
+ fprintf(stderr," %"PRINTPIKEINT"d\n",s->u.integer);
break;
case T_FLOAT:
1698:
}
CYCLE_DEBUG_MSG(m, "gc_cycle_push, no live recurse");
}
+
else {
/* We'll get here eventually in the normal recursion. Pop off
* the remaining live recurse frames for the last thing. */
2105:
int do_gc(void)
{
double tmp;
- int objs, pre_kill_objs;
+ ptrdiff_t objs, pre_kill_objs;
double multiplier;
struct array *a;
struct multiset *l;
2209:
*/
call_callback(& gc_callbacks, (void *)0);
- GC_VERBOSE_DO(fprintf(stderr, "| check: %u references checked, counted %lu weak refs\n",
- checked, SIZE_T_TO_ULONG(gc_ext_weak_refs)));
+ GC_VERBOSE_DO(fprintf(stderr, "| check: %u references checked, "
+ "counted %"PRINTSIZET"u weak refs\n",
+ checked, gc_ext_weak_refs));
Pike_in_gc=GC_PASS_MARK;
2242:
GC_VERBOSE_DO(fprintf(stderr,
"| mark: %u markers referenced, %u weak references freed,\n"
- "| %d things to free, got %lu tricky weak refs\n",
- marked, weak_freed, delayed_freed,
- SIZE_T_TO_ULONG(gc_ext_weak_refs)));
+ "| %d things to free, "
+ "got %"PRINTSIZET"u tricky weak refs\n",
+ marked, weak_freed, delayed_freed, gc_ext_weak_refs));
{
#ifdef PIKE_DEBUG
2272: Inside #if defined(PIKE_DEBUG)
if (NEXT(&rec_list) || gc_rec_last != &rec_list || gc_rec_top)
fatal("Recurse list not empty or inconsistent after cycle check pass.\n");
if (gc_ext_weak_refs != orig_ext_weak_refs)
- fatal("gc_ext_weak_refs changed from %lu to %lu in cycle check pass.\n",
- SIZE_T_TO_ULONG(orig_ext_weak_refs), SIZE_T_TO_ULONG(gc_ext_weak_refs));
+ fatal("gc_ext_weak_refs changed from %"PRINTSIZET"u "
+ "to %"PRINTSIZET"u in cycle check pass.\n",
+ orig_ext_weak_refs, gc_ext_weak_refs);
#endif
GC_VERBOSE_DO(fprintf(stderr,
2301:
gc_zap_ext_weak_refs_in_programs();
GC_VERBOSE_DO(
fprintf(stderr,
- "| zap weak: freed %ld external weak refs, %lu internal still around,\n"
+ "| zap weak: freed %"PRINTPTRDIFFT"d external weak refs, "
+ "%"PRINTSIZET"u internal still around,\n"
"| %d more things to free\n",
- PTRDIFF_T_TO_LONG(to_free - gc_ext_weak_refs),
- SIZE_T_TO_ULONG(gc_ext_weak_refs), delayed_freed - obj_count));
+ to_free - gc_ext_weak_refs, gc_ext_weak_refs,
+ delayed_freed - obj_count));
}
#ifdef PIKE_DEBUG
2502: Inside #if defined(PIKE_DEBUG)
if(GC_VERBOSE_DO(1 ||) t_flag)
{
#ifdef HAVE_GETHRTIME
- fprintf(stderr,"done (freed %ld of %ld things), %ld ms.\n",
- (long)objs,(long)objs + num_objects,
- (long)((gethrtime() - gcstarttime)/1000000));
+ fprintf(stderr,
+ "done (freed %"PRINTPTRDIFFT"d of %"PRINTPTRDIFFT"d things), %ld ms.\n",
+ objs, objs + num_objects, (long)((gethrtime() - gcstarttime)/1000000));
#else
- fprintf(stderr,"done (freed %ld of %ld things)\n",
- (long)objs,(long)objs + num_objects);
+ fprintf(stderr,
+ "done (freed %"PRINTPTRDIFFT"d of %"PRINTPTRDIFFT"d things)\n",
+ objs, objs + num_objects);
#endif
}
#endif