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
185 continue;185 continue;
186 }186 }
187 break;187 break;
188 default:
189 ;
188 }190 }
189 191
190 QScriptString name = _engine->toStringHandle(QString::fromLatin1(szName));192 QScriptString name = _engine->toStringHandle(QString::fromLatin1(szName));
@@ -207,6 +209,13 @@ void ScriptObjectQtProxy::investigate() { · 16 unmodified lines
207 }209 }
208 } else {210 } else {
209 int parameterCount = method.parameterCount();211 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 }
210 if (nameLookup == methodNames.end()) {219 if (nameLookup == methodNames.end()) {
211 MethodDef& methodDef = _methods.insert(idx, MethodDef()).value();220 MethodDef& methodDef = _methods.insert(idx, MethodDef()).value();
212 methodDef.name = name;221 methodDef.name = name;
@@ -317,6 +326,13 @@ QScriptValue ScriptObjectQtProxy::property(const QScriptValue& object, const QSc · 104 unmodified lines
317 MethodDefMap::const_iterator lookup = _methods.find(methodId);326 MethodDefMap::const_iterator lookup = _methods.find(methodId);
318 if (lookup == _methods.cend()) return QScriptValue();327 if (lookup == _methods.cend()) return QScriptValue();
319 const MethodDef& methodDef = lookup.value();328 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 }
320 return static_cast<QScriptEngine*>(_engine)->newObject(336 return static_cast<QScriptEngine*>(_engine)->newObject(
321 new ScriptMethodQtProxy(_engine, qobject, object, methodDef.methods, methodDef.numMaxParms));337 new ScriptMethodQtProxy(_engine, qobject, object, methodDef.methods, methodDef.numMaxParms));
322 }338 }
@@ -589,19 +605,17 @@ int ScriptSignalQtProxy::qt_metacall(QMetaObject::Call call, int id, void** argu · 266 unmodified lines
589 QVariant argValue(methodArgTypeId, arguments[arg+1]);605 QVariant argValue(methodArgTypeId, arguments[arg+1]);
590 args.append(_engine->castVariantToValue(argValue));606 args.append(_engine->castVariantToValue(argValue));
591 }607 }
592 608
593 QList<Connection> connections;609 QList<Connection> connections;
594 withReadLock([&]{610 withReadLock([&]{
595 for (ConnectionList::iterator iter = _connections.begin(); iter != _connections.end(); ++iter) {611 connections = _connections;
596 connections.push_back(*iter);
597 }
598 });612 });
599 613
600 for (ConnectionList::iterator iter = connections.begin(); iter != connections.end(); ++iter) {614 for (ConnectionList::iterator iter = connections.begin(); iter != connections.end(); ++iter) {
601 Connection& conn = *iter;615 Connection& conn = *iter;
602 conn.callback.call(conn.thisValue, args);616 conn.callback.call(conn.thisValue, args);
603 }617 }
604 618
605 return -1;619 return -1;
606}620}
607 621
@@ -713,7 +727,7 @@ void ScriptSignalQtProxy::disconnect(QScriptValue arg0, QScriptValue arg1) { · 105 unmodified lines
713 }727 }
714 728
715 // remove it from our internal list of connections729 // remove it from our internal list of connections
716 withReadLock([&]{730 withWriteLock([&]{
717 _connections.erase(lookup);731 _connections.erase(lookup);
718 });732 });
719 733

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