Fix compilation with namespaced Qt
authorSimon Hausmann <simon.hausmann@digia.com>
Mon, 24 Jun 2013 13:28:00 +0000 (15:28 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 26 Jun 2013 13:45:39 +0000 (15:45 +0200)
This also moves the extern "C" symbols back into the QV4 namespace

Change-Id: Id6d137df8610010588554bf0660228b357477823
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
22 files changed:
src/qml/qml/v4/moth/qv4instr_moth_p.h
src/qml/qml/v4/moth/qv4isel_moth.cpp
src/qml/qml/v4/moth/qv4isel_moth_p.h
src/qml/qml/v4/moth/qv4vme_moth_p.h
src/qml/qml/v4/qv4codegen_p.h
src/qml/qml/v4/qv4engine.cpp
src/qml/qml/v4/qv4function.cpp
src/qml/qml/v4/qv4isel_masm_p.h
src/qml/qml/v4/qv4isel_p.h
src/qml/qml/v4/qv4isel_util_p.h
src/qml/qml/v4/qv4mm.cpp
src/qml/qml/v4/qv4regexpobject.cpp
src/qml/qml/v4/qv4runtime.cpp
src/qml/qml/v4/qv4runtime_p.h
src/qml/qml/v4/qv4syntaxchecker.cpp
src/qml/qml/v4/qv4syntaxchecker_p.h
src/qml/qml/v4/qv4unwindhelper.cpp
src/qml/qml/v4/qv4unwindhelper_p-arm.h
src/qml/qml/v4/qv4unwindhelper_p-dw2.h
src/qml/qml/v4/qv4unwindhelper_p.h
src/qml/qml/v4/qv4value_p.h
src/qml/qml/v8/qqmlbuiltinfunctions_p.h

index 0dbd862..1a596f1 100644 (file)
@@ -45,6 +45,8 @@
 #include <QtCore/qglobal.h>
 #include <private/qv4object_p.h>
 
+QT_BEGIN_NAMESPACE
+
 #define FOR_EACH_MOTH_INSTR(F) \
     F(Ret, ret) \
     F(LoadValue, loadValue) \
@@ -460,13 +462,13 @@ union Instr
     };
     struct instr_unop {
         MOTH_INSTR_HEADER
-        UnaryOpName alu;
+        QV4::UnaryOpName alu;
         Param source;
         Param result;
     };
     struct instr_binop {
         MOTH_INSTR_HEADER
-        BinOp alu;
+        QV4::BinOp alu;
         Param lhs;
         Param rhs;
         Param result;
@@ -495,21 +497,21 @@ union Instr
     };
     struct instr_inplaceElementOp {
         MOTH_INSTR_HEADER
-        InplaceBinOpElement alu;
+        QV4::InplaceBinOpElement alu;
         Param base;
         Param index;
         Param source;
     };
     struct instr_inplaceMemberOp {
         MOTH_INSTR_HEADER
-        InplaceBinOpMember alu;
+        QV4::InplaceBinOpMember alu;
         QV4::String *member;
         Param base;
         Param source;
     };
     struct instr_inplaceNameOp {
         MOTH_INSTR_HEADER
-        InplaceBinOpName alu;
+        QV4::InplaceBinOpName alu;
         QV4::String *name;
         Param source;
     };
@@ -597,4 +599,6 @@ class InstrData : public InstrMeta<InstrType>::DataType
 } // namespace Moth
 } // namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4INSTR_MOTH_P_H
index 0fa376c..edf08ee 100644 (file)
@@ -54,7 +54,7 @@ using namespace QQmlJS::Moth;
 
 namespace {
 
-inline BinOp aluOpFunction(V4IR::AluOp op)
+inline QV4::BinOp aluOpFunction(V4IR::AluOp op)
 {
     switch (op) {
     case V4IR::OpInvalid:
@@ -70,47 +70,47 @@ inline BinOp aluOpFunction(V4IR::AluOp op)
     case V4IR::OpCompl:
         return 0;
     case V4IR::OpBitAnd:
-        return __qmljs_bit_and;
+        return QV4::__qmljs_bit_and;
     case V4IR::OpBitOr:
-        return __qmljs_bit_or;
+        return QV4::__qmljs_bit_or;
     case V4IR::OpBitXor:
-        return __qmljs_bit_xor;
+        return QV4::__qmljs_bit_xor;
     case V4IR::OpAdd:
-        return __qmljs_add;
+        return QV4::__qmljs_add;
     case V4IR::OpSub:
-        return __qmljs_sub;
+        return QV4::__qmljs_sub;
     case V4IR::OpMul:
-        return __qmljs_mul;
+        return QV4::__qmljs_mul;
     case V4IR::OpDiv:
-        return __qmljs_div;
+        return QV4::__qmljs_div;
     case V4IR::OpMod:
-        return __qmljs_mod;
+        return QV4::__qmljs_mod;
     case V4IR::OpLShift:
-        return __qmljs_shl;
+        return QV4::__qmljs_shl;
     case V4IR::OpRShift:
-        return __qmljs_shr;
+        return QV4::__qmljs_shr;
     case V4IR::OpURShift:
-        return __qmljs_ushr;
+        return QV4::__qmljs_ushr;
     case V4IR::OpGt:
-        return __qmljs_gt;
+        return QV4::__qmljs_gt;
     case V4IR::OpLt:
-        return __qmljs_lt;
+        return QV4::__qmljs_lt;
     case V4IR::OpGe:
-        return __qmljs_ge;
+        return QV4::__qmljs_ge;
     case V4IR::OpLe:
-        return __qmljs_le;
+        return QV4::__qmljs_le;
     case V4IR::OpEqual:
-        return __qmljs_eq;
+        return QV4::__qmljs_eq;
     case V4IR::OpNotEqual:
-        return __qmljs_ne;
+        return QV4::__qmljs_ne;
     case V4IR::OpStrictEqual:
-        return __qmljs_se;
+        return QV4::__qmljs_se;
     case V4IR::OpStrictNotEqual:
-        return __qmljs_sne;
+        return QV4::__qmljs_sne;
     case V4IR::OpInstanceof:
-        return __qmljs_instanceof;
+        return QV4::__qmljs_instanceof;
     case V4IR::OpIn:
-        return __qmljs_in;
+        return QV4::__qmljs_in;
     case V4IR::OpAnd:
         return 0;
     case V4IR::OpOr:
@@ -378,15 +378,15 @@ void InstructionSelection::copyValue(V4IR::Temp *sourceTemp, V4IR::Temp *targetT
 
 void InstructionSelection::unop(V4IR::AluOp oper, V4IR::Temp *sourceTemp, V4IR::Temp *targetTemp)
 {
-    UnaryOpName op = 0;
+    QV4::UnaryOpName op = 0;
     switch (oper) {
     case V4IR::OpIfTrue: assert(!"unreachable"); break;
-    case V4IR::OpNot: op = __qmljs_not; break;
-    case V4IR::OpUMinus: op = __qmljs_uminus; break;
-    case V4IR::OpUPlus: op = __qmljs_uplus; break;
-    case V4IR::OpCompl: op = __qmljs_compl; break;
-    case V4IR::OpIncrement: op = __qmljs_increment; break;
-    case V4IR::OpDecrement: op = __qmljs_decrement; break;
+    case V4IR::OpNot: op = QV4::__qmljs_not; break;
+    case V4IR::OpUMinus: op = QV4::__qmljs_uminus; break;
+    case V4IR::OpUPlus: op = QV4::__qmljs_uplus; break;
+    case V4IR::OpCompl: op = QV4::__qmljs_compl; break;
+    case V4IR::OpIncrement: op = QV4::__qmljs_increment; break;
+    case V4IR::OpDecrement: op = QV4::__qmljs_decrement; break;
     default: assert(!"unreachable"); break;
     } // switch
 
@@ -446,19 +446,19 @@ void InstructionSelection::binop(V4IR::AluOp oper, V4IR::Expr *leftSource, V4IR:
 
 void InstructionSelection::inplaceNameOp(V4IR::AluOp oper, V4IR::Temp *rightSource, const QString &targetName)
 {
-    InplaceBinOpName op = 0;
+    QV4::InplaceBinOpName op = 0;
     switch (oper) {
-    case V4IR::OpBitAnd: op = __qmljs_inplace_bit_and_name; break;
-    case V4IR::OpBitOr: op = __qmljs_inplace_bit_or_name; break;
-    case V4IR::OpBitXor: op = __qmljs_inplace_bit_xor_name; break;
-    case V4IR::OpAdd: op = __qmljs_inplace_add_name; break;
-    case V4IR::OpSub: op = __qmljs_inplace_sub_name; break;
-    case V4IR::OpMul: op = __qmljs_inplace_mul_name; break;
-    case V4IR::OpDiv: op = __qmljs_inplace_div_name; break;
-    case V4IR::OpMod: op = __qmljs_inplace_mod_name; break;
-    case V4IR::OpLShift: op = __qmljs_inplace_shl_name; break;
-    case V4IR::OpRShift: op = __qmljs_inplace_shr_name; break;
-    case V4IR::OpURShift: op = __qmljs_inplace_ushr_name; break;
+    case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_name; break;
+    case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_name; break;
+    case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_name; break;
+    case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_name; break;
+    case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_name; break;
+    case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_name; break;
+    case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_name; break;
+    case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_name; break;
+    case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_name; break;
+    case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_name; break;
+    case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_name; break;
     default: break;
     }
 
@@ -473,19 +473,19 @@ void InstructionSelection::inplaceNameOp(V4IR::AluOp oper, V4IR::Temp *rightSour
 
 void InstructionSelection::inplaceElementOp(V4IR::AluOp oper, V4IR::Temp *source, V4IR::Temp *targetBaseTemp, V4IR::Temp *targetIndexTemp)
 {
-    InplaceBinOpElement op = 0;
+    QV4::InplaceBinOpElement op = 0;
     switch (oper) {
-    case V4IR::OpBitAnd: op = __qmljs_inplace_bit_and_element; break;
-    case V4IR::OpBitOr: op = __qmljs_inplace_bit_or_element; break;
-    case V4IR::OpBitXor: op = __qmljs_inplace_bit_xor_element; break;
-    case V4IR::OpAdd: op = __qmljs_inplace_add_element; break;
-    case V4IR::OpSub: op = __qmljs_inplace_sub_element; break;
-    case V4IR::OpMul: op = __qmljs_inplace_mul_element; break;
-    case V4IR::OpDiv: op = __qmljs_inplace_div_element; break;
-    case V4IR::OpMod: op = __qmljs_inplace_mod_element; break;
-    case V4IR::OpLShift: op = __qmljs_inplace_shl_element; break;
-    case V4IR::OpRShift: op = __qmljs_inplace_shr_element; break;
-    case V4IR::OpURShift: op = __qmljs_inplace_ushr_element; break;
+    case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_element; break;
+    case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_element; break;
+    case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_element; break;
+    case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_element; break;
+    case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_element; break;
+    case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_element; break;
+    case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_element; break;
+    case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_element; break;
+    case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_element; break;
+    case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_element; break;
+    case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_element; break;
     default: break;
     }
 
@@ -499,19 +499,19 @@ void InstructionSelection::inplaceElementOp(V4IR::AluOp oper, V4IR::Temp *source
 
 void InstructionSelection::inplaceMemberOp(V4IR::AluOp oper, V4IR::Temp *source, V4IR::Temp *targetBase, const QString &targetName)
 {
-    InplaceBinOpMember op = 0;
+    QV4::InplaceBinOpMember op = 0;
     switch (oper) {
-    case V4IR::OpBitAnd: op = __qmljs_inplace_bit_and_member; break;
-    case V4IR::OpBitOr: op = __qmljs_inplace_bit_or_member; break;
-    case V4IR::OpBitXor: op = __qmljs_inplace_bit_xor_member; break;
-    case V4IR::OpAdd: op = __qmljs_inplace_add_member; break;
-    case V4IR::OpSub: op = __qmljs_inplace_sub_member; break;
-    case V4IR::OpMul: op = __qmljs_inplace_mul_member; break;
-    case V4IR::OpDiv: op = __qmljs_inplace_div_member; break;
-    case V4IR::OpMod: op = __qmljs_inplace_mod_member; break;
-    case V4IR::OpLShift: op = __qmljs_inplace_shl_member; break;
-    case V4IR::OpRShift: op = __qmljs_inplace_shr_member; break;
-    case V4IR::OpURShift: op = __qmljs_inplace_ushr_member; break;
+    case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_member; break;
+    case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_member; break;
+    case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_member; break;
+    case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_member; break;
+    case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_member; break;
+    case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_member; break;
+    case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_member; break;
+    case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_member; break;
+    case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_member; break;
+    case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_member; break;
+    case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_member; break;
     default: break;
     }
 
index 59b75f0..eed2765 100644 (file)
@@ -49,6 +49,8 @@
 #include <private/qv4object_p.h>
 #include "qv4instr_moth_p.h"
 
+QT_BEGIN_NAMESPACE
+
 namespace QQmlJS {
 namespace Moth {
 
@@ -211,4 +213,6 @@ ptrdiff_t InstructionSelection::addInstruction(const InstrData<InstrT> &data)
 } // namespace Moth
 } // namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4ISEL_MOTH_P_H
index bdb3375..49cb1f7 100644 (file)
@@ -45,6 +45,8 @@
 #include <private/qv4runtime_p.h>
 #include "qv4instr_moth_p.h"
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
     struct Value;
 }
@@ -73,4 +75,6 @@ private:
 } // namespace Moth
 } // namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4VME_MOTH_P_H
index 1d23484..484fa29 100644 (file)
@@ -48,6 +48,8 @@
 #include <QtCore/QStringList>
 #include <assert.h>
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
 struct DiagnosticMessage;
 struct ExecutionContext;
@@ -448,4 +450,6 @@ private:
 
 }
 
+QT_END_NAMESPACE
+
 #endif // QV4CODEGEN_P_H
index c0262f5..8a15010 100644 (file)
@@ -81,6 +81,8 @@
 #  include "qv4isel_moth_p.h"
 #endif // V4_ENABLE_JIT
 
+QT_BEGIN_NAMESPACE
+
 using namespace QV4;
 
 static QBasicAtomicInt engineSerial = Q_BASIC_ATOMIC_INITIALIZER(1);
@@ -960,3 +962,5 @@ void Exception::partiallyUnwindContext(ExecutionContext *catchingContext)
         context = context->engine->popContext();
     throwingContext = context;
 }
+
+QT_END_NAMESPACE
index d9daf4c..bf633a9 100644 (file)
@@ -44,6 +44,8 @@
 #include "qv4string_p.h"
 #include "qv4value_p.h"
 
+QT_BEGIN_NAMESPACE
+
 using namespace QV4;
 
 Function::~Function()
@@ -83,3 +85,4 @@ int Function::lineNumberForProgramCounter(qptrdiff offset) const
     return it->lineNumber;
 }
 
+QT_END_NAMESPACE
index 9febda7..30dbc62 100644 (file)
@@ -54,6 +54,8 @@
 #include <wtf/Vector.h>
 #include <assembler/MacroAssembler.h>
 
+QT_BEGIN_NAMESPACE
+
 namespace QQmlJS {
 namespace MASM {
 
@@ -573,7 +575,7 @@ public:
 
     struct BinaryOperationInfo {
         const char *name;
-        BinOp fallbackImplementation;
+        QV4::BinOp fallbackImplementation;
         MemRegBinOp inlineMemRegOp;
         ImmRegBinOp inlineImmRegOp;
     };
@@ -910,4 +912,6 @@ public:
 } // end of namespace MASM
 } // end of namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4ISEL_MASM_P_H
index 3b027c6..a558fa2 100644 (file)
@@ -48,6 +48,8 @@
 #include <qglobal.h>
 #include <QHash>
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
 struct ExecutionEngine;
 struct Function;
@@ -160,4 +162,6 @@ private:
 
 } // namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4ISEL_P_H
index a4ee14d..5aedaaf 100644 (file)
@@ -45,6 +45,8 @@
 #include "qv4runtime_p.h"
 #include "qv4jsir_p.h"
 
+QT_BEGIN_NAMESPACE
+
 namespace QQmlJS {
 
 inline QV4::Value convertToValue(V4IR::Const *c)
@@ -80,4 +82,6 @@ inline QV4::Value convertToValue(V4IR::Const *c)
 
 } // namespace QQmlJS
 
+QT_END_NAMESPACE
+
 #endif // QV4ISEL_UTIL_P_H
index e300742..56d490c 100644 (file)
@@ -62,6 +62,8 @@
 #include <valgrind/memcheck.h>
 #endif
 
+QT_BEGIN_NAMESPACE
+
 using namespace QV4;
 using namespace WTF;
 
@@ -594,3 +596,5 @@ void MemoryManager::collectFromStack() const
         }
     }
 }
+
+QT_END_NAMESPACE
index f5cb849..0dc14e5 100644 (file)
@@ -62,6 +62,8 @@
 #include <iostream>
 #include "qv4alloca_p.h"
 
+QT_BEGIN_NAMESPACE
+
 Q_CORE_EXPORT QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax);
 
 using namespace QV4;
@@ -85,7 +87,7 @@ RegExpObject::RegExpObject(ExecutionEngine *engine, const QRegExp &re)
     , global(false)
 {
     // Convert the pattern to a ECMAScript pattern.
-    QString pattern = qt_regexp_toCanonical(re.pattern(), re.patternSyntax());
+    QString pattern = QT_PREPEND_NAMESPACE(qt_regexp_toCanonical)(re.pattern(), re.patternSyntax());
     if (re.isMinimal()) {
         QString ecmaPattern;
         int len = pattern.length();
@@ -354,3 +356,4 @@ Value RegExpPrototype::method_compile(SimpleCallContext *ctx)
     return Value::undefinedValue();
 }
 
+QT_END_NAMESPACE
index 5f1826e..1a5221e 100644 (file)
@@ -67,9 +67,9 @@
 #include <execinfo.h>
 #endif
 
-using namespace QV4;
+QT_BEGIN_NAMESPACE
 
-extern "C" {
+namespace QV4 {
 
 void __qmljs_numberToString(QString *result, double num, int radix)
 {
@@ -1295,4 +1295,6 @@ void __qmljs_decrement(Value *result, const Value &value)
     }
 }
 
-} // extern "C"
+} // namespace QV4
+
+QT_END_NAMESPACE
index d7cbd05..b78e9f2 100644 (file)
@@ -89,11 +89,6 @@ struct ArrayObject;
 struct ErrorObject;
 struct ExecutionEngine;
 struct InternalClass;
-}
-
-QT_END_NAMESPACE
-
-extern "C" {
 
 // context
 void __qmljs_call_activation_property(QV4::ExecutionContext *, QV4::Value *result, QV4::String *name, QV4::Value *args, int argc);
@@ -721,6 +716,8 @@ inline uint __qmljs_cmp_in(QV4::ExecutionContext *ctx, const QV4::Value &left, c
     return v.booleanValue();
 }
 
-} // extern "C"
+} // namespace QV4
+
+QT_END_NAMESPACE
 
 #endif // QMLJS_RUNTIME_H
index 515782d..a4f7423 100644 (file)
@@ -41,6 +41,8 @@
 
 #include "qv4syntaxchecker_p.h"
 
+QT_BEGIN_NAMESPACE
+
 using namespace QQmlJS;
 
 SyntaxChecker::SyntaxChecker()
@@ -117,3 +119,5 @@ again:
 
     return false;
 }
+
+QT_END_NAMESPACE
index 5ca43c0..bdb88b0 100644 (file)
@@ -48,6 +48,8 @@
 #include <QtCore/QString>
 #include <QtCore/QList>
 
+QT_BEGIN_NAMESPACE
+
 namespace QQmlJS {
 
 class SyntaxChecker: Lexer
@@ -70,4 +72,6 @@ private:
 
 } // end of QQmlJS namespace
 
+QT_END_NAMESPACE
+
 #endif // QV4SYNTAXCHECKER_P_H
index 47ae1d3..82631e3 100644 (file)
@@ -68,6 +68,8 @@
 #  include <qv4unwindhelper_p-arm.h>
 #endif // USE_ARM_HELPER
 
+QT_BEGIN_NAMESPACE
+
 #ifdef USE_NULL_HELPER
 using namespace QV4;
 void UnwindHelper::prepareForUnwind(ExecutionContext *) {}
@@ -77,3 +79,4 @@ void UnwindHelper::deregisterFunction(Function *function) {Q_UNUSED(function);}
 void UnwindHelper::deregisterFunctions(const QVector<Function *> &functions) {Q_UNUSED(functions);}
 #endif // USE_NULL_HELPER
 
+QT_END_NAMESPACE
index 10868e9..3fecb22 100644 (file)
@@ -58,6 +58,8 @@
 #include <execinfo.h>
 #endif
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
 
 static void *removeThumbBit(void *addr)
@@ -195,6 +197,8 @@ void UnwindHelper::writeARMUnwindInfo(void *codeAddr, int codeSize)
 
 }
 
+QT_END_NAMESPACE
+
 extern "C" Q_DECL_EXPORT void *__gnu_Unwind_Find_exidx(void *pc, int *entryCount)
 {
     typedef void *(*Old_Unwind_Find_exidx)(void*, int*);
@@ -204,11 +208,11 @@ extern "C" Q_DECL_EXPORT void *__gnu_Unwind_Find_exidx(void *pc, int *entryCount
         oldFunction = (Old_Unwind_Find_exidx)dlsym(RTLD_NEXT, "__gnu_Unwind_Find_exidx");
 
     {
-        QMutexLocker locker(&QV4::functionProtector);
-        QV4::Function *function = QV4::lookupFunction(pc);
+        QMutexLocker locker(&QT_PREPEND_NAMESPACE(QV4::functionProtector));
+        QV4::Function *function = QT_PREPEND_NAMESPACE(QV4::lookupFunction(pc));
         if (function) {
             *entryCount = 1;
-            void * codeStart = QV4::removeThumbBit(function->codeRef.code().executableAddress());
+            void * codeStart = QT_PREPEND_NAMESPACE(QV4::removeThumbBit(function->codeRef.code().executableAddress()));
             // At the end of the function we store our synthetic exception table entry.
             return (char *)codeStart + function->codeSize;
         }
index 34fecf2..1abcfba 100644 (file)
@@ -55,6 +55,8 @@
 #define __USE_GNU
 #include <dlfcn.h>
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
 
 namespace {
@@ -187,4 +189,6 @@ void UnwindHelper::deregisterFunctions(const QVector<Function *> &)
 
 }
 
+QT_END_NAMESPACE
+
 #endif // QV4UNWINDHELPER_PDW2_H
index 17c8bd6..9ef5644 100644 (file)
@@ -44,6 +44,8 @@
 
 #include <QtCore/QVector>
 
+QT_BEGIN_NAMESPACE
+
 namespace QV4 {
 
 struct Function;
@@ -65,4 +67,6 @@ public:
 
 }
 
+QT_END_NAMESPACE
+
 #endif // QV4UNWINDHELPER_H
index 8323ed7..85ac64d 100644 (file)
@@ -61,15 +61,9 @@ struct ExecutionContext;
 struct ExecutionEngine;
 struct Value;
 
-}
-
-extern "C" {
 double __qmljs_to_number(const QV4::Value &value);
 Q_QML_EXPORT QV4::String *__qmljs_convert_to_string(QV4::ExecutionContext *ctx, const QV4::Value &value);
 QV4::Object *__qmljs_convert_to_object(QV4::ExecutionContext *ctx, const QV4::Value &value);
-}
-
-namespace QV4 {
 
 typedef uint Bool;
 
index c0effac..d03605f 100644 (file)
 #include <QtCore/qglobal.h>
 #include <private/qv4object_p.h>
 
+QT_BEGIN_NAMESPACE
+
 class QQmlEngine;
 class QV8Engine;
 
-QT_BEGIN_NAMESPACE
-
 namespace QV4 {
 
 struct QtObject : Object