From 5d15f9704783e5eafc9ba77740aae85aeac01d24 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 16 Jan 2014 13:08:37 +0100 Subject: Fix failing context->next != 0x1 assertion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After commit bf173fe5da381c88343296ca33ef6b06389c6d20 context objects are always on the GC heap and no more in that special linked list or stack allocated, so the next pointer became dangling/uninitialized and asserting on it was bound to fail randomly. Since we no more allocate contexts on the stack, we can safely remove the assertion. Task-number: QTBUG-35917 Change-Id: I104bd129c6c32f46a6302052f563abdf926cb879 Reviewed-by: Albert Astals Cid Reviewed-by: Jan Arve Sæther --- src/qml/jsruntime/qv4context.cpp | 6 ------ src/qml/jsruntime/qv4context_p.h | 1 - src/qml/jsruntime/qv4functionobject.cpp | 3 --- 3 files changed, 10 deletions(-) (limited to 'src') diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 05a0e66e09..c2c9aefd5f 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -83,9 +83,6 @@ CallContext *ExecutionContext::newCallContext(FunctionObject *function, CallData c->strictMode = function->strictMode; c->outer = function->scope; -#ifndef QT_NO_DEBUG - assert(c->outer->next != (ExecutionContext *)0x1); -#endif c->activation = 0; @@ -229,9 +226,6 @@ CallContext::CallContext(ExecutionEngine *engine, ObjectRef qml, FunctionObject strictMode = true; outer = function->scope; -#ifndef QT_NO_DEBUG - assert(outer->next != (ExecutionContext *)0x1); -#endif activation = qml.getPointer(); diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 4eb89ad905..334d033193 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -106,7 +106,6 @@ struct Q_QML_EXPORT ExecutionContext : public Managed ExecutionContext *outer; Lookup *lookups; CompiledData::CompilationUnit *compilationUnit; - ExecutionContext *next; // used in the GC struct EvalCode { diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 6e5c137e0b..ce81282aa3 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -133,9 +133,6 @@ void FunctionObject::init(const StringRef n, bool createProto) type = Type_FunctionObject; needsActivation = true; strictMode = false; -#ifndef QT_NO_DEBUG - assert(scope->next != (ExecutionContext *)0x1); -#endif if (createProto) { Scoped proto(s, scope->engine->newObject(scope->engine->protoClass)); -- cgit v1.2.3