On Sun, May 19, 2002 at 10:43:20PM -0400, Mike Lambert wrote:
[...]
> But if you'll notice down below in the body, it uses
> string_compare. Due to transcoding issues, that can trigger a full GC,
> which means you need to restore_invariants inside that loop. And that
> invalidates your 'chain' which you've already placed on the local C stack,
> and restore_invariants can't fix that.

In my opinion, there should be a low level string_compare which does
not allocate anything.  Instead, it should fail if its arguments do
not have the same encoding.  Of course, the string_compare opcode can
be smarter and perform some transcoding.

Then, the hashtable code should explicitely transcode the key before
using it.

-- Jerome

Reply via email to