From 67e44628272e1d6dec2a5400a58e62c7d043187c Mon Sep 17 00:00:00 2001 From: "mrbkap%gmail.com" Date: Fri, 26 Aug 2005 21:16:15 +0000 Subject: [PATCH] bug 305883: Protect against the empty XML list to fix a crash when emitting code for |<>|. Also fix the decompiler to handle XMLLists correctly. r+a=brendan git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@179105 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/jsemit.c | 2 +- mozilla/js/src/jsopcode.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mozilla/js/src/jsemit.c b/mozilla/js/src/jsemit.c index 67b62b4f463..3dfaf5a728c 100644 --- a/mozilla/js/src/jsemit.c +++ b/mozilla/js/src/jsemit.c @@ -4709,7 +4709,7 @@ js_EmitTree(JSContext *cx, JSCodeGenerator *cg, JSParseNode *pn) } JS_ASSERT(pn->pn_type == TOK_XMLLIST || pn->pn_count != 0); - switch (pn->pn_head->pn_type) { + switch (pn->pn_head ? pn->pn_head->pn_type : TOK_XMLLIST) { case TOK_XMLETAGO: JS_ASSERT(0); /* FALL THROUGH */ diff --git a/mozilla/js/src/jsopcode.c b/mozilla/js/src/jsopcode.c index 5ca85370ce2..6d75b40d196 100644 --- a/mozilla/js/src/jsopcode.c +++ b/mozilla/js/src/jsopcode.c @@ -2560,8 +2560,12 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb) quoteAttr = JS_FALSE; break; - case JSOP_TOXML: case JSOP_TOXMLLIST: + todo = Sprint(&ss->sprinter, "<>%s", POP_STR()); + inXML = JS_FALSE; + break; + + case JSOP_TOXML: inXML = JS_FALSE; /* fall through */