STk_add_callback - secondary hashtable?

From: Ron Stanonik <>
Date: Thu, 27 Jul 2000 13:59:32 -0700


I'm trying to understand STk_add_callback. (Is it documented?)

If key2 and key3 are "", then it appears key1 must start with
an open parenthesis "(" or the word "after", otherwise garbage
collection fails. For example, if I pass STk_add_callback the
closure address "#p405a835c" for key1, then I get

        STk> ;; [starting GC]
        [Marking zone <0x8103000->0x810309c> (39 words)]
        [Marking zone <0xbfffedb8->0xbffff7d4> (647 words)]

        **** Fatal error in STk:
        **** Out of storage
        **** ABORT.
        STk-Pad says goodbye.

Apparently, STk_mark_callbacks, finding a key1 not starting with
"(" or "after", tries to scan a secondary hashtable (which doesn't

If I surround the closure address with parentheses "(#p405a835c)",
then garbage collection doesn't fail. Is there some routine
I should call to create a key1 acceptable to STk_add_callback?
For example, should I call STk_append_callback_parameters and use
that result for STk_add_callback?

The key2 and key3 arguments to STk_add_callback are puzzling.
Their presence seems to use a secondary hashtable (and create
it if it doesn't exist). I'm trying to understand how the secondary
hashtable was intended to be used. key1 selects the secondary
hashtable, then key2 and key3 are combined to create an index
into that table?


Ron Stanonik
Received on Thu Jul 27 2000 - 22:59:45 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST