From c1c8fbfcac1da86d2ea9c7398c81c565db97ce5b Mon Sep 17 00:00:00 2001 From: "gavin%gavinsharp.com" Date: Thu, 6 Apr 2006 13:04:54 +0000 Subject: [PATCH] Bug 314529: E4X: delete operator misses some descendants - e4x/Types/9.1.1.3.js, patch by Erik Fabert , r=brendan --- js/src/jsxml.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/js/src/jsxml.c b/js/src/jsxml.c index 660e718bce62..9a72961b12ce 100644 --- a/js/src/jsxml.c +++ b/js/src/jsxml.c @@ -3787,7 +3787,7 @@ DeleteProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) JSXML *xml, *kid, *parent; JSBool isIndex; JSXMLArray *array; - uint32 length, index, deleteCount; + uint32 length, index, kidIndex, deleteCount; JSXMLQName *nameqn; jsid funid; JSObject *nameobj, *kidobj; @@ -3822,9 +3822,10 @@ DeleteProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) if (!DeleteProperty(cx, parent->object, id, vp)) return JS_FALSE; } else { - index = XMLARRAY_FIND_MEMBER(&parent->xml_kids, kid, NULL); - JS_ASSERT(index != XML_NOT_FOUND); - if (!IndexToIdVal(cx, index, &id)) + kidIndex = XMLARRAY_FIND_MEMBER(&parent->xml_kids, kid, + NULL); + JS_ASSERT(kidIndex != XML_NOT_FOUND); + if (!IndexToIdVal(cx, kidIndex, &id)) return JS_FALSE; if (!DeleteByIndex(cx, parent, id, vp)) return JS_FALSE;