Commit e509cfa6 authored by Dmitry Antipov's avatar Dmitry Antipov

* configure.in: Add glyphs category to --enable-checking option.

(GLYPH_DEBUG): Define if glyphs debugging is enabled.
* src/dispextern.h (GLYPH_DEBUG): Now defined in config.h if
enabled with --enable-checking=[all,glyphs] configure option.
Fix GLYPH_DEBUG usage assuming that it may be undefined,
adjust comments accordingly.
* src/dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
undefined, adjust comments accordingly.
* src/image.c: Likewise.
* src/scroll.c: Likewise.
* src/w32fns.c: Likewise.
* src/w32term.c: Likewise.
* src/xdisp.c: Likewise.
* src/xfaces.c: Likewise.
* src/xfns.c: Likewise.
* src/xterm.c: Likewise.
parent a54e2c05
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in: Add glyphs category to --enable-checking option.
(GLYPH_DEBUG): Define if glyphs debugging is enabled.
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in (ENABLE_CHECKING): Update comment.
......
......@@ -251,7 +251,7 @@ AC_ARG_ENABLE(checking,
enable only specific categories of checks.
Categories are: all,yes,no.
Flags are: stringbytes, stringoverrun, stringfreelist,
xmallocoverrun, conslist])],
xmallocoverrun, conslist, glyphs])],
[ac_checking_flags="${enableval}"],[])
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
for check in $ac_checking_flags
......@@ -264,19 +264,22 @@ do
ac_gc_check_string_overrun= ;
ac_gc_check_string_free_list= ;
ac_xmalloc_overrun= ;
ac_gc_check_cons_list= ;;
ac_gc_check_cons_list= ;
ac_check_glyphs= ;;
all) ac_enable_checking=1 ;
ac_gc_check_stringbytes=1 ;
ac_gc_check_string_overrun=1 ;
ac_gc_check_string_free_list=1 ;
ac_xmalloc_overrun=1 ;
ac_gc_check_cons_list=1 ;;
ac_gc_check_cons_list=1 ;
ac_check_glyphs=1 ;;
# these enable particular checks
stringbytes) ac_gc_check_stringbytes=1 ;;
stringoverrun) ac_gc_check_string_overrun=1 ;;
stringfreelist) ac_gc_check_string_free_list=1 ;;
xmallocoverrun) ac_xmalloc_overrun=1 ;;
conslist) ac_gc_check_cons_list=1 ;;
glyphs) ac_check_glyphs=1 ;;
*) AC_MSG_ERROR(unknown check category $check) ;;
esac
done
......@@ -308,6 +311,10 @@ if test x$ac_gc_check_cons_list != x ; then
AC_DEFINE(GC_CHECK_CONS_LIST, 1,
[Define this to check for errors in cons list.])
fi
if test x$ac_check_glyphs != x ; then
AC_DEFINE(GLYPH_DEBUG, 1,
[Define this to enable glyphs debugging code.])
fi
AC_ARG_ENABLE(check-lisp-object-type,
[AS_HELP_STRING([--enable-check-lisp-object-type],
......
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* dispextern.h (GLYPH_DEBUG): Now defined in config.h if
enabled with --enable-checking=[all,glyphs] configure option.
Fix GLYPH_DEBUG usage assuming that it may be undefined,
adjust comments accordingly.
* dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
undefined, adjust comments accordingly.
* image.c: Likewise.
* scroll.c: Likewise.
* w32fns.c: Likewise.
* w32term.c: Likewise.
* xdisp.c: Likewise.
* xfaces.c: Likewise.
* xfns.c: Likewise.
* xterm.c: Likewise.
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
Generalize run-time debugging checks.
......
......@@ -121,26 +121,21 @@ enum window_part
Debugging
***********************************************************************/
/* If GLYPH_DEBUG is non-zero, additional checks are activated. Turn
it off by defining the macro GLYPH_DEBUG to zero. */
/* If GLYPH_DEBUG is defined, additional checks are activated. */
#ifndef GLYPH_DEBUG
#define GLYPH_DEBUG 0
#endif
/* Macros to include code only if GLYPH_DEBUG != 0. */
/* Macros to include code only if GLYPH_DEBUG is defined. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
#define IF_DEBUG(X) X
#else
#define IF_DEBUG(X) (void) 0
#endif
/* Macro for displaying traces of redisplay. If Emacs was compiled
with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to
with GLYPH_DEBUG defined, the variable trace_redisplay_p can be set to
a non-zero value in debugging sessions to activate traces. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
extern int trace_redisplay_p EXTERNALLY_VISIBLE;
#include <stdio.h>
......@@ -151,11 +146,11 @@ extern int trace_redisplay_p EXTERNALLY_VISIBLE;
else \
(void) 0
#else /* GLYPH_DEBUG == 0 */
#else /* not GLYPH_DEBUG */
#define TRACE(X) (void) 0
#endif /* GLYPH_DEBUG == 0 */
#endif /* GLYPH_DEBUG */
......@@ -653,7 +648,7 @@ struct glyph_matrix
line. */
unsigned header_line_p : 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* A string identifying the method used to display the matrix. */
char method[512];
#endif
......@@ -671,7 +666,7 @@ struct glyph_matrix
/* Check that glyph pointers stored in glyph rows of MATRIX are okay.
This aborts if any pointer is found twice. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
void check_matrix_pointer_lossage (struct glyph_matrix *);
#define CHECK_MATRIX(MATRIX) check_matrix_pointer_lossage ((MATRIX))
#else
......@@ -950,10 +945,10 @@ struct glyph_row
/* Get a pointer to row number ROW in matrix MATRIX. If GLYPH_DEBUG
is defined to a non-zero value, the function matrix_row checks that
we don't try to access rows that are out of bounds. */
is defined, the function matrix_row checks that we don't try to
access rows that are out of bounds. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
struct glyph_row *matrix_row (struct glyph_matrix *, int);
#define MATRIX_ROW(MATRIX, ROW) matrix_row ((MATRIX), (ROW))
#else
......@@ -3067,7 +3062,7 @@ extern void produce_stretch_glyph (struct it *);
#ifdef HAVE_WINDOW_SYSTEM
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
extern void dump_glyph_string (struct glyph_string *) EXTERNALLY_VISIBLE;
#endif
......
......@@ -123,7 +123,7 @@ static void fill_up_glyph_row_area_with_spaces (struct glyph_row *, int);
static int scrolling_window (struct window *, int);
static int update_window_line (struct window *, int, int *);
static void mirror_make_current (struct window *, int);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static void check_matrix_pointers (struct glyph_matrix *,
struct glyph_matrix *);
#endif
......@@ -211,7 +211,7 @@ int fonts_changed_p;
/* Convert vpos and hpos from frame to window and vice versa.
This may only be used for terminal frames. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static int window_to_frame_vpos (struct window *, int);
static int window_to_frame_hpos (struct window *, int);
......@@ -311,12 +311,12 @@ DEFUN ("dump-redisplay-history", Fdump_redisplay_history,
}
#else /* GLYPH_DEBUG == 0 */
#else /* not GLYPH_DEBUG */
#define WINDOW_TO_FRAME_VPOS(W, VPOS) ((VPOS) + WINDOW_TOP_EDGE_LINE (W))
#define WINDOW_TO_FRAME_HPOS(W, HPOS) ((HPOS) + WINDOW_LEFT_EDGE_COL (W))
#endif /* GLYPH_DEBUG == 0 */
#endif /* GLYPH_DEBUG */
#if (defined PROFILING \
......@@ -419,14 +419,14 @@ margin_glyphs_to_reserve (struct window *w, int total_glyphs, Lisp_Object margin
return n;
}
#ifdef ENABLE_CHECKING
/* Return non-zero if ROW's hash value is correct, zero if not. */
/* Return non-zero if ROW's hash value is correct, zero if not.
Optimized away if ENABLE_CHECKING is not defined. */
static int
verify_row_hash (struct glyph_row *row)
{
return row->hash == row_hash (row);
}
#endif
/* Adjust glyph matrix MATRIX on window W or on a frame to changed
window sizes.
......@@ -1136,7 +1136,7 @@ assign_row (struct glyph_row *to, struct glyph_row *from)
is non-zero if the glyph memory of WINDOW_ROW is part of the glyph
memory of FRAME_ROW. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static int
glyph_row_slice_p (struct glyph_row *window_row, struct glyph_row *frame_row)
......@@ -1451,7 +1451,7 @@ realloc_glyph_pool (struct glyph_pool *pool, struct dim matrix_dim)
Debug Code
***********************************************************************/
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Flush standard output. This is sometimes useful to call from the debugger.
......@@ -1576,7 +1576,7 @@ check_matrix_invariants (struct window *w)
#endif /* 0 */
#endif /* GLYPH_DEBUG != 0 */
#endif /* GLYPH_DEBUG */
......@@ -2599,7 +2599,7 @@ build_frame_matrix_from_leaf_window (struct glyph_matrix *frame_matrix, struct w
SET_CHAR_GLYPH_FROM_GLYPH (*border, right_border_glyph);
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Window row window_y must be a slice of frame row
frame_y. */
eassert (glyph_row_slice_p (window_row, frame_row));
......@@ -3026,7 +3026,7 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Check that window and frame matrices agree about their
understanding where glyphs of the rows are to find. For each
......@@ -3082,7 +3082,7 @@ check_matrix_pointers (struct glyph_matrix *window_matrix,
}
}
#endif /* GLYPH_DEBUG != 0 */
#endif /* GLYPH_DEBUG */
......@@ -3090,7 +3090,7 @@ check_matrix_pointers (struct glyph_matrix *window_matrix,
VPOS and HPOS translations
**********************************************************************/
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Translate vertical position VPOS which is relative to window W to a
vertical position relative to W's frame. */
......@@ -3302,7 +3302,7 @@ update_frame (struct frame *f, int force_p, int inhibit_hairy_id_p)
}
/* Check window matrices for lost pointers. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
check_window_matrix_pointers (root_window);
add_frame_display_history (f, paused_p);
#endif
......@@ -3529,7 +3529,7 @@ update_window (struct window *w, int force_p)
int preempt_count = baud_rate / 2400 + 1;
#endif
struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Check that W's frame doesn't have glyph matrices. */
eassert (FRAME_WINDOW_P (XFRAME (WINDOW_FRAME (w))));
#endif
......@@ -3681,7 +3681,7 @@ update_window (struct window *w, int force_p)
#endif
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Remember the redisplay method used to display the matrix. */
strcpy (w->current_matrix->method, w->desired_matrix->method);
#endif
......@@ -3699,7 +3699,7 @@ update_window (struct window *w, int force_p)
else
paused_p = 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* check_current_matrix_flags (w); */
add_window_display_history (w, w->current_matrix->method, paused_p);
#endif
......@@ -6476,7 +6476,7 @@ syms_of_display (void)
defsubr (&Sinternal_show_cursor_p);
defsubr (&Slast_nonminibuf_frame);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
defsubr (&Sdump_redisplay_history);
#endif
......
......@@ -197,9 +197,8 @@ static void accumulate_script_ranges (Lisp_Object, Lisp_Object,
Lisp_Object);
static void set_fontset_font (Lisp_Object, Lisp_Object);
#ifdef ENABLE_CHECKING
/* Return 1 if ID is a valid fontset id, else return 0. */
/* Return 1 if ID is a valid fontset id, else return 0.
Optimized away if ENABLE_CHECKING is not defined. */
static int
fontset_id_valid_p (int id)
......@@ -207,8 +206,6 @@ fontset_id_valid_p (int id)
return (id >= 0 && id < ASIZE (Vfontset_table) - 1);
}
#endif
/********** MACROS AND FUNCTIONS TO HANDLE FONTSET **********/
......
......@@ -8686,7 +8686,7 @@ x_kill_gs_process (Pixmap pixmap, struct frame *f)
Tests
***********************************************************************/
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
DEFUN ("imagep", Fimagep, Simagep, 1, 1, 0,
doc: /* Value is non-nil if SPEC is a valid image specification. */)
......@@ -8708,7 +8708,7 @@ DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "")
return make_number (id);
}
#endif /* GLYPH_DEBUG != 0 */
#endif /* GLYPH_DEBUG */
/***********************************************************************
......@@ -8922,7 +8922,7 @@ non-numeric, there is no explicit limit on the size of images. */);
defsubr (&Simage_mask_p);
defsubr (&Simage_metadata);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
defsubr (&Simagep);
defsubr (&Slookup_image);
#endif
......
......@@ -264,7 +264,7 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix,
for (k = 0; k < window_size; ++k)
copy_from[k] = -1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
# define CHECK_BOUNDS \
do \
{ \
......@@ -322,7 +322,7 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix,
copy_from[i] = j;
retained_p[j] = 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
CHECK_BOUNDS;
#endif
}
......@@ -374,7 +374,7 @@ do_scrolling (struct frame *frame, struct glyph_matrix *current_matrix,
mirrored_line_dance (current_matrix, unchanged_at_top, window_size,
copy_from, retained_p);
/* Some sanity checks if GLYPH_DEBUG != 0. */
/* Some sanity checks if GLYPH_DEBUG is defined. */
CHECK_MATRIX (current_matrix);
if (terminal_window_p)
......
......@@ -183,7 +183,7 @@ unsigned int msh_mousewheel = 0;
#define MENU_FREE_DELAY 1000
static unsigned menu_free_timer = 0;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static int image_cache_refcount, dpyinfo_refcount;
#endif
......@@ -3996,14 +3996,14 @@ unwind_create_frame (Lisp_Object frame)
/* If frame is ``official'', nothing to do. */
if (NILP (Fmemq (frame, Vframe_list)))
{
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
struct w32_display_info *dpyinfo = FRAME_W32_DISPLAY_INFO (f);
#endif
x_free_frame_resources (f);
free_glyphs (f);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Check that reference counts are indeed correct. */
eassert (dpyinfo->reference_count == dpyinfo_refcount);
eassert (dpyinfo->terminal->image_cache->refcount == image_cache_refcount);
......@@ -4160,7 +4160,7 @@ This function is an internal primitive--use `make-frame' instead. */)
/* With FRAME_X_DISPLAY_INFO set up, this unwind-protect is safe. */
record_unwind_protect (unwind_create_frame, frame);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
image_cache_refcount =
FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0;
dpyinfo_refcount = dpyinfo->reference_count;
......@@ -5237,7 +5237,7 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
FRAME_FONTSET (f) = -1;
f->icon_name = Qnil;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
image_cache_refcount =
FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0;
dpyinfo_refcount = dpyinfo->reference_count;
......
......@@ -231,7 +231,7 @@ static void my_set_focus (struct frame *, HWND);
static void my_set_foreground_window (HWND);
static void my_destroy_window (struct frame *, HWND);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static void x_check_font (struct frame *, struct font *);
#endif
......@@ -6024,7 +6024,7 @@ x_wm_set_icon_position (struct frame *f, int icon_x, int icon_y)
Fonts
***********************************************************************/
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Check that FONT is valid on frame F. It is if it can be found in F's
font table. */
......@@ -6037,7 +6037,7 @@ x_check_font (struct frame *f, struct font *font)
eassert (font->driver->check (f, font) == 0);
}
#endif /* GLYPH_DEBUG != 0 */
#endif /* GLYPH_DEBUG */
......
......@@ -627,10 +627,10 @@ int current_mode_line_height, current_header_line_height;
CACHE = NULL; \
} while (0)
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Non-zero means print traces of redisplay if compiled with
GLYPH_DEBUG != 0. */
GLYPH_DEBUG defined. */
int trace_redisplay_p;
......@@ -2495,7 +2495,7 @@ check_it (struct it *it)
#endif /* not 0 */
#if GLYPH_DEBUG && defined ENABLE_CHECKING
#if defined GLYPH_DEBUG && defined ENABLE_CHECKING
/* Check that the window end of window W is what we expect it
to be---the last row in the current matrix displaying text. */
......@@ -2521,7 +2521,7 @@ check_window_end (struct window *w)
#define CHECK_WINDOW_END(W) (void) 0
#endif
#endif /* GLYPH_DEBUG and ENABLE_CHECKING */
......@@ -12435,7 +12435,7 @@ hscroll_windows (Lisp_Object window)
to a non-zero value. This is sometimes handy to have in a debugger
session. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* First and last unchanged row for try_window_id. */
......@@ -13235,7 +13235,7 @@ redisplay_internal (void)
/* Update hint: No need to try to scroll in update_window. */
w->desired_matrix->no_scrolling_p = 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
*w->desired_matrix->method = 0;
debug_method_add (w, "optimization 1");
#endif
......@@ -13303,7 +13303,7 @@ redisplay_internal (void)
eassert (this_line_vpos == it.vpos);
eassert (this_line_y == it.current_y);
set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
*w->desired_matrix->method = 0;
debug_method_add (w, "optimization 3");
#endif
......@@ -14575,7 +14575,7 @@ try_scrolling (Lisp_Object window, int just_this_one_p,
/* We will never try scrolling more than this number of lines. */
int scroll_limit = SCROLL_LIMIT;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "try_scrolling");
#endif
......@@ -14927,7 +14927,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
struct frame *f = XFRAME (w->frame);
int rc = CURSOR_MOVEMENT_CANNOT_BE_USED;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
if (inhibit_try_cursor_movement)
return rc;
#endif
......@@ -14974,7 +14974,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
int this_scroll_margin, top_scroll_margin;
struct glyph_row *row = NULL;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "cursor movement");
#endif
......@@ -15332,7 +15332,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
/* W must be a leaf window here. */
eassert (!NILP (w->buffer));
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
*w->desired_matrix->method = 0;
#endif
......@@ -15624,7 +15624,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
}
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "forced window start");
#endif
goto done;
......@@ -15656,7 +15656,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
&& !(CHARPOS (startp) <= BEGV
|| FETCH_BYTE (BYTEPOS (startp) - 1) == '\n'))
{
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "recenter 1");
#endif
goto recenter;
......@@ -15667,7 +15667,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
not work. It is 0 if unsuccessful for some other reason. */
else if ((tem = try_window_id (w)) != 0)
{
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "try_window_id %d", tem);
#endif
......@@ -15724,7 +15724,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
goto force_start;
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "same window start");
#endif
......@@ -15819,7 +15819,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
recenter:
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "recenter");
#endif
......@@ -16307,7 +16307,7 @@ try_window_reusing_current_matrix (struct window *w)
struct glyph_row *start_row;
int start_vpos, min_y, max_y;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
if (inhibit_try_window_reusing)
return 0;
#endif
......@@ -16529,7 +16529,7 @@ try_window_reusing_current_matrix (struct window *w)
/* Update hint: don't try scrolling again in update_window. */
w->desired_matrix->no_scrolling_p = 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "try_window_reusing_current_matrix 1");
#endif
return 1;
......@@ -16719,7 +16719,7 @@ try_window_reusing_current_matrix (struct window *w)
w->window_end_valid = Qnil;
w->desired_matrix->no_scrolling_p = 1;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
debug_method_add (w, "try_window_reusing_current_matrix 2");
#endif
return 1;
......@@ -17087,7 +17087,7 @@ try_window_id (struct window *w)
struct text_pos start;
ptrdiff_t first_changed_charpos, last_changed_charpos;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
if (inhibit_try_window_id)
return 0;
#endif
......@@ -17421,7 +17421,7 @@ try_window_id (struct window *w)
GIVE_UP (19);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Either there is no unchanged row at the end, or the one we have
now displays text. This is a necessary condition for the window
......@@ -17435,7 +17435,7 @@ try_window_id (struct window *w)
: -1);
debug_first_unchanged_at_end_vpos = first_unchanged_at_end_vpos;
#endif /* GLYPH_DEBUG != 0 */
#endif /* GLYPH_DEBUG */
/* Display new lines. Set last_text_row to the last new line
......@@ -17805,7 +17805,7 @@ try_window_id (struct window *w)
More debugging support
***********************************************************************/
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
void dump_glyph_row (struct glyph_row *, int, int) EXTERNALLY_VISIBLE;
void dump_glyph_matrix (struct glyph_matrix *, int) EXTERNALLY_VISIBLE;
......@@ -22223,7 +22223,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
#ifdef HAVE_WINDOW_SYSTEM
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
void
dump_glyph_string (struct glyph_string *s)
......@@ -28408,7 +28408,7 @@ syms_of_xdisp (void)
message_dolog_marker3 = Fmake_marker ();
staticpro (&message_dolog_marker3);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
defsubr (&Sdump_frame_glyph_matrix);
defsubr (&Sdump_glyph_matrix);
defsubr (&Sdump_glyph_row);
......@@ -28620,7 +28620,7 @@ of the top or bottom of the window. */);
Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */);
Vdisplay_pixels_per_inch = make_float (72.0);
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask. */);
#endif
......@@ -28937,7 +28937,7 @@ To add a prefix to continuation lines, use `wrap-prefix'. */);
doc: /* Non-nil means don't free realized faces. Internal use only. */);
inhibit_free_realized_faces = 0;
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id,
doc: /* Inhibit try_window_id display optimization. */);
inhibit_try_window_id = 0;
......
......@@ -441,7 +441,7 @@ static Lisp_Object Vparam_value_alist;
/* The total number of colors currently allocated. */
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
static int ncolors_allocated;
static int npixmaps_allocated;
static int ngcs;
......@@ -1010,7 +1010,7 @@ load_pixmap (FRAME_PTR f, Lisp_Object name, unsigned int *w_ptr,
}
else
{
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
++npixmaps_allocated;
#endif
if (w_ptr)
......@@ -1375,7 +1375,7 @@ load_color (struct frame *f, struct face *face, Lisp_Object name,
abort ();
}
}
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
else
++ncolors_allocated;
#endif
......@@ -1855,7 +1855,6 @@ the WIDTH times as wide as FACE on FRAME. */)
#define LFACE_INHERIT(LFACE) AREF ((LFACE), LFACE_INHERIT_INDEX)
#define LFACE_FONTSET(LFACE) AREF ((LFACE), LFACE_FONTSET_INDEX)
#ifdef ENABLE_CHECKING
/* Non-zero if LFACE is a Lisp face. A Lisp face is a vector of size
LFACE_VECTOR_SIZE which has the symbol `face' in slot 0. */
......@@ -1863,10 +1862,9 @@ the WIDTH times as wide as FACE on FRAME. */)
(VECTORP (LFACE) \
&& ASIZE (LFACE) == LFACE_VECTOR_SIZE \
&& EQ (AREF (LFACE, 0), Qface))
#endif
#if GLYPH_DEBUG
#ifdef GLYPH_DEBUG
/* Check consistency of Lisp face attribute vector ATTRS. */
......@@ -1953,12 +1951,12 @@ check_lface (Lisp_Object lface)
}
}
#else /* GLYPH_DEBUG == 0 */
#else /* not GLYPH_DEBUG */
#define check_lface_attrs(attrs) (void) 0
#define check_lface(lface) (void) 0
#endif /* GLYPH_DEBUG == 0 */
#endif /* GLYPH_DEBUG */
......@@ -4461,7 +4459,7 @@ cache_face (struct face_cache *c, struct face *face, unsigned int hash)
break;
face->id = i;