view oldXMenu/XDestAssoc.c @ 49919:249621b2dae5

Merge changes from CPerl-5.0. (toplevel): Require man. (condition-case): Don't autoload tmm-prompt (it's in loaddefs.el). (cperl-electric-backspace-untabify): New var. (cperl-electric-backspace): Use it. (cperl-vc-header-alist): Extract numeric version from the Id. (cperl-build-manpage): New fun. (cperl-menu): Use it. Add toggle-autohelp. (cperl-mode) <defun-prompt_regexp>: Understand prototypes. (cperl-electric-brace): Use `cperl-after-block-p' for detection. (cperl-electric-keyword): Make $if (etc: "$@%&*") non-electric. '(' after keyword would insert a doubled paren. (cperl-calculate-indent): Update syntaxification before checks. Fix wrong indent of blocks starting with POD. (cperl-find-pods-heres): If no end of HERE-doc found, mark to the end of buffer. This enables recognition of end of HERE-doc "as one types". Require "\n" after trailing tag of HERE-doc. \( made non-quoting outside of string/comment (gdj-contributed). Likewise for \$. Remove `here-doc-group' text property at start (makes this property reliable). Text property `first-format-line' ==> t. Do not recognize $opt_s and $opt::s as s///. (cperl-after-block-p): Optional arg pre-block to check for a pre-block Recognize `continue' blocks too. (cperl-after-expr-p): Update syntaxification before checks. Work after here-docs, formats, and PODs too (affects many electric constructs). (cperl-fix-line-spacing): Allow "_" in $vars of foreach etc. (cperl-perldoc): Use case-sensitive search.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 23 Feb 2003 02:19:02 +0000
parents 23a1cea22d13
children 695cf19ef79e d7ddb3e565de
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);
}