Use ad-hoc comparison function for the profiler's hash-tables.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 19:12:23 +0000 (14:12 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 19:12:23 +0000 (14:12 -0500)
commitb7432bb20f48902994bee522bea15acdb0c0e209
tree940e242625e16ade096c4144d728c56107aa7005
parent880027430c5580abf612a82273bd49b75b9fb73c
Use ad-hoc comparison function for the profiler's hash-tables.
* src/profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
(make_log): Use them.
(handle_profiler_signal): Don't inhibit quit any longer since we don't
call Fequal any more.
(Ffunction_equal): New function.
(cmpfn_profiler, hashfn_profiler): New functions.
(syms_of_profiler): Initialize them.
* src/lisp.h (struct hash_table_test): New struct.
(struct Lisp_Hash_Table): Use it.
* src/alloc.c (mark_object): Mark hash_table_test fields of hash tables.
* src/fns.c (make_hash_table): Take a struct to describe the test.
(cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
(hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
(hash_lookup, hash_remove_from_table): Move assertion checking of
hashfn result here.  Check hash-equality before calling cmpfn.
(Fmake_hash_table): Adjust call to make_hash_table.
(hashtest_eq, hashtest_eql, hashtest_equal): New structs.
(syms_of_fns): Initialize them.
* src/emacs.c (main): Move syms_of_fns earlier.
* src/xterm.c (syms_of_xterm):
* src/category.c (hash_get_category_set): Adjust call to make_hash_table.
* src/print.c (print_object): Adjust to new hash-table struct.
* src/composite.c (composition_gstring_put_cache): Adjust to new hashfn.
src/ChangeLog
src/alloc.c
src/category.c
src/composite.c
src/emacs.c
src/fns.c
src/lisp.h
src/print.c
src/profiler.c
src/regex.c
src/xterm.c