aboutsummaryrefslogtreecommitdiffstats
path: root/src/print.c
diff options
context:
space:
mode:
authorStefan Monnier2012-11-08 14:12:23 -0500
committerStefan Monnier2012-11-08 14:12:23 -0500
commitb7432bb20f48902994bee522bea15acdb0c0e209 (patch)
tree940e242625e16ade096c4144d728c56107aa7005 /src/print.c
parent880027430c5580abf612a82273bd49b75b9fb73c (diff)
downloademacs-b7432bb20f48902994bee522bea15acdb0c0e209.tar.gz
emacs-b7432bb20f48902994bee522bea15acdb0c0e209.zip
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.
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/print.c b/src/print.c
index ccf0e8ed7cc..af6eda7298f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1815,14 +1815,14 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag
1815#endif 1815#endif
1816 /* Implement a readable output, e.g.: 1816 /* Implement a readable output, e.g.:
1817 #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */ 1817 #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */
1818 /* Always print the size. */ 1818 /* Always print the size. */
1819 len = sprintf (buf, "#s(hash-table size %"pD"d", ASIZE (h->next)); 1819 len = sprintf (buf, "#s(hash-table size %"pD"d", ASIZE (h->next));
1820 strout (buf, len, len, printcharfun); 1820 strout (buf, len, len, printcharfun);
1821 1821
1822 if (!NILP (h->test)) 1822 if (!NILP (h->test.name))
1823 { 1823 {
1824 strout (" test ", -1, -1, printcharfun); 1824 strout (" test ", -1, -1, printcharfun);
1825 print_object (h->test, printcharfun, escapeflag); 1825 print_object (h->test.name, printcharfun, escapeflag);
1826 } 1826 }
1827 1827
1828 if (!NILP (h->weak)) 1828 if (!NILP (h->weak))