Yes, see the comments in multiset.h. Something somewhere is accessing the index directly as an svalue, which it isn't (the struct just looks that way since it's convenient). There's a set of macros in multiset.h, e.g. assign_multiset_index_no_free, which should be used to access it. (It's not describe_multiset that's made that output; it handles this properly.)
/ Martin Stjernholm, Roxen IS
Previous text:
2004-04-08 14:21: Subject: unbug and opcodes
While at the topic unbug, could you take a look at the multiset code in unbug? I rewrote it to handle the new multisets, but it isn't working flawlessly.
Example:
(unbug) run Pike v7.5 release 25 running Hilfe v3.5 (Incremental Pike Frontend)
multiset y = (< "foo", "bar", "gazonk" >); kill(getpid(),signum("SIGINT"));
Starting program: /home/nilsson/Pike/7.5/build/linux-2.4.20-28.8-i686/test-install/pike/7.5.25/bin/pike
Program received signal SIGINT, Interrupt. 0x42028811 in kill () from /lib/i686/libc.so.6
OBJECT->___HilfeWrapper() at HilfeInput:1 Could not load source file "HilfeInput" (unbug) globals ___hilfe = (["y":(< $ERRROR(type:57350)$, "bar", $ERRROR(type:57350)$>)]) (unbug)
The type 57350 binary is 1110000000000110, which is the string type with the upper three bits set. I assume that you use them for something internally.
/ Martin Nilsson (provokatör)