comparison src/lrecord.h @ 5059:c8f90d61dcf3

fix memory usage stats to include pdumped objects -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-02-21 Ben Wing <ben@xemacs.org> * diagnose.el: * diagnose.el (show-object-memory-usage-stats): Fix errors preventing this from working properly, account for words like "entry" pluralized to "entries". src/ChangeLog addition: 2010-02-21 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC): * alloc.c (struct): * alloc.c (tick_lrecord_stats): * alloc.c (tick_lcrecord_stats): * alloc.c (sweep_lcrecords_1): * alloc.c (COUNT_FROB_BLOCK_USAGE): * alloc.c (SWEEP_FIXED_TYPE_BLOCK_1): * alloc.c (free_cons): * alloc.c (free_key_data): * alloc.c (free_button_data): * alloc.c (free_motion_data): * alloc.c (free_process_data): * alloc.c (free_timeout_data): * alloc.c (free_magic_data): * alloc.c (free_magic_eval_data): * alloc.c (free_eval_data): * alloc.c (free_misc_user_data): * alloc.c (free_marker): * alloc.c (gc_sweep_1): * alloc.c (HACK_O_MATIC): * alloc.c (FROB): * alloc.c (object_memory_usage_stats): * alloc.c (Fgarbage_collect): * dumper.c: * dumper.c (pdump_objects_unmark): * lrecord.h: * lrecord.h (enum lrecord_alloc_status): Fixes to memory-usage-tracking code, etc. (1) Incorporate NEW_GC stuff into FREE_FIXED_TYPE_WHEN_NOT_IN_GC to avoid duplication. (2) Rewrite tick_lcrecord_stats() to include separate tick_lrecord_stats(); use in dumper.c to note pdumped objects. (3) Instead of handling frob-block objects specially in object_memory_usage_stats(), have SWEEP_FIXED_TYPE_BLOCK_1 increment the stats in lrecord_stats[] so that they get handled like other objects. (4) Pluralize entry as entries, etc.
author Ben Wing <ben@xemacs.org>
date Sun, 21 Feb 2010 15:29:12 -0600
parents 0d4c9d0f6a8d
children ebee7d1e58bd 2a462149bd6a b785049378e3
comparison
equal deleted inserted replaced
5058:eb17f0c176ac 5059:c8f90d61dcf3
521 #define MARK_LRECORD_AS_LISP_READONLY(ptr) \ 521 #define MARK_LRECORD_AS_LISP_READONLY(ptr) \
522 ((void) (((struct lrecord_header *) ptr)->lisp_readonly = 1)) 522 ((void) (((struct lrecord_header *) ptr)->lisp_readonly = 1))
523 523
524 #else /* not NEW_GC */ 524 #else /* not NEW_GC */
525 525
526 enum lrecord_alloc_status
527 {
528 ALLOC_IN_USE,
529 ALLOC_FREE,
530 ALLOC_ON_FREE_LIST
531 };
532
533 void tick_lrecord_stats (const struct lrecord_header *h,
534 enum lrecord_alloc_status status);
535
526 #define LRECORD_FREE_P(ptr) \ 536 #define LRECORD_FREE_P(ptr) \
527 (((struct lrecord_header *) ptr)->type == lrecord_type_free) 537 (((struct lrecord_header *) ptr)->type == lrecord_type_free)
528 538
529 #define MARK_LRECORD_AS_FREE(ptr) \ 539 #define MARK_LRECORD_AS_FREE(ptr) \
530 ((void) (((struct lrecord_header *) ptr)->type = lrecord_type_free)) 540 ((void) (((struct lrecord_header *) ptr)->type = lrecord_type_free))