From 9a6dd229c9e12d9becc01b120e8f2cb6d846dcda Mon Sep 17 00:00:00 2001 From: "mrbkap%gmail.com" Date: Fri, 24 Nov 2006 19:14:52 +0000 Subject: [PATCH] Mark our saved setter in case we have the last reference to it. bug 361346, r=brendan a=jay git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@215789 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/jsdbgapi.c | 6 +++++- mozilla/js/src/jsdbgapi.h | 2 +- mozilla/js/src/jsgc.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mozilla/js/src/jsdbgapi.c b/mozilla/js/src/jsdbgapi.c index b8fd4ff9725..1fc63ad8872 100644 --- a/mozilla/js/src/jsdbgapi.c +++ b/mozilla/js/src/jsdbgapi.c @@ -279,14 +279,18 @@ DropWatchPoint(JSContext *cx, JSWatchPoint *wp) } void -js_MarkWatchPoints(JSRuntime *rt) +js_MarkWatchPoints(JSContext *cx) { + JSRuntime *rt; JSWatchPoint *wp; + rt = cx->runtime; for (wp = (JSWatchPoint *)rt->watchPointList.next; wp != (JSWatchPoint *)&rt->watchPointList; wp = (JSWatchPoint *)wp->links.next) { MARK_SCOPE_PROPERTY(wp->sprop); + if (wp->sprop->attrs & JSPROP_SETTER) + JS_MarkGCThing(cx, wp->setter, "wp->setter", NULL); } } diff --git a/mozilla/js/src/jsdbgapi.h b/mozilla/js/src/jsdbgapi.h index dea0f48cc39..d2e1f1c69ec 100644 --- a/mozilla/js/src/jsdbgapi.h +++ b/mozilla/js/src/jsdbgapi.h @@ -99,7 +99,7 @@ JS_ClearAllWatchPoints(JSContext *cx); * header file "jsconfig.h" has been included. */ extern void -js_MarkWatchPoints(JSRuntime *rt); +js_MarkWatchPoints(JSContext *cx); extern JSScopeProperty * js_FindWatchPoint(JSRuntime *rt, JSScope *scope, jsid id); diff --git a/mozilla/js/src/jsgc.c b/mozilla/js/src/jsgc.c index 1d5a0393dfa..f3d7a30872c 100644 --- a/mozilla/js/src/jsgc.c +++ b/mozilla/js/src/jsgc.c @@ -2745,7 +2745,7 @@ restart: if (rt->gcLocksHash) JS_DHashTableEnumerate(rt->gcLocksHash, gc_lock_marker, cx); js_MarkAtomState(&rt->atomState, keepAtoms, gc_mark_atom_key_thing, cx); - js_MarkWatchPoints(rt); + js_MarkWatchPoints(cx); js_MarkScriptFilenames(rt, keepAtoms); js_MarkNativeIteratorStates(cx);