Mercurial > hg > xemacs-beta
view lwlib/xlwmenuP.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 | a6c778975d7d |
children | ade4c7e2c6cb |
line wrap: on
line source
#ifndef INCLUDED_xlwmenuP_h_ #define INCLUDED_xlwmenuP_h_ #include "xlwmenu.h" #include <X11/CoreP.h> #ifdef HAVE_XFT_MENUBARS #include <X11/Xft/Xft.h> #endif /* Elements in the stack arrays. */ typedef struct _window_state { Window window; Position x; Position y; Dimension width; Dimension height; Dimension label_width; Dimension toggle_width; } window_state; /* New fields for the XlwMenu widget instance record */ typedef struct _XlwMenu_part { /* slots set by the resources */ #if defined(NEED_MOTIF) && !defined(HAVE_XFT_MENUBARS) XmFontList font_list; XmFontList font_list_2; XmFontList fallback_font_list; #else XFontStruct * font; #ifdef HAVE_XFT_MENUBARS String fcFontName; String xftFontName; XftFont *renderFont; #endif # ifdef USE_XFONTSET XFontSet font_set; # endif #endif Dimension font_ascent, font_descent; /* extracted from font/fontlist */ Pixel foreground; Pixel button_foreground; Pixel highlight_foreground; Pixel title_foreground; Dimension margin; Dimension horizontal_margin; Dimension vertical_margin; Dimension column_spacing; Dimension shadow_thickness; Dimension indicator_size; Pixel top_shadow_color; Pixel bottom_shadow_color; Pixel select_color; #ifdef HAVE_XFT_MENUBARS #endif Pixmap top_shadow_pixmap; Pixmap bottom_shadow_pixmap; Cursor cursor_shape; XtCallbackList open; XtCallbackList select; widget_value* contents; int horizontal; Boolean use_backing_store; Boolean bounce_down; Boolean lookup_labels; /* State of the XlwMenu */ int old_depth; widget_value** old_stack; int old_stack_length; /* New state after the user moved */ int new_depth; widget_value** new_stack; int new_stack_length; /* Window resources */ window_state* windows; int windows_length; /* Internal part, set by the XlwMenu */ GC foreground_gc; GC button_gc; GC background_gc; GC inactive_gc; GC inactive_button_gc; GC shadow_top_gc; GC shadow_bottom_gc; GC select_gc; GC highlight_gc; GC title_gc; Cursor cursor; Boolean popped_up; Pixmap gray_pixmap; /* Stay-up stuff */ Boolean pointer_grabbed; Boolean next_release_must_exit; Time menu_post_time, menu_bounce_time; widget_value * last_selected_val; } XlwMenuPart; /* Full instance record declaration */ typedef struct _XlwMenuRec { CorePart core; XlwMenuPart menu; } XlwMenuRec; /* New fields for the XlwMenu widget class record */ typedef struct { int dummy; } XlwMenuClassPart; /* Full class record declaration. */ typedef struct _XlwMenuClassRec { CoreClassPart core_class; XlwMenuClassPart menu_class; } XlwMenuClassRec; /* Class pointer. */ extern XlwMenuClassRec xlwMenuClassRec; #endif /* INCLUDED_xlwmenuP_h_ */