view lwlib/lwlib-Xol.h @ 28406:451721e784a8

Stop assuming interval pointers and lisp objects can be distinguished by inspection. Beginnings of support for expensive internal consistency checks. * config.in (ENABLE_CHECKING): Undef. * lisp.h (struct interval): Replace "parent" field with a union of interval pointer and Lisp_Object; add new bitfield to use as discriminant. Change other flag fields to bitfields. (CHECK): New macro for consistency checking. If ENABLE_CHECKING is defined and the supplied test fails, print a message and abort. (eassert): New macro. Use CHECK to provide an assert-like facility. * intervals.h (NULL_INTERVAL_P): Now applies only to real interval pointers; abort if the value looks like a lisp object. (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT, SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT): Modify for new interval parent definition. * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE, UNMARK_BALANCE_INTERVALS): Update references that need an addressable lisp object in the interval structure. (die): New function. (suppress_checking): New variable. * intervals.c (interval_start_pos): Just return 0 if there's no parent object.
author Ken Raeburn <raeburn@raeburn.org>
date Wed, 29 Mar 2000 22:14:34 +0000
parents f999ebca00da
children
line wrap: on
line source

#ifndef LWLIB_XOL_H
#define LWLIB_XOL_H

#include "lwlib-int.h"

extern widget_creation_entry xol_creation_table [];
extern Widget xol_create_dialog (widget_instance *);

Boolean
lw_olit_widget_p (Widget widget);

void
xol_update_one_widget (widget_instance* instance, Widget widget,
		       widget_value* val, Boolean deep_p);

void
xol_update_one_value (widget_instance* instance, Widget widget,
		      widget_value* val);

void
xol_destroy_instance (widget_instance* instance);

void
xol_pop_instance (widget_instance* instance, Boolean up);

void
xol_popup_menu (Widget widget);

#endif /* LWLIB_XOL_H */