view oldXMenu/XDestAssoc.c @ 88382:5e3e1d9d514f

(enum pvec_type): New member PVEC_SUB_CHAR_TABLE. (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros. (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS, SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS): Deleted. (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table structure. (CHAR_TABLE_TRANSLATE): Just call char_table_translate. (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3): New macros. (chartab_size): Extern it. (struct Lisp_Char_Table): Re-designed. (struct Lisp_Sub_Char_Table): New structure. (HASH_KEY, HASH_VALUE): Moved from fns.c. (CHARACTERBITS): Defined as 22. (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change. (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE. (GC_SUB_CHAR_TABLE_P): New macro. (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated. (code_convert_string_norecord): Extern deleted. (init_character_once, syms_of_character, init_charset, syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
author Kenichi Handa <handa@m17n.org>
date Fri, 01 Mar 2002 01:44:13 +0000
parents bbce331da1be
children 23a1cea22d13
line wrap: on
line source

/* $XConsortium: XDestAssoc.c,v 10.17 91/02/08 13:11:50 rws Exp $ */
/* Copyright    Massachusetts Institute of Technology    1985	*/

/*
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in advertising or
publicity pertaining to distribution of the software without specific,
written prior permission.  M.I.T. makes no representations about the
suitability of this software for any purpose.  It is provided "as is"
without express or implied warranty.
*/

#include <X11/Xlib.h>
#include "X10.h"

/*
 * XDestroyAssocTable - Destroy (free the memory associated with)
 * an XAssocTable.  
 */
XDestroyAssocTable(table)
	register XAssocTable *table;
{
	register int i;
	register XAssoc *bucket;
	register XAssoc *Entry, *entry_next;

	/* Free the buckets. */
	for (i = 0; i < table->size; i++) {
		bucket = &table->buckets[i];
		for (
	        	Entry = bucket->next;
			Entry != bucket;
			Entry = entry_next
		) {
		        entry_next = Entry->next;
			free((char *)Entry);
		}
	}

	/* Free the bucket array. */
	free((char *)table->buckets);

	/* Free the table. */
	free((char *)table);
}