summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generator/cppgenerator.cpp8
-rw-r--r--libshiboken/basewrapper.cpp6
-rw-r--r--tests/libsample/samplenamespace.h3
-rw-r--r--tests/samplebinding/typesystem_sample.xml4
4 files changed, 15 insertions, 6 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp
index 1ad7a2d1..79cabead 100644
--- a/generator/cppgenerator.cpp
+++ b/generator/cppgenerator.cpp
@@ -533,7 +533,7 @@ void CppGenerator::writeVirtualMethodNative(QTextStream &s, const AbstractMetaFu
s << INDENT << THREAD_STATE_SAVER_VAR ".save();" << endl;
}
- s << INDENT << "return this->" << func->implementingClass()->qualifiedCppName() << "::";
+ s << INDENT << "return this->::" << func->implementingClass()->qualifiedCppName() << "::";
writeFunctionCall(s, func, Generator::VirtualCall);
}
}
@@ -2041,7 +2041,7 @@ void CppGenerator::writeMethodCall(QTextStream& s, const AbstractMetaFunction* f
if (!func->isStatic())
mc << CPP_SELF_VAR "->";
if (!func->isAbstract())
- mc << func->ownerClass()->qualifiedCppName() << "::";
+ mc << "::" << func->ownerClass()->qualifiedCppName() << "::";
mc << func->originalName();
#else
if (!func->isStatic()) {
@@ -2050,7 +2050,7 @@ void CppGenerator::writeMethodCall(QTextStream& s, const AbstractMetaFunction* f
mc << CPP_SELF_VAR << (func->isProtected() ? ")" : "") << "->";
}
if (!func->isAbstract())
- mc << (func->isProtected() ? wrapperName(func->ownerClass()) : func->ownerClass()->qualifiedCppName()) << "::";
+ mc << (func->isProtected() ? wrapperName(func->ownerClass()) : "::" + func->ownerClass()->qualifiedCppName()) << "::";
mc << func->originalName() << (func->isProtected() ? "_protected" : "");
#endif
} else {
@@ -3077,7 +3077,7 @@ void CppGenerator::writeSignalInitialization(QTextStream& s, const AbstractMetaC
if ((cppSignature != originalSignature) && !knowTypes.contains(originalSignature)) {
knowTypes << originalSignature;
- s << INDENT << "Shiboken::TypeResolver::createValueTypeResolver<"
+ s << INDENT << "Shiboken::TypeResolver::createValueTypeResolver<"
<< cppSignature << " >"
<< "(\"" << originalSignature << "\");\n";
}
diff --git a/libshiboken/basewrapper.cpp b/libshiboken/basewrapper.cpp
index 7f7b8da8..2c1129b2 100644
--- a/libshiboken/basewrapper.cpp
+++ b/libshiboken/basewrapper.cpp
@@ -576,7 +576,11 @@ void setErrorAboutWrongArguments(PyObject* args, const char* funcName, const cha
for (int i = 0, max = PyTuple_GET_SIZE(args); i < max; ++i) {
if (i)
params += ", ";
- params += PyTuple_GET_ITEM(args, i)->ob_type->tp_name;
+ PyObject* arg = PyTuple_GET_ITEM(args, i);
+ if (PyCObject_Check(arg))
+ params += "pointer";
+ else
+ params += arg->ob_type->tp_name;
}
} else {
params = args->ob_type->tp_name;
diff --git a/tests/libsample/samplenamespace.h b/tests/libsample/samplenamespace.h
index d00bbb1f..da01ac1f 100644
--- a/tests/libsample/samplenamespace.h
+++ b/tests/libsample/samplenamespace.h
@@ -99,6 +99,9 @@ public:
class DerivedFromNamespace : public SomeClass::SomeInnerClass::OkThisIsRecursiveEnough
{
public:
+ //only cause namespace confusion
+ enum SampleNamespace {
+ };
virtual OkThisIsRecursiveEnough* someVirtualMethod(OkThisIsRecursiveEnough* arg) { return arg; }
inline OkThisIsRecursiveEnough* methodReturningTypeFromParentScope() { return 0; }
};
diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml
index 319cc658..9d14681a 100644
--- a/tests/samplebinding/typesystem_sample.xml
+++ b/tests/samplebinding/typesystem_sample.xml
@@ -87,7 +87,9 @@
<enum-type name="OutValue"/>
<enum-type identified-by-value="AnonymousClassEnum_Value1"/>
- <object-type name="DerivedFromNamespace" />
+ <object-type name="DerivedFromNamespace">
+ <enum-type name="SampleNamespace"/>
+ </object-type>
<value-type name="SomeClass">
<value-type name="SomeInnerClass">
<object-type name="OkThisIsRecursiveEnough">