6b0 Subj : Re: What does the MAP_CHECK_SLOT assert mean ? To : netscape.public.mozilla.jseng From : nick.longinow@brio.com (Nick Longinow) Date : Thu Jan 30 2003 07:22 am Some more info. It turns out that the culprit is my native method for doing OBJ_LOOKUP_PROPERTY, ::LookupProperty, operating on a native object, which is doing the following (which results in a bad 'slot' value for the associated JSScopeProperty value): JSProperty value = ...(get from JSObject passed in) value.id = id; /* id is passed in from the js_Interpret method */ /* id has the value 33867336 */ JSScopeProperty *sprop = (JSScopeProperty*)value; jsint slot = sprop->slot; /* slot will be huge - 33844916U */ So, the long and short of it is that when we return to js_Interpret with this sprop, it is so huge a slot value that it will trip the assert in MAP_CHECK_SLOT, which is expecting a slot value much much smaller (on my Windows build its more in the range of 4U or 6U). Question - this is a Solaris 2.8 build of the newer JS 1.5 which I am trying to now use instead of my older JS 1.4.2 build. Do I need to do something different in finding/setting these property values for native objects ? ie, like initializing something ? nick.longinow@brio.com (Nick Longinow) wrote in message news:<83377f55.0301291144.1d4fb64f@posting.google.com>... > I just ported our code to Solaris 5.8 and am using > the new JS 1.5. Any ideas why the following call > is asserting (and aborting) ? > > #define MAP_CHECK_SLOT(map,slot) \ > JS_ASSERT((uint32)slot < JS_MIN((map)->freeslot, (map)->nslots)) > > The call is coming inside js_Interpret. . 0