History

Attempt to debug broken enums in scripting

ksuprynowicz committed 4 years ago

Commit 95434a21 parent ece2b803 files · +24 −8Browse files

Showing the changes to libraries/script-engine/src/qtscript/ScriptObjectQtProxy.cpp (1 of 3 files). Show all

Unified · Split

libraries/script-engine/src/qtscript/ScriptObjectQtProxy.cpp+21−7
@@ -185,6 +185,8 @@ void ScriptObjectQtProxy::investigate() { · 184 unmodified lines
185185 continue;
186186 }
187187 break;
188+ default:
189+ ;
188190 }
189191
190192 QScriptString name = _engine->toStringHandle(QString::fromLatin1(szName));
@@ -207,6 +209,13 @@ void ScriptObjectQtProxy::investigate() { · 16 unmodified lines
207209 }
208210 } else {
209211 int parameterCount = method.parameterCount();
212+ if (name.toString() == "getRenderMethod"){
213+ qDebug() << name << " " << QMetaType(method.returnType()).name();
214+ if(method.returnType() == QMetaType::UnknownType) {
215+ qDebug() << "Method with QMetaType::UnknownType";
216+ }
217+ printf("getRenderMethod");
218+ }
210219 if (nameLookup == methodNames.end()) {
211220 MethodDef& methodDef = _methods.insert(idx, MethodDef()).value();
212221 methodDef.name = name;
@@ -317,6 +326,13 @@ QScriptValue ScriptObjectQtProxy::property(const QScriptValue& object, const QSc · 104 unmodified lines
317326 MethodDefMap::const_iterator lookup = _methods.find(methodId);
318327 if (lookup == _methods.cend()) return QScriptValue();
319328 const MethodDef& methodDef = lookup.value();
329+ for (auto iter = methodDef.methods.begin(); iter != methodDef.methods.end(); iter++ ) {
330+ //qDebug() << (*iter).returnType();
331+ if((*iter).returnType() == QMetaType::UnknownType) {
332+ qDebug() << "Method with QMetaType::UnknownType " << metaObject->className() << " " << (*iter).name();
333+ printf("Method with QMetaType::UnknownType");
334+ }
335+ }
320336 return static_cast<QScriptEngine*>(_engine)->newObject(
321337 new ScriptMethodQtProxy(_engine, qobject, object, methodDef.methods, methodDef.numMaxParms));
322338 }
@@ -589,19 +605,17 @@ int ScriptSignalQtProxy::qt_metacall(QMetaObject::Call call, int id, void** argu · 266 unmodified lines
589605 QVariant argValue(methodArgTypeId, arguments[arg+1]);
590606 args.append(_engine->castVariantToValue(argValue));
591607 }
592−
608+
593609 QList<Connection> connections;
594610 withReadLock([&]{
595− for (ConnectionList::iterator iter = _connections.begin(); iter != _connections.end(); ++iter) {
596− connections.push_back(*iter);
597− }
611+ connections = _connections;
598612 });
599−
613+
600614 for (ConnectionList::iterator iter = connections.begin(); iter != connections.end(); ++iter) {
601615 Connection& conn = *iter;
602616 conn.callback.call(conn.thisValue, args);
603617 }
604−
618+
605619 return -1;
606620 }
607621
@@ -713,7 +727,7 @@ void ScriptSignalQtProxy::disconnect(QScriptValue arg0, QScriptValue arg1) { · 105 unmodified lines
713727 }
714728
715729 // remove it from our internal list of connections
716− withReadLock([&]{
730+ withWriteLock([&]{
717731 _connections.erase(lookup);
718732 });
719733

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t