Commit 191a5568 authored by Daniel Colascione's avatar Daniel Colascione
Browse files

Fix segfault in profiler after pdump load

Move initialization of the profiler's hash test to static
initialization from the syms function so that pdumper doesn't need to
bother capturing it in any special way.

* src/profiler.c (cmpfn_profiler, hashfn_profiler):
forward declare.
(hashtest_profiler): statically initialize.
(syms_of_profiler): remove dynamic initialization of
hashtest_profiler.
parent 27f53bd6
Pipeline #547 failed with stage
in 51 minutes and 37 seconds
......@@ -36,7 +36,20 @@ saturated_add (EMACS_INT a, EMACS_INT b)
typedef struct Lisp_Hash_Table log_t;
static struct hash_table_test hashtest_profiler;
static bool cmpfn_profiler (
struct hash_table_test *, Lisp_Object, Lisp_Object);
static EMACS_UINT hashfn_profiler (
struct hash_table_test *, Lisp_Object);
static const struct hash_table_test hashtest_profiler =
{
LISPSYM_INITIALLY (Qprofiler_backtrace_equal),
LISPSYM_INITIALLY (Qnil) /* user_hash_function */,
LISPSYM_INITIALLY (Qnil) /* user_cmp_function */,
cmpfn_profiler,
hashfn_profiler,
};
static Lisp_Object
make_log (EMACS_INT heap_size, EMACS_INT max_stack_depth)
......@@ -587,12 +600,6 @@ to make room for new entries. */);
DEFSYM (Qprofiler_backtrace_equal, "profiler-backtrace-equal");
hashtest_profiler.name = Qprofiler_backtrace_equal;
hashtest_profiler.user_hash_function = Qnil;
hashtest_profiler.user_cmp_function = Qnil;
hashtest_profiler.cmpfn = cmpfn_profiler;
hashtest_profiler.hashfn = hashfn_profiler;
defsubr (&Sfunction_equal);
#ifdef PROFILER_CPU_SUPPORT
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment