X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Felhash.c;h=688018c81c668c3accf863a2659ca6ebc6d3c380;hb=4f29597e4f3696a59bb08ffece07183c1568c4a5;hp=251e54949c6c16ebacf2ac2d682e4976c6c7d358;hpb=3e447015251ce6dcde843cbed10d9033d5538622;p=chise%2Fxemacs-chise.git- diff --git a/src/elhash.c b/src/elhash.c index 251e549..688018c 100644 --- a/src/elhash.c +++ b/src/elhash.c @@ -1218,6 +1218,15 @@ elisp_map_remhash (maphash_function_t predicate, /************************************************************************/ /* garbage collecting weak hash tables */ /************************************************************************/ +#define MARK_OBJ(obj) do { \ + Lisp_Object mo_obj = (obj); \ + if (!marked_p (mo_obj)) \ + { \ + mark_object (mo_obj); \ + did_mark = 1; \ + } \ +} while (0) + /* Complete the marking for semi-weak hash tables. */ int @@ -1241,9 +1250,6 @@ finish_marking_weak_hash_tables (void) /* Now, scan over all the pairs. For all pairs that are half-marked, we may need to mark the other half if we're keeping this pair. */ -#define MARK_OBJ(obj) \ -do { if (!marked_p (obj)) mark_object (obj), did_mark = 1; } while (0) - switch (ht->weakness) { case HASH_TABLE_KEY_WEAK: @@ -1425,6 +1431,8 @@ The value is returned as (HIGH . LOW). void syms_of_elhash (void) { + INIT_LRECORD_IMPLEMENTATION (hash_table); + DEFSUBR (Fhash_table_p); DEFSUBR (Fmake_hash_table); DEFSUBR (Fcopy_hash_table);