From 6a8eb9ef8d1f310c470ab0bfcdd35ded15c42607 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Sat, 21 Jan 2017 00:37:35 +0900 Subject: Fix build without features.temporaryfile Change-Id: I31bcf56ee0c4ec9285dccb356b03b89e8ce8356a Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4compileddata.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 6aac111897..d8ff22e9ed 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -356,6 +356,7 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString) return false; } +#if QT_CONFIG(temporaryfile) // Foo.qml -> Foo.qmlc QSaveFile cacheFile(cacheFilePath(unitUrl)); if (!cacheFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { @@ -388,6 +389,10 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString) } return true; +#else + *errorString = QStringLiteral("features.temporaryfile is disabled."); + return false; +#endif // QT_CONFIG(temporaryfile) } bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory, QString *errorString) -- cgit v1.2.3 From fdf94daed26175d7cf1d5abf59acff5437ad68a1 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Fri, 20 Jan 2017 13:04:28 +0100 Subject: Doc: reinserted hello.qml which had been deleted by mistake During the update of plugin.cpp this file was deleted by mistake. plugin.cpp still refers to it and it needs to be reinserted in src/quick/doc/snippets. Change-Id: Ie23c926ff6096392da96f0063c767009a3965a30 Reviewed-by: Venugopal Shivashankar --- src/imports/localstorage/plugin.cpp | 2 +- src/quick/doc/snippets/qml/localstorage/hello.qml | 76 +++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/quick/doc/snippets/qml/localstorage/hello.qml diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp index 6704283cb9..9191700b45 100644 --- a/src/imports/localstorage/plugin.cpp +++ b/src/imports/localstorage/plugin.cpp @@ -581,7 +581,7 @@ Database connections are automatically closed during Javascript garbage collecti The API can be used from JavaScript functions in your QML: -\snippet localstorage/localstorage/hello.qml 0 +\snippet qml/localstorage/hello.qml 0 The API conforms to the Synchronous API of the HTML5 Web Database API, \link http://www.w3.org/TR/2009/WD-webdatabase-20091029/ W3C Working Draft 29 October 2009\endlink. diff --git a/src/quick/doc/snippets/qml/localstorage/hello.qml b/src/quick/doc/snippets/qml/localstorage/hello.qml new file mode 100644 index 0000000000..959895c82a --- /dev/null +++ b/src/quick/doc/snippets/qml/localstorage/hello.qml @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +import QtQuick 2.0 + +Rectangle { + color: "white" + width: 200 + height: 100 + + Text { + text: "?" + anchors.horizontalCenter: parent.horizontalCenter + function findGreetings() { + var db = openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000); + + db.transaction( + function(tx) { + // Create the database if it doesn't already exist + tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)'); + + // Add (another) greeting row + tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]); + + // Show all added greetings + var rs = tx.executeSql('SELECT * FROM Greeting'); + + var r = "" + for (var i = 0; i < rs.rows.length; i++) { + r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n" + } + text = r + } + ) + } + Component.onCompleted: findGreetings() + } +} +//![0] -- cgit v1.2.3 From fa4bb3d4e6902babfab0b1a89c9bf76d1c953252 Mon Sep 17 00:00:00 2001 From: Kavindra Palaraja Date: Sun, 8 Jan 2017 11:44:20 +0100 Subject: Mention that QVariantList is also a supported model type Also added a section with more info that asks the reader to refer to the QStringList example above. Task-number: QTBUG-47768 Change-Id: I4e99b81ac242f7df1ddc412f85c9c1b822080514 Reviewed-by: Robin Burchell --- .../doc/src/concepts/modelviewsdata/cppmodels.qdoc | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/quick/doc/src/concepts/modelviewsdata/cppmodels.qdoc b/src/quick/doc/src/concepts/modelviewsdata/cppmodels.qdoc index a764402c2f..12a107491a 100644 --- a/src/quick/doc/src/concepts/modelviewsdata/cppmodels.qdoc +++ b/src/quick/doc/src/concepts/modelviewsdata/cppmodels.qdoc @@ -36,10 +36,10 @@ Models can be defined in C++ and then made available to QML. This is useful for exposing existing C++ data models or otherwise complex datasets to QML. -A C++ model class can be defined as a \l QStringList, a QObjectList or a -\l QAbstractItemModel. The first two are useful for exposing simpler datasets, -while QAbstractItemModel provides a more flexible solution for more complex -models. +A C++ model class can be defined as a \l QStringList, a \l QVariantList, a +QObjectList or a \l QAbstractItemModel. The first three are useful for exposing +simpler datasets, while QAbstractItemModel provides a more flexible solution for +more complex models. \section2 QStringList-based Model @@ -60,10 +60,20 @@ The complete source code for this example is available in \l {models/stringlistmodel}{examples/quick/models/stringlistmodel} within the Qt install directory. -\b{Note:} There is no way for the view to know that the contents of a QStringList -have changed. If the QStringList changes, it will be necessary to reset +\note There is no way for the view to know that the contents of a QStringList +have changed. If the QStringList changes, it will be necessary to reset the model by calling QQmlContext::setContextProperty() again. +\section2 QVariantList-based Model + +A model may be a single \l QVariantList, which provides the contents of the list +via the \e modelData role. + +The API works just like with \l QStringList, as shown in the previous section. + +\note There is no way for the view to know that the contents of a QVariantList +have changed. If the QVariantList changes, it will be necessary to reset +the model. \section2 QObjectList-based model -- cgit v1.2.3 From c873a176a147cf35c235e395b8797ce42d17188a Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Fri, 27 Jan 2017 21:01:59 +0100 Subject: QQmlTypeCompiler: Fix read after free in tst_qqmllanguage invalidAlias.11 revealed a problem with the loop here, in that the vector was modified while it was being iterated. There isn't any need to modify the vector being iterated, as it'll be put into pendingObjects for the next loop. Change-Id: If9b537c4ac00697237d12e4b0be67ef39cc8b3c4 Reviewed-by: Simon Hausmann --- src/qml/compiler/qqmltypecompiler.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp index 393616dfac..b7262e4333 100644 --- a/src/qml/compiler/qqmltypecompiler.cpp +++ b/src/qml/compiler/qqmltypecompiler.cpp @@ -1108,10 +1108,9 @@ QQmlComponentAndAliasResolver::AliasResolutionResult QQmlComponentAndAliasResolv continue; } - // Try again later and resolve the target alias first. - _objectsWithAliases.append(objectIndex); // restore alias->idIndex = idIndex; + // Try again later and resolve the target alias first. break; } } -- cgit v1.2.3 From 0a5de1435271155fb3ec7780325e8c33b382da0a Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Fri, 27 Jan 2017 11:49:16 +0900 Subject: Fix build without animation by disabling quick Change-Id: I3b9bc6aa69dbf2a780765ba935b76be6a22280e6 Reviewed-by: Laszlo Agocs Reviewed-by: Robin Burchell --- src/src.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/src.pro b/src/src.pro index c2a58c3757..4e2de8da14 100644 --- a/src/src.pro +++ b/src/src.pro @@ -5,7 +5,7 @@ QT_FOR_CONFIG += network quick-private SUBDIRS += \ qml -qtHaveModule(gui) { +qtHaveModule(gui):qtConfig(animation) { SUBDIRS += \ quick \ qmltest -- cgit v1.2.3 From 65d3a7e15307844a9afcc8fd6cefc8c88079450c Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Thu, 26 Jan 2017 15:19:18 +0100 Subject: Doc: Fix documentation warnings src/qml/jsapi/qjsengine.cpp:524: warning: Undocumented parameter 'metaObject' in QJSEngine::newQMetaObject() src/qml/qml/qqmlengine.cpp:1023: warning: Undocumented parameter 'retCode' in QQmlEngine::exit() src/qml/doc/src/qmlfunctions.qdoc:182: warning: Undocumented parameter 'reason' in qmlRegisterUncreatableMetaObject() src/qml/qml/qqmllist.cpp:393: warning: Undocumented parameter 'at' in QQmlListProperty::QQmlListProperty() src/qml/qml/qqmllist.cpp:393: warning: Undocumented parameter 'count' in QQmlListProperty::QQmlListProperty() src/qml/qml/qqmllist.cpp:402: warning: Undocumented parameter 'at' in QQmlListProperty::QQmlListProperty() src/qml/qml/qqmllist.cpp:402: warning: Undocumented parameter 'count' in QQmlListProperty::QQmlListProperty() src/qml/qml/qqmllist.cpp:402: warning: Undocumented parameter 'append' in QQmlListProperty::QQmlListProperty() src/qml/qml/qqmllist.cpp:402: warning: Undocumented parameter 'clear' in QQmlListProperty::QQmlListProperty() src/quick/items/qquickwindow.cpp:4461: warning: No such parameter 'backend' in QQuickWindow::setSceneGraphBackend() Also do some minor language editing. Change-Id: I2e806d1a77e3c4264d709c27d2bfc4542a782716 Reviewed-by: Mitch Curtis --- src/qml/doc/src/qmlfunctions.qdoc | 14 +++++++++----- src/qml/jsapi/qjsengine.cpp | 2 +- src/qml/qml/qqmlengine.cpp | 2 +- src/qml/qml/qqmllist.cpp | 10 ++++++---- src/qml/qml/qqmlproperty.cpp | 12 +++++++++--- src/quick/items/qquickwindow.cpp | 4 ++-- 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/qml/doc/src/qmlfunctions.qdoc b/src/qml/doc/src/qmlfunctions.qdoc index 8b24d19891..8f9ac116d4 100644 --- a/src/qml/doc/src/qmlfunctions.qdoc +++ b/src/qml/doc/src/qmlfunctions.qdoc @@ -168,8 +168,9 @@ from \a uri having version number composed from \a versionMajor and \a versionMinor. - While the type has a name and a type, it cannot be created, and the - given error \a reason will result if creation is attempted. + While the type has a name and a type, it cannot be created. An error + message with the given \a reason is printed if the user attempts to + create an instance of this type. This is useful where the type is only intended for providing attached properties, enum values or an abstract base class with its extension. @@ -189,11 +190,14 @@ from \a uri having version number composed from \a versionMajor and \a versionMinor. - This function is useful to register Q_NAMESPACE namespaces. + An instance of the meta object cannot be created. An error message with + the given \a reason is printed if the user attempts to create it. + + This function is useful for registering Q_NAMESPACE namespaces. Returns the QML type id. - Example: + For example: \code namespace MyNamespace { @@ -209,7 +213,7 @@ qmlRegisterUncreatableMetaObject(MyNamespace::staticMetaObject, "io.qt", 1, 0, "MyNamespace", "Access to enums & flags only"); \endcode - Now on QML side you can use the registered enums: + On the QML side, you can now use the registered enums: \code Component.onCompleted: console.log(MyNamespace.Key2) \endcode diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index 4404a5d79f..e4c150057a 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -525,7 +525,7 @@ QJSValue QJSEngine::newQObject(QObject *object) \since 5.8 Creates a JavaScript object that wraps the given QMetaObject - The metaObject must outlive the script engine. It is recommended to only + The \a metaObject must outlive the script engine. It is recommended to only use this method with static metaobjects. diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 2a439bde98..c800641f1c 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -1022,7 +1022,7 @@ QQmlEngine::~QQmlEngine() /*! \fn void QQmlEngine::exit(int retCode) This signal is emitted when the QML loaded by the engine would like to exit - from the event loop with the specified return code. + from the event loop with the specified return code \a retCode. \since 5.8 \sa quit() diff --git a/src/qml/qml/qqmllist.cpp b/src/qml/qml/qqmllist.cpp index edd93ef03d..2c71293363 100644 --- a/src/qml/qml/qqmllist.cpp +++ b/src/qml/qml/qqmllist.cpp @@ -394,8 +394,9 @@ can be very useful while prototyping. \fn QQmlListProperty::QQmlListProperty(QObject *object, void *data, CountFunction count, AtFunction at) -Construct a readonly QQmlListProperty from a set of operation functions. An opaque \a data handle -may be passed which can be accessed from within the operation functions. The list property +Construct a readonly QQmlListProperty from a set of operation functions +\a count and \a at. An opaque \a data handle may be passed which can be +accessed from within the operation functions. The list property remains valid while \a object exists. */ @@ -404,8 +405,9 @@ remains valid while \a object exists. CountFunction count, AtFunction at, ClearFunction clear) -Construct a QQmlListProperty from a set of operation functions. An opaque \a data handle -may be passed which can be accessed from within the operation functions. The list property +Construct a QQmlListProperty from a set of operation functions \a append, +\a count, \a at, and \a clear. An opaque \a data handle may be passed which +can be accessed from within the operation functions. The list property remains valid while \a object exists. Null pointers can be passed for any function. If any null pointers are passed in, the list diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp index c62fef7c3d..0b8eb677cb 100644 --- a/src/qml/qml/qqmlproperty.cpp +++ b/src/qml/qml/qqmlproperty.cpp @@ -1400,9 +1400,9 @@ QQmlMetaObject QQmlPropertyPrivate::rawMetaObjectForType(QQmlEnginePrivate *engi } /*! - Sets the property value to \a value and returns true. - Returns false if the property can't be set because the - \a value is the wrong type, for example. + Sets the property value to \a value. Returns \c true on success, or + \c false if the property can't be set because the \a value is the + wrong type, for example. */ bool QQmlProperty::write(const QVariant &value) const { @@ -1417,6 +1417,8 @@ bool QQmlProperty::write(const QVariant &value) const QQmlProperty p(object, name); p.write(value); \endcode + + Returns \c true on success, \c false otherwise. */ bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value) { @@ -1433,6 +1435,8 @@ bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &v QQmlProperty p(object, name, ctxt); p.write(value); \endcode + + Returns \c true on success, \c false otherwise. */ bool QQmlProperty::write(QObject *object, const QString &name, @@ -1453,6 +1457,8 @@ bool QQmlProperty::write(QObject *object, QQmlProperty p(object, name, engine); p.write(value); \endcode + + Returns \c true on success, \c false otherwise. */ bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index a58912e38f..5edfd619ec 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -4466,8 +4466,8 @@ QSGRendererInterface *QQuickWindow::rendererInterface() const \note The call to the function must happen before constructing the first QQuickWindow in the application. It cannot be changed afterwards. - If \a backend is invalid or an error occurs, the default backend (OpenGL or - software, depending on the Qt configuration) is used. + If the selected backend is invalid or an error occurs, the default backend + (OpenGL or software, depending on the Qt configuration) is used. \since 5.8 */ -- cgit v1.2.3 From dc0a7d7021b52adfea1e128557ff35c003a49431 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 24 Jan 2017 09:51:20 +0100 Subject: Tools: Add product name, version and description to the .pro files This information will then be visible in Windows explorer. Change-Id: I9d2f936584308394b4e3246d57bed44083b3cbca Reviewed-by: Shawn Rutledge Reviewed-by: Robin Burchell --- tools/qml/qml.pro | 9 +++++++++ tools/qmleasing/qmleasing.pro | 9 +++++++++ tools/qmlimportscanner/qmlimportscanner.pro | 9 +++++++++ tools/qmljs/qmljs.pro | 9 +++++++++ tools/qmllint/qmllint.pro | 9 +++++++++ tools/qmlmin/qmlmin.pro | 9 +++++++++ tools/qmlplugindump/qmlplugindump.pro | 9 +++++++++ tools/qmlprofiler/qmlprofiler.pro | 9 +++++++++ tools/qmlscene/qmlscene.pro | 9 +++++++++ tools/qmltestrunner/qmltestrunner.pro | 9 +++++++++ tools/qmltime/qmltime.pro | 9 +++++++++ 11 files changed, 99 insertions(+) diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro index 5f05054d04..d0083c0e78 100644 --- a/tools/qml/qml.pro +++ b/tools/qml/qml.pro @@ -6,6 +6,15 @@ HEADERS += conf.h SOURCES += main.cpp RESOURCES += qml.qrc +QMAKE_TARGET_PRODUCT = qml +QMAKE_TARGET_DESCRIPTION = Utility that loads and displays QML documents + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + mac { OTHER_FILES += Info.plist QMAKE_INFO_PLIST = Info.plist diff --git a/tools/qmleasing/qmleasing.pro b/tools/qmleasing/qmleasing.pro index e334faa77a..534bc9fe98 100644 --- a/tools/qmleasing/qmleasing.pro +++ b/tools/qmleasing/qmleasing.pro @@ -17,4 +17,13 @@ FORMS += \ pane.ui \ import.ui +QMAKE_TARGET_PRODUCT = qmleasing +QMAKE_TARGET_DESCRIPTION = QML easing curve editor + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_app) diff --git a/tools/qmlimportscanner/qmlimportscanner.pro b/tools/qmlimportscanner/qmlimportscanner.pro index c8e458c6ae..363424f948 100644 --- a/tools/qmlimportscanner/qmlimportscanner.pro +++ b/tools/qmlimportscanner/qmlimportscanner.pro @@ -5,4 +5,13 @@ DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII SOURCES += main.cpp +QMAKE_TARGET_PRODUCT = qmlimportscanner +QMAKE_TARGET_DESCRIPTION = Tool to scan projects for QML imports + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmljs/qmljs.pro b/tools/qmljs/qmljs.pro index 43f0ccba71..9f82f48980 100644 --- a/tools/qmljs/qmljs.pro +++ b/tools/qmljs/qmljs.pro @@ -5,4 +5,13 @@ SOURCES = qmljs.cpp include($$PWD/../../src/3rdparty/masm/masm-defs.pri) +QMAKE_TARGET_PRODUCT = qmljs +QMAKE_TARGET_DESCRIPTION = QML Javascript tool + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmllint/qmllint.pro b/tools/qmllint/qmllint.pro index bc6e27cec2..27af880c8c 100644 --- a/tools/qmllint/qmllint.pro +++ b/tools/qmllint/qmllint.pro @@ -4,4 +4,13 @@ QT = core qmldevtools-private SOURCES += main.cpp +QMAKE_TARGET_PRODUCT = qmllint +QMAKE_TARGET_DESCRIPTION = QML syntax verifier + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmlmin/qmlmin.pro b/tools/qmlmin/qmlmin.pro index 2cbf196863..f5248e1b69 100644 --- a/tools/qmlmin/qmlmin.pro +++ b/tools/qmlmin/qmlmin.pro @@ -2,4 +2,13 @@ option(host_build) QT = core qmldevtools-private SOURCES += main.cpp +QMAKE_TARGET_PRODUCT = qmlmin +QMAKE_TARGET_DESCRIPTION = QML/JS minifier + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmlplugindump/qmlplugindump.pro b/tools/qmlplugindump/qmlplugindump.pro index b38eea2554..16d9a3f4d9 100644 --- a/tools/qmlplugindump/qmlplugindump.pro +++ b/tools/qmlplugindump/qmlplugindump.pro @@ -21,4 +21,13 @@ macx { CONFIG -= app_bundle } +QMAKE_TARGET_PRODUCT = qmlplugindump +QMAKE_TARGET_DESCRIPTION = QML plugin dump tool + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmlprofiler/qmlprofiler.pro b/tools/qmlprofiler/qmlprofiler.pro index a65e25c657..b5bb1dcc46 100644 --- a/tools/qmlprofiler/qmlprofiler.pro +++ b/tools/qmlprofiler/qmlprofiler.pro @@ -14,4 +14,13 @@ HEADERS += \ qmlprofilerdata.h \ qmlprofilerclient.h +QMAKE_TARGET_PRODUCT = qmlprofiler +QMAKE_TARGET_DESCRIPTION = QML profiler + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmlscene/qmlscene.pro b/tools/qmlscene/qmlscene.pro index b1267612c5..ec73f1871a 100644 --- a/tools/qmlscene/qmlscene.pro +++ b/tools/qmlscene/qmlscene.pro @@ -7,4 +7,13 @@ SOURCES += main.cpp DEFINES += QML_RUNTIME_TESTING !contains(QT_CONFIG, no-qml-debug): DEFINES += QT_QML_DEBUG_NO_WARNING +QMAKE_TARGET_PRODUCT = qmlscene +QMAKE_TARGET_DESCRIPTION = Utility that loads and displays QML documents + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmltestrunner/qmltestrunner.pro b/tools/qmltestrunner/qmltestrunner.pro index 1bb913e718..505537480c 100644 --- a/tools/qmltestrunner/qmltestrunner.pro +++ b/tools/qmltestrunner/qmltestrunner.pro @@ -3,4 +3,13 @@ SOURCES += main.cpp QT += qml qmltest CONFIG += no_import_scan +QMAKE_TARGET_PRODUCT = qmltestrunner +QMAKE_TARGET_DESCRIPTION = QML test runner + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + load(qt_tool) diff --git a/tools/qmltime/qmltime.pro b/tools/qmltime/qmltime.pro index 551a43eec1..ec1bcb5a03 100644 --- a/tools/qmltime/qmltime.pro +++ b/tools/qmltime/qmltime.pro @@ -4,4 +4,13 @@ QT += qml quick QT += quick-private macx:CONFIG -= app_bundle +QMAKE_TARGET_PRODUCT = qmltime +QMAKE_TARGET_DESCRIPTION = Tool for benchmarking the instantiation of a QML component + +win32 { + VERSION = $${QT_VERSION}.0 +} else { + VERSION = $${QT_VERSION} +} + SOURCES += qmltime.cpp -- cgit v1.2.3 From bdb18b54717f2f97364de811bebc14a31becf1b7 Mon Sep 17 00:00:00 2001 From: Marco Benelli Date: Thu, 19 Jan 2017 15:47:51 +0100 Subject: qmlplugindump: add -qapp option Some modules (ie QtChart) require a QApplication instead of the QGuiApplication that qmlplugindump use by default. This option let the user specify if a QApplication is needed. Task-number: QTBUG-58264 Change-Id: I10e68d0d3eab2afad315b57fef9ce92c42e70124 Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann Reviewed-by: Erik Verbruggen --- tools/qmlplugindump/main.cpp | 36 ++++++++++++++++++++++++++++------- tools/qmlplugindump/qmlplugindump.pro | 1 + 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index 443ede4bf0..5a3bc14eb7 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -33,6 +33,10 @@ #include #include +#ifdef QT_WIDGETS_LIB +#include +#endif // QT_WIDGETS_LIB + #include #include #include @@ -739,8 +743,8 @@ void sigSegvHandler(int) { void printUsage(const QString &appName) { std::cerr << qPrintable(QString( - "Usage: %1 [-v] [-noinstantiate] [-defaultplatform] [-[non]relocatable] [-dependencies ] [-merge ] [-output ] [-noforceqtquick] module.uri version [module/import/path]\n" - " %1 [-v] [-noinstantiate] -path path/to/qmldir/directory [version]\n" + "Usage: %1 [-v] [-qapp] [-noinstantiate] [-defaultplatform] [-[non]relocatable] [-dependencies ] [-merge ] [-output ] [-noforceqtquick] module.uri version [module/import/path]\n" + " %1 [-v] [-qapp] [-noinstantiate] -path path/to/qmldir/directory [version]\n" " %1 [-v] -builtins\n" "Example: %1 Qt.labs.folderlistmodel 2.0 /home/user/dev/qt-install/imports").arg( appName)) << std::endl; @@ -985,10 +989,25 @@ int main(int argc, char *argv[]) else QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true); - QGuiApplication app(argc, argv); + // Check which kind of application should be instantiated. + bool useQApplication = false; + for (int i = 0; i < argc; ++i) { + QString arg = QLatin1String(argv[1]); + if (arg == QLatin1String("--qapp") || arg == QLatin1String("-qapp")) + useQApplication = true; + } + +#ifdef QT_WIDGETS_LIB + QScopedPointer app(useQApplication + ? new QApplication(argc, argv) + : new QGuiApplication(argc, argv)); +#else + QScopedPointer app(new QGuiApplication(argc, argv)); +#endif // QT_WIDGETS_LIB + QCoreApplication::setApplicationVersion(QLatin1String(QT_VERSION_STR)); - const QStringList args = app.arguments(); - const QString appName = QFileInfo(app.applicationFilePath()).baseName(); + const QStringList args = app->arguments(); + const QString appName = QFileInfo(app->applicationFilePath()).baseName(); if (args.size() < 2) { printUsage(appName); return EXIT_INVALIDARGUMENTS; @@ -1058,6 +1077,9 @@ int main(int argc, char *argv[]) } else if (arg == QLatin1String("--defaultplatform") || arg == QLatin1String("-defaultplatform")) { continue; + } else if (arg == QLatin1String("--qapp") + || arg == QLatin1String("-qapp")) { + continue; } else { std::cerr << "Invalid argument: " << qPrintable(arg) << std::endl; return EXIT_INVALIDARGUMENTS; @@ -1322,8 +1344,8 @@ int main(int argc, char *argv[]) QTimer timer; timer.setSingleShot(true); timer.setInterval(0); - QObject::connect(&timer, SIGNAL(timeout()), &app, SLOT(quit())); + QObject::connect(&timer, SIGNAL(timeout()), app.data(), SLOT(quit())); timer.start(); - return app.exec(); + return app->exec(); } diff --git a/tools/qmlplugindump/qmlplugindump.pro b/tools/qmlplugindump/qmlplugindump.pro index 16d9a3f4d9..2749ec943f 100644 --- a/tools/qmlplugindump/qmlplugindump.pro +++ b/tools/qmlplugindump/qmlplugindump.pro @@ -1,4 +1,5 @@ QT += qml qml-private quick-private core-private +qtHaveModule(widgets): QT += widgets CONFIG += no_import_scan -- cgit v1.2.3 From 7e663871e63aaf601f8483f224c33cfbe5245f4e Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 30 Jan 2017 11:08:38 +0100 Subject: Quick: Check fbo msaa related extensions via QtGui GL_EXT_xxxx is not sufficient here. QOpenGLFunctions already has support for the ANGLE and some other variants of the framebuffer multisample and blit extensions, so use that instead of the manual checks. Change-Id: I2d8e0850d3b0b9a9cfd9e55aa38adad07a0ba45d Reviewed-by: Andy Nichols --- src/quick/items/context2d/qquickcontext2dtexture.cpp | 7 ++++--- src/quick/scenegraph/qsgdefaultlayer.cpp | 7 ++++--- src/quick/scenegraph/util/qsgdefaultpainternode.cpp | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp index 38b5f054bf..d90f527486 100644 --- a/src/quick/items/context2d/qquickcontext2dtexture.cpp +++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #endif #include #include @@ -499,9 +500,9 @@ bool QQuickContext2DFBOTexture::doMultisampling() const static bool multisamplingSupported = false; if (!extensionsChecked) { - const QSet extensions = QOpenGLContext::currentContext()->extensions(); - multisamplingSupported = extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_multisample")) - && extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_blit")); + QOpenGLExtensions *e = static_cast(QOpenGLContext::currentContext()->functions()); + multisamplingSupported = e->hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample) + && e->hasOpenGLExtension(QOpenGLExtensions::FramebufferBlit); extensionsChecked = true; } diff --git a/src/quick/scenegraph/qsgdefaultlayer.cpp b/src/quick/scenegraph/qsgdefaultlayer.cpp index ad5b57ff83..78037a2fde 100644 --- a/src/quick/scenegraph/qsgdefaultlayer.cpp +++ b/src/quick/scenegraph/qsgdefaultlayer.cpp @@ -44,6 +44,7 @@ #include #include +#include #include @@ -320,9 +321,9 @@ void QSGDefaultLayer::grab() if (m_context->openglContext()->format().samples() <= 1) { m_multisampling = false; } else { - const QSet extensions = m_context->openglContext()->extensions(); - m_multisampling = extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_multisample")) - && extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_blit")); + QOpenGLExtensions *e = static_cast(funcs); + m_multisampling = e->hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample) + && e->hasOpenGLExtension(QOpenGLExtensions::FramebufferBlit); } m_multisamplingChecked = true; } diff --git a/src/quick/scenegraph/util/qsgdefaultpainternode.cpp b/src/quick/scenegraph/util/qsgdefaultpainternode.cpp index 389b9e0b4e..9ffd1b4b08 100644 --- a/src/quick/scenegraph/util/qsgdefaultpainternode.cpp +++ b/src/quick/scenegraph/util/qsgdefaultpainternode.cpp @@ -238,9 +238,9 @@ void QSGDefaultPainterNode::updateGeometry() void QSGDefaultPainterNode::updateRenderTarget() { if (!m_extensionsChecked) { - const QSet extensions = m_context->openglContext()->extensions(); - m_multisamplingSupported = extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_multisample")) - && extensions.contains(QByteArrayLiteral("GL_EXT_framebuffer_blit")); + QOpenGLExtensions *e = static_cast(QOpenGLContext::currentContext()->functions()); + m_multisamplingSupported = e->hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample) + && e->hasOpenGLExtension(QOpenGLExtensions::FramebufferBlit); m_extensionsChecked = true; } -- cgit v1.2.3 From 0ceac04beb105c686855868e88f1971cf41abac4 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Tue, 31 Jan 2017 14:47:53 +0100 Subject: Fix typo in qmlplugindump error message Change-Id: Icbe18330ae665b693047f098e219c3b665be22e9 Reviewed-by: Simon Hausmann --- tools/qmlplugindump/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index 5a3bc14eb7..e4482ba2a6 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -865,7 +865,7 @@ static bool getDependencies(const QQmlEngine &engine, const QString &pluginImpor QByteArray depencenciesData = importScanner.readAllStandardOutput(); if (!readDependenciesData(QLatin1String(""), depencenciesData, dependencies, QStringList(pluginImportUri), forceQtQuickDependency)) { - std::cerr << "failed to proecess output of qmlimportscanner" << std::endl; + std::cerr << "failed to process output of qmlimportscanner" << std::endl; return false; } -- cgit v1.2.3 From 1380d07b1e60d9a4efec4e15d510271ed210a61a Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 25 Jan 2017 14:51:16 +0100 Subject: Fix -no-qmldebug debug build with MSVC [Platform Specific Changes][Windows] Fixed compilation on MSVC with -no-qml-debug configure argument. Task-number: QTBUG-58412 Change-Id: I915ed3d345b3f1e4e5863456522784ab6c9b15cf Reviewed-by: Ulf Hermann --- src/qml/debugger/qqmldebugserviceinterfaces_p.h | 18 +++++++++++------- src/qml/debugger/qqmlprofiler_p.h | 2 +- src/qml/jsruntime/qv4debugging_p.h | 3 ++- src/qml/jsruntime/qv4profiling_p.h | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/qml/debugger/qqmldebugserviceinterfaces_p.h b/src/qml/debugger/qqmldebugserviceinterfaces_p.h index ca6293c3ec..99ec525f29 100644 --- a/src/qml/debugger/qqmldebugserviceinterfaces_p.h +++ b/src/qml/debugger/qqmldebugserviceinterfaces_p.h @@ -67,13 +67,15 @@ class QQuickWindow; #ifdef QT_NO_QML_DEBUGGER -struct QV4DebugService +class QV4DebugService { +public: void signalEmitted(const QString &) {} }; -struct QQmlProfilerService +class QQmlProfilerService { +public: void startProfiling(QJSEngine *engine, quint64 features = std::numeric_limits::max()) { Q_UNUSED(engine); @@ -83,21 +85,23 @@ struct QQmlProfilerService void stopProfiling(QJSEngine *) {} }; -struct QQmlEngineDebugService +class QQmlEngineDebugService { +public: void objectCreated(QJSEngine *, QObject *) {} virtual void setStatesDelegate(QQmlDebugStatesDelegate *) {} }; -struct QQmlInspectorService { +class QQmlInspectorService { +public: void addWindow(QQuickWindow *) {} void setParentWindow(QQuickWindow *, QWindow *) {} void removeWindow(QQuickWindow *) {} }; -struct QDebugMessageService {}; -struct QQmlEngineControlService {}; -struct QQmlNativeDebugService {}; +class QDebugMessageService {}; +class QQmlEngineControlService {}; +class QQmlNativeDebugService {}; #else diff --git a/src/qml/debugger/qqmlprofiler_p.h b/src/qml/debugger/qqmlprofiler_p.h index 41fb2c5b7b..88f8e94f25 100644 --- a/src/qml/debugger/qqmlprofiler_p.h +++ b/src/qml/debugger/qqmlprofiler_p.h @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE #define Q_QML_PROFILE(feature, profiler, Method) #define Q_QML_OC_PROFILE(member, Code) -struct QQmlProfiler {}; +class QQmlProfiler {}; struct QQmlBindingProfiler { diff --git a/src/qml/jsruntime/qv4debugging_p.h b/src/qml/jsruntime/qv4debugging_p.h index 3b589a41f1..8e2eec03d2 100644 --- a/src/qml/jsruntime/qv4debugging_p.h +++ b/src/qml/jsruntime/qv4debugging_p.h @@ -61,8 +61,9 @@ namespace Debugging { #ifdef QT_NO_QML_DEBUGGER -struct Debugger +class Debugger { +public: bool pauseAtNextOpportunity() const { return false; } void maybeBreakAtInstruction() {} void enteringFunction() {} diff --git a/src/qml/jsruntime/qv4profiling_p.h b/src/qml/jsruntime/qv4profiling_p.h index f75ac4d33a..9de597ad0e 100644 --- a/src/qml/jsruntime/qv4profiling_p.h +++ b/src/qml/jsruntime/qv4profiling_p.h @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE namespace QV4 { namespace Profiling { -struct Profiler {}; +class Profiler {}; } } -- cgit v1.2.3 From 5dd9c684e0a9a36a3cde047f77b5da93907e96be Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 18 Jan 2017 09:30:47 +0100 Subject: Doc: Improve introduction to Qt Quick SceneGraph Renderer Mention that the new backends are introduced with Qt 5.8. Also remove some details that rather belong in subsections, in particular the mentioning that the Qt Quick API's originally were designed for OpenGL. It is unclear what consequences this has for the user. Limitations on backends should be rather spelled out in the respective subsections. Change-Id: I21239ea99b89b4c7771e3d79a38c6aa39007d0ea Reviewed-by: Laszlo Agocs Reviewed-by: Andy Nichols Reviewed-by: Leena Miettinen --- src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc b/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc index 9ce26e1bb8..c9ad9d8065 100644 --- a/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc +++ b/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc @@ -31,18 +31,14 @@ \section1 Scene Graph Adaptations in Qt Quick -Originally Qt Quick only had one available renderer for parsing the scene graph -and rendering the results to a render target. This renderer is now the default -OpenGL Renderer which supports rendering either using the OpenGL ES 2.0 or -OpenGL 2.0 (with framebuffer object extensions) APIs. The Qt Quick APIs have -originally been designed with the assumption that OpenGL is always available. -However, it is now possible to use other graphics API's to render Qt Quick -scenes using the scene graph APIs. +Originally Qt Quick always relied on OpenGL (OpenGL ES 2.0 or OpenGL 2.0) for parsing +the scene graph and rendering the results to a render target. From Qt 5.8 onwards +Qt Quick also supports rendering in software and with Direct3D 12. \section1 Switching between the adaptation used by the application -The default of the OpenGL, or - in Qt builds with disabled OpenGL support - the -software adaptation, can be overridden either by using an environment variable +The default rendering backend is still OpenGL, or - in Qt builds with disabled OpenGL support - +the software renderer. This can be overridden either by using an environment variable or a C++ API. The former consists of setting the \c{QT_QUICK_BACKEND} or the legacy \c{QMLSCENE_DEVICE} environment variable before launching applications. The latter is done by calling QQuickWindow::setSceneGraphBackend() early in the -- cgit v1.2.3 From 814d15c5255cf4a46419c21d5f193bb1a499f9f4 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Wed, 1 Feb 2017 12:06:26 +0100 Subject: fix memory leak in QQuickWindowPrivate::deliverTouchAsMouse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A QTouchEvent is allocated with a reduced subset of TouchPoints for each Item to which we attempt to deliver it, and thrown away afterwards. (Ιt's not efficient to heap-allocate it, but we can't avoid doing it at all without changing behavior.) So now it's stored in a QScopedPointer. Change-Id: I48badb493610d0a715e582a2eedae95e2006eb2b Reviewed-by: Jan Arve Sæther --- src/quick/items/qquickwindow.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 5edfd619ec..e9108b7bda 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -628,8 +628,8 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve // FIXME: make this work for mouse events too and get rid of the asTouchEvent in here. Q_ASSERT(pointerEvent->asPointerTouchEvent()); - QTouchEvent *event = pointerEvent->asPointerTouchEvent()->touchEventForItem(item); - if (!event) + QScopedPointer event(pointerEvent->asPointerTouchEvent()->touchEventForItem(item)); + if (event.isNull()) return false; // For each point, check if it is accepted, if not, try the next point. @@ -646,7 +646,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve break; qCDebug(DBG_TOUCH_TARGET) << "TP (mouse)" << p.id() << "->" << item; - QScopedPointer mousePress(touchToMouseEvent(QEvent::MouseButtonPress, p, event, item, false)); + QScopedPointer mousePress(touchToMouseEvent(QEvent::MouseButtonPress, p, event.data(), item, false)); // Send a single press and see if that's accepted QCoreApplication::sendEvent(item, mousePress.data()); @@ -660,7 +660,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve pointerEventPoint->setGrabber(item); if (checkIfDoubleClicked(event->timestamp())) { - QScopedPointer mouseDoubleClick(touchToMouseEvent(QEvent::MouseButtonDblClick, p, event, item, false)); + QScopedPointer mouseDoubleClick(touchToMouseEvent(QEvent::MouseButtonDblClick, p, event.data(), item, false)); QCoreApplication::sendEvent(item, mouseDoubleClick.data()); event->setAccepted(mouseDoubleClick->isAccepted()); if (!mouseDoubleClick->isAccepted()) { @@ -677,7 +677,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve } else if (touchMouseDevice == device && p.id() == touchMouseId) { if (p.state() & Qt::TouchPointMoved) { if (QQuickItem *mouseGrabberItem = q->mouseGrabberItem()) { - QScopedPointer me(touchToMouseEvent(QEvent::MouseMove, p, event, mouseGrabberItem, false)); + QScopedPointer me(touchToMouseEvent(QEvent::MouseMove, p, event.data(), mouseGrabberItem, false)); QCoreApplication::sendEvent(item, me.data()); event->setAccepted(me->isAccepted()); if (me->isAccepted()) { @@ -688,7 +688,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve // no grabber, check if we care about mouse hover // FIXME: this should only happen once, not recursively... I'll ignore it just ignore hover now. // hover for touch??? - QScopedPointer me(touchToMouseEvent(QEvent::MouseMove, p, event, item, false)); + QScopedPointer me(touchToMouseEvent(QEvent::MouseMove, p, event.data(), item, false)); if (lastMousePosition.isNull()) lastMousePosition = me->windowPos(); QPointF last = lastMousePosition; @@ -706,7 +706,7 @@ bool QQuickWindowPrivate::deliverTouchAsMouse(QQuickItem *item, QQuickPointerEve } else if (p.state() & Qt::TouchPointReleased) { // currently handled point was released if (QQuickItem *mouseGrabberItem = q->mouseGrabberItem()) { - QScopedPointer me(touchToMouseEvent(QEvent::MouseButtonRelease, p, event, mouseGrabberItem, false)); + QScopedPointer me(touchToMouseEvent(QEvent::MouseButtonRelease, p, event.data(), mouseGrabberItem, false)); QCoreApplication::sendEvent(item, me.data()); if (item->acceptHoverEvents() && p.screenPos() != QGuiApplicationPrivate::lastCursorPosition) { -- cgit v1.2.3 From 29a278ed0222c70b4ac4d00ccf44b4cf0d66360c Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Wed, 1 Feb 2017 08:56:34 +0200 Subject: Fix regression with UniformAnimator target property validation Task-number: QTBUG-58549 Change-Id: Iaa2a9cd8b86e8c2bb7e20b99fabad99d0bd51799 Reviewed-by: Laszlo Agocs --- src/quick/items/qquickshadereffect.cpp | 5 +++++ src/quick/items/qquickshadereffect_p.h | 2 ++ src/quick/util/qquickanimatorjob.cpp | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp index 7926607e33..436d7b33ce 100644 --- a/src/quick/items/qquickshadereffect.cpp +++ b/src/quick/items/qquickshadereffect.cpp @@ -873,4 +873,9 @@ void QQuickShaderEffectPrivate::updatePolish() q->m_impl->maybeUpdateShaders(); } +bool QQuickShaderEffect::isOpenGLShaderEffect() const +{ + return m_glImpl != Q_NULLPTR; +} + QT_END_NAMESPACE diff --git a/src/quick/items/qquickshadereffect_p.h b/src/quick/items/qquickshadereffect_p.h index 7885daffbb..d269dc5e50 100644 --- a/src/quick/items/qquickshadereffect_p.h +++ b/src/quick/items/qquickshadereffect_p.h @@ -117,6 +117,8 @@ public: bool isComponentComplete() const; QString parseLog(); + bool isOpenGLShaderEffect() const; + Q_SIGNALS: void fragmentShaderChanged(); void vertexShaderChanged(); diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 1176cf1ff7..33569c4784 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -46,6 +46,7 @@ #if QT_CONFIG(quick_shadereffect) && QT_CONFIG(opengl) # include # include +# include #endif #include @@ -558,7 +559,8 @@ QQuickUniformAnimatorJob::QQuickUniformAnimatorJob() void QQuickUniformAnimatorJob::setTarget(QQuickItem *target) { - if (qobject_cast(target) != 0) + QQuickShaderEffect* effect = qobject_cast(target); + if (effect && effect->isOpenGLShaderEffect()) m_target = target; } -- cgit v1.2.3 From 53074cdc43ad3a78efd2349fc819d187cb92c5cc Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 1 Feb 2017 19:50:11 +0800 Subject: Fix libs build with msvc on Chinese locale on Windows Chinese locale means Code Page 936 here. It's also related with removing C4819 warnings. And it's also following Conventions in Qt source code: All code is ascii only (7-bit characters only, run man ascii if unsure) See also http://wiki.qt.io/Coding_Conventions Task-number: QTBUG-56155 Task-number: QTBUG-58161 Change-Id: I1c38a6ce74670716f730663edbcdec3919b438c2 Reviewed-by: Friedemann Kleint --- src/qml/compiler/qv4ssa.cpp | 4 ++-- src/qml/jit/qv4regalloc.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp index deba41ef9d..27e53e580a 100644 --- a/src/qml/compiler/qv4ssa.cpp +++ b/src/qml/compiler/qv4ssa.cpp @@ -5727,10 +5727,10 @@ MoveMapping::Action MoveMapping::schedule(const Move &m, QList &todo, QLis // References: // [Wimmer1] C. Wimmer and M. Franz. Linear Scan Register Allocation on SSA Form. In Proceedings of -// CGO’10, ACM Press, 2010 +// CGO'10, ACM Press, 2010 // [Wimmer2] C. Wimmer and H. Mossenbock. Optimized Interval Splitting in a Linear Scan Register // Allocator. In Proceedings of the ACM/USENIX International Conference on Virtual -// Execution Environments, pages 132–141. ACM Press, 2005. +// Execution Environments, pages 132-141. ACM Press, 2005. // [Briggs] P. Briggs, K.D. Cooper, T.J. Harvey, and L.T. Simpson. Practical Improvements to the // Construction and Destruction of Static Single Assignment Form. // [Appel] A.W. Appel. Modern Compiler Implementation in Java. Second edition, Cambridge diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp index b168a1e2ba..124717680c 100644 --- a/src/qml/jit/qv4regalloc.cpp +++ b/src/qml/jit/qv4regalloc.cpp @@ -1954,10 +1954,10 @@ void RegisterAllocator::dump(IR::Function *function) const // References: // [Wimmer1] C. Wimmer and M. Franz. Linear Scan Register Allocation on SSA Form. In Proceedings of -// CGO’10, ACM Press, 2010 +// CGO'10, ACM Press, 2010 // [Wimmer2] C. Wimmer and H. Mossenbock. Optimized Interval Splitting in a Linear Scan Register // Allocator. In Proceedings of the ACM/USENIX International Conference on Virtual -// Execution Environments, pages 132–141. ACM Press, 2005. +// Execution Environments, pages 132-141. ACM Press, 2005. // [Traub] Omri Traub, Glenn Holloway, and Michael D. Smith. Quality and Speed in Linear-scan // Register Allocation. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming -// Language Design and Implementation, pages 142–151, June 1998. +// Language Design and Implementation, pages 142-151, June 1998. -- cgit v1.2.3 From 9a009ccde8bfc522578533a114396a5e762d6d8f Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 1 Feb 2017 14:55:03 +0100 Subject: Prevent propagating results of a phi node into another phi node .. of the same basic block. Phi nodes are "executed in parallel", so such a situation will lead to interesting results. Task-number: QTBUG-58553 Change-Id: Ibed439df91d46ea416dcb0a20457310e91dce8b4 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4ssa.cpp | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp index 27e53e580a..220bdc10b4 100644 --- a/src/qml/compiler/qv4ssa.cpp +++ b/src/qml/compiler/qv4ssa.cpp @@ -3580,16 +3580,43 @@ public: , _replacement(0) {} - void operator()(Temp *toReplace, Expr *replacement, StatementWorklist &W, QVector *newUses = 0) + bool operator()(Temp *toReplace, Expr *replacement, StatementWorklist &W, QVector *newUses = 0) { Q_ASSERT(replacement->asTemp() || replacement->asConst() || replacement->asName()); -// qout << "Replacing ";toReplace->dump(qout);qout<<" by ";replacement->dump(qout);qout< &uses = _defUses.uses(*_toReplace); + + // Prevent the following: + // L3: + // %1 = phi L1: %2, L2: %3 + // %4 = phi L1: %5, L2: %6 + // %6 = %1 + // From turning into: + // L3: + // %1 = phi L1: %2, L2: %3 + // %4 = phi L1: %5, L2: %1 + // + // Because both phi nodes are "executed in parallel", we cannot replace %6 by %1 in the + // second phi node. So, if the defining statement for a temp is a phi node, and one of the + // uses of the to-be-replaced statement is a phi node in the same block as the defining + // statement, bail out. + if (Temp *r = _replacement->asTemp()) { + if (_defUses.defStmt(*r)->asPhi()) { + BasicBlock *replacementDefBlock = _defUses.defStmtBlock(*r); + foreach (Stmt *use, uses) { + if (Phi *usePhi = use->asPhi()) { + if (_defUses.defStmtBlock(*usePhi->targetTemp) == replacementDefBlock) + return false; + } + } + } + } + +// qout << "Replacing ";toReplace->dump(qout);qout<<" by ";replacement->dump(qout);qout<reserve(uses.size()); @@ -3605,6 +3632,7 @@ public: qSwap(_replacement, replacement); qSwap(_toReplace, toReplace); + return true; } private: @@ -4081,11 +4109,12 @@ void optimizeSSA(StatementWorklist &W, DefUses &defUses, DominatorTree &df) // copy propagation: if (Temp *sourceTemp = m->source->asTemp()) { QVector newT2Uses; - replaceUses(targetTemp, sourceTemp, W, &newT2Uses); - defUses.removeUse(s, *sourceTemp); - defUses.addUses(*sourceTemp, newT2Uses); - defUses.removeDef(*targetTemp); - W.remove(s); + if (replaceUses(targetTemp, sourceTemp, W, &newT2Uses)) { + defUses.removeUse(s, *sourceTemp); + defUses.addUses(*sourceTemp, newT2Uses); + defUses.removeDef(*targetTemp); + W.remove(s); + } continue; } -- cgit v1.2.3 From 22b03fd6d3efdfa0385ced2450c6c7dfcf555d6e Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Mon, 30 Jan 2017 16:36:46 -0600 Subject: Enable PropertyChanges to correctly restore binding on alias Change-Id: I88ffdd1d1224705e980e449b6c799c9f186143b1 Task-number: QTBUG-58271 Reviewed-by: Simon Hausmann --- src/qml/qml/qqmlproperty.cpp | 4 +-- .../qqmlproperty/data/aliasPropertyBindings2.qml | 23 +++++++++++++ tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp | 40 ++++++++++++++++------ 3 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 tests/auto/qml/qqmlproperty/data/aliasPropertyBindings2.qml diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp index 0b8eb677cb..7df8336f51 100644 --- a/src/qml/qml/qqmlproperty.cpp +++ b/src/qml/qml/qqmlproperty.cpp @@ -790,12 +790,12 @@ void QQmlPropertyPrivate::removeBinding(const QQmlProperty &that) QQmlAbstractBinding * QQmlPropertyPrivate::binding(QObject *object, QQmlPropertyIndex index) { + findAliasTarget(object, index, &object, &index); + QQmlData *data = QQmlData::get(object); if (!data) return 0; - findAliasTarget(object, index, &object, &index); - const int coreIndex = index.coreIndex(); const int valueTypeIndex = index.valueTypeIndex(); diff --git a/tests/auto/qml/qqmlproperty/data/aliasPropertyBindings2.qml b/tests/auto/qml/qqmlproperty/data/aliasPropertyBindings2.qml new file mode 100644 index 0000000000..60cb088209 --- /dev/null +++ b/tests/auto/qml/qqmlproperty/data/aliasPropertyBindings2.qml @@ -0,0 +1,23 @@ +import QtQuick 2.0 + +Item { + id: root + + property real test: 9 + property real test2: 3 + + property alias aliasProperty: innerObject.realProperty + + property QtObject innerObject: QtObject { + id: innerObject + property real realProperty: test * test + test + } + + states: State { + name: "switch" + PropertyChanges { + target: root + aliasProperty: 32 * test2 + } + } +} diff --git a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp index 385ffc523a..84a1bd9cc5 100644 --- a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp +++ b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp @@ -135,6 +135,7 @@ private slots: // Bugs void crashOnValueProperty(); + void aliasPropertyBindings_data(); void aliasPropertyBindings(); void noContext(); void assignEmptyVariantMap(); @@ -1833,23 +1834,40 @@ void tst_qqmlproperty::crashOnValueProperty() QCOMPARE(p.read(), QVariant(20)); } -// QTBUG-13719 +void tst_qqmlproperty::aliasPropertyBindings_data() +{ + QTest::addColumn("file"); + QTest::addColumn("subObject"); + + QTest::newRow("same object") << "aliasPropertyBindings.qml" << ""; + QTest::newRow("different objects") << "aliasPropertyBindings2.qml" << "innerObject"; +} + +// QTBUG-13719, QTBUG-58271 void tst_qqmlproperty::aliasPropertyBindings() { - QQmlComponent component(&engine, testFileUrl("aliasPropertyBindings.qml")); + QFETCH(QString, file); + QFETCH(QString, subObject); + + QQmlComponent component(&engine, testFileUrl(file)); QObject *object = component.create(); QVERIFY(object != 0); - QCOMPARE(object->property("realProperty").toReal(), 90.); + // the object where realProperty lives + QObject *realPropertyObject = object; + if (!subObject.isEmpty()) + realPropertyObject = object->property(subObject.toLatin1()).value(); + + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 90.); QCOMPARE(object->property("aliasProperty").toReal(), 90.); object->setProperty("test", 10); - QCOMPARE(object->property("realProperty").toReal(), 110.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 110.); QCOMPARE(object->property("aliasProperty").toReal(), 110.); - QQmlProperty realProperty(object, QLatin1String("realProperty")); + QQmlProperty realProperty(realPropertyObject, QLatin1String("realProperty")); QQmlProperty aliasProperty(object, QLatin1String("aliasProperty")); // Check there is a binding on these two properties @@ -1868,18 +1886,18 @@ void tst_qqmlproperty::aliasPropertyBindings() QCOMPARE(QQmlPropertyPrivate::binding(realProperty), QQmlPropertyPrivate::binding(aliasProperty)); - QCOMPARE(object->property("realProperty").toReal(), 96.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 96.); QCOMPARE(object->property("aliasProperty").toReal(), 96.); // Check the old binding really has not effect any more object->setProperty("test", 4); - QCOMPARE(object->property("realProperty").toReal(), 96.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 96.); QCOMPARE(object->property("aliasProperty").toReal(), 96.); object->setProperty("test2", 9); - QCOMPARE(object->property("realProperty").toReal(), 288.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 288.); QCOMPARE(object->property("aliasProperty").toReal(), 288.); // Revert @@ -1890,12 +1908,12 @@ void tst_qqmlproperty::aliasPropertyBindings() QCOMPARE(QQmlPropertyPrivate::binding(realProperty), QQmlPropertyPrivate::binding(aliasProperty)); - QCOMPARE(object->property("realProperty").toReal(), 20.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 20.); QCOMPARE(object->property("aliasProperty").toReal(), 20.); object->setProperty("test2", 3); - QCOMPARE(object->property("realProperty").toReal(), 20.); + QCOMPARE(realPropertyObject->property("realProperty").toReal(), 20.); QCOMPARE(object->property("aliasProperty").toReal(), 20.); delete object; @@ -1996,7 +2014,7 @@ void tst_qqmlproperty::warnOnInvalidBinding() QTest::ignoreMessage(QtWarningMsg, expectedWarning.toLatin1().constData()); // V8 error message for invalid binding to anchor - expectedWarning = testUrl.toString() + QString::fromLatin1(":14:33: Unable to assign QQuickItem_QML_6 to QQuickAnchorLine"); + expectedWarning = testUrl.toString() + QString::fromLatin1(":14:33: Unable to assign QQuickItem_QML_8 to QQuickAnchorLine"); QTest::ignoreMessage(QtWarningMsg, expectedWarning.toLatin1().constData()); QQmlComponent component(&engine, testUrl); -- cgit v1.2.3 From bf19d3294f83fc061eddc719bc608bb19e500a5a Mon Sep 17 00:00:00 2001 From: Oleg Yadrov Date: Tue, 24 Jan 2017 16:39:28 -0800 Subject: MouseArea: fix bug preventing dragging from start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The same bounded dragPos values were used for - moving the target item to new position; and - if dragging didn’t start yet, determining whether cursor moved over the threshold distance. It is right for moving the target item, but in the second case it led to that dragging did not start if the distance between item's left border and minimumX (right border and maximumX, top border and minimumY, bottom border and maximumY accordingly) was less than drag.threshold. Task-number: QTBUG-58347 Change-Id: If61a98bf734739323ef19dee6709560b754b2456 Reviewed-by: Andrew den Exter --- src/quick/items/qquickmousearea.cpp | 25 +++++++++++++----- .../availableDistanceLessThanDragThreshold.qml | 24 +++++++++++++++++ .../quick/qquickmousearea/tst_qquickmousearea.cpp | 30 ++++++++++++++++++++++ 3 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 tests/auto/quick/qquickmousearea/data/availableDistanceLessThanDragThreshold.qml diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index 3160495332..2fbca26408 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -734,23 +734,34 @@ void QQuickMouseArea::mouseMoveEvent(QMouseEvent *event) bool dragY = drag()->axis() & QQuickDrag::YAxis; QPointF dragPos = d->drag->target()->position(); + QPointF boundedDragPos = dragPos; if (dragX) { - dragPos.setX(qBound( + dragPos.setX(startPos.x() + curLocalPos.x() - startLocalPos.x()); + boundedDragPos.setX(qBound( d->drag->xmin(), - startPos.x() + curLocalPos.x() - startLocalPos.x(), + dragPos.x(), d->drag->xmax())); } if (dragY) { - dragPos.setY(qBound( + dragPos.setY(startPos.y() + curLocalPos.y() - startLocalPos.y()); + boundedDragPos.setY(qBound( d->drag->ymin(), - startPos.y() + curLocalPos.y() - startLocalPos.y(), + dragPos.y(), d->drag->ymax())); } + + QPointF targetPos = d->drag->target()->position(); + if (d->drag->active()) - d->drag->target()->setPosition(dragPos); + d->drag->target()->setPosition(boundedDragPos); + + bool dragOverThresholdX = QQuickWindowPrivate::dragOverThreshold(dragPos.x() - startPos.x(), + Qt::XAxis, event, d->drag->threshold()); + bool dragOverThresholdY = QQuickWindowPrivate::dragOverThreshold(dragPos.y() - startPos.y(), + Qt::YAxis, event, d->drag->threshold()); - if (!d->overThreshold && (QQuickWindowPrivate::dragOverThreshold(dragPos.x() - startPos.x(), Qt::XAxis, event, d->drag->threshold()) - || QQuickWindowPrivate::dragOverThreshold(dragPos.y() - startPos.y(), Qt::YAxis, event, d->drag->threshold()))) + if (!d->overThreshold && (((targetPos.x() != boundedDragPos.x()) && dragOverThresholdX) || + ((targetPos.y() != boundedDragPos.y()) && dragOverThresholdY))) { d->overThreshold = true; if (d->drag->smoothed()) diff --git a/tests/auto/quick/qquickmousearea/data/availableDistanceLessThanDragThreshold.qml b/tests/auto/quick/qquickmousearea/data/availableDistanceLessThanDragThreshold.qml new file mode 100644 index 0000000000..2b45a19340 --- /dev/null +++ b/tests/auto/quick/qquickmousearea/data/availableDistanceLessThanDragThreshold.qml @@ -0,0 +1,24 @@ +import QtQuick 2.0 + +Rectangle { + width: 400 + height: 200 + + MouseArea { + id: mouseArea + objectName: "mouseArea" + width: 200 + height: 200 + + drag.target: mouseArea + drag.axis: Drag.XAxis + drag.minimumX: 0 + drag.maximumX: 200 + drag.threshold: 200 + + Rectangle { + anchors.fill: parent + color: "red" + } + } +} diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp index e1f903123b..c2a2118598 100644 --- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp @@ -88,6 +88,7 @@ private slots: void invalidDrag_data() { rejectedButton_data(); } void invalidDrag(); void cancelDragging(); + void availableDistanceLessThanDragThreshold(); void setDragOnPressed(); void updateMouseAreaPosOnClick(); void updateMouseAreaPosOnResize(); @@ -583,6 +584,35 @@ void tst_QQuickMouseArea::cancelDragging() QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(122,122)); } +// QTBUG-58347 +void tst_QQuickMouseArea::availableDistanceLessThanDragThreshold() +{ + QQuickView view; + QByteArray errorMessage; + QVERIFY2(initView(view, testFileUrl("availableDistanceLessThanDragThreshold.qml"), true, &errorMessage), + errorMessage.constData()); + view.show(); + view.requestActivate(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + QVERIFY(view.rootObject()); + + QQuickMouseArea *mouseArea = view.rootObject()->findChild("mouseArea"); + QVERIFY(mouseArea); + + QPoint position(100, 100); + QTest::mousePress(&view, Qt::LeftButton, 0, position); + QTest::qWait(10); + position.setX(301); + QTest::mouseMove(&view, position); + position.setX(501); + QTest::mouseMove(&view, position); + QVERIFY(mouseArea->drag()->active()); + QTest::mouseRelease(&view, Qt::LeftButton, 0, position); + + QVERIFY(!mouseArea->drag()->active()); + QCOMPARE(mouseArea->x(), 200.0); +} + void tst_QQuickMouseArea::setDragOnPressed() { QQuickView window; -- cgit v1.2.3 From 04c98022d934b5ba0a6492e3556416386ce5d70e Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Fri, 3 Feb 2017 15:42:08 +0100 Subject: Fix move ordering while resolving edges in register allocation When register allocation on an IR in SSA form is done, the last step is to turn the Phi nodes into moves and swaps and put those instructions in the predecessors. As the Phi nodes are conceptually "executed in parallel", this can result in cycles: r1 <- r0 r0 <- r1 These have to be turned into a swap instruction. Also, the moves have to be ordered in order to make sure that no values are overwritten: r1 <- r0 r2 <- r1 Here the two moves need to be switched. The comments in the code document the algorithm. Change-Id: I4151988681f7554b00a3eb70d224e6e2f29ebf04 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4jsir_p.h | 10 +++ src/qml/compiler/qv4ssa.cpp | 146 ++++++++++++++++++++--------------- src/qml/compiler/qv4ssa_p.h | 13 ++-- src/qml/jit/qv4regalloc.cpp | 2 + tests/auto/qml/v4misc/tst_v4misc.cpp | 92 ++++++++++++++++++++++ 5 files changed, 196 insertions(+), 67 deletions(-) diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 73aa6c4975..a614d3fe1c 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -507,6 +507,16 @@ struct Q_AUTOTEST_EXPORT Temp: Expr { , memberResolver(0) {} + Temp(Type type, Kind kind, unsigned index) + : Expr(TempExpr) + , index(index) + , isReadOnly(0) + , kind(kind) + , memberResolver(0) + { + this->type = type; + } + void init(unsigned kind, unsigned index) { this->index = index; diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp index 220bdc10b4..45ca56584f 100644 --- a/src/qml/compiler/qv4ssa.cpp +++ b/src/qml/compiler/qv4ssa.cpp @@ -5646,25 +5646,97 @@ void MoveMapping::add(Expr *from, Temp *to) { _moves.append(m); } +// Order the moves that are generated when resolving edges during register allocation (see [Wimmer1] +// section 6 for details). Now these moves form one or more graphs, so we have to output them in +// such an order that values don't get overwritten: +// r1 <- r0 +// r2 <- r1 +// That input has to be ordered as follows in order to prevent the value in r1 from being lost: +// r2 <- r1 +// r1 <- r0 +// +// So, the algorithm is to output the leaves first, and take them out of the input. This will result +// in some moves to become leaves (in the above example: when leaf r2 <- r1 is generated and taken +// away, the r1 <- r0 is now a leaf), so we can output those and take those out, and repeat until +// there are no more leafs. +// +// The tricky part is that there might be cycles: +// r4 <- r5 +// r5 <- r4 +// These have to be turned into a "register swap": +// r4 <=> r5 +// +// So after running the above algorithm where we progressively remove the leaves, we are left with +// zero or more cycles. To resolve those, we break one of the edges of the cycle, and for all other +// edges we generate swaps. Note that the swaps will always occur as the last couple of moves, +// because otherwise they might clobber sources for moves: +// r4 <=> r5 +// r6 <- r5 +// Here, the value of r5 is already overwritten with the one in r4, so the correct order is: +// r6 <- r5 +// r4 <=> r5 void MoveMapping::order() { - QList todo = _moves; - QList output, swaps; + QList output; output.reserve(_moves.size()); - QList delayed; - delayed.reserve(_moves.size()); - while (!todo.isEmpty()) { - const Move m = todo.first(); - todo.removeFirst(); - schedule(m, todo, delayed, output, swaps); - } + while (!_moves.isEmpty()) { + // Take out all leaf edges, because we can output them without any problems. + int nextLeaf = findLeaf(); + if (nextLeaf == -1) + break; // No more leafs left, we're done here. + output.append(_moves.takeAt(nextLeaf)); + // Now there might be new leaf edges: any move that had the input of the previously found + // leaf as an output, so loop around. + } + + while (!_moves.isEmpty()) { + // We're now left with one or more cycles. + // Step one: break the/a cycle. + _moves.removeFirst(); + // Step two: find the other edges of the cycle, starting with the one of that is now a leaf. + while (!_moves.isEmpty()) { + int nextLeaf = findLeaf(); + if (nextLeaf == -1) + break; // We're done with this cycle. + Move m = _moves.takeAt(nextLeaf); + // Step three: get the edges from the cycle and turn it into a swap + m.needsSwap = true; + output.append(m); + // Because we took out a leaf, find the next one. + } + // We're done with the cycle, let's see if there are more. + } + + _moves = output; +} - output += swaps; +int MoveMapping::findLeaf() const +{ + for (int i = 0, e = _moves.size(); i != e; ++i) { + // Take an edge from the list... + const Temp *target = _moves.at(i).to; + // ... and see if its target is used as a source... + bool targetUsedAsSource = false; + for (int j = 0; j != e; ++j) { + if (i == j) + continue; - Q_ASSERT(todo.isEmpty()); - Q_ASSERT(delayed.isEmpty()); - qSwap(_moves, output); + Expr *source = _moves.at(j).from; + if (const Temp *sourceTemp = source->asTemp()) { + if (overlappingStorage(*target, *sourceTemp)) { + targetUsedAsSource = true; + break; + } + } + } + // ... if not, we have a leaf edge ... + if (!targetUsedAsSource) + return i; + // .. otherwise we try the next one. + } + + return -1; // No leaf found } QList MoveMapping::insertMoves(BasicBlock *bb, IR::Function *function, bool atEnd) const @@ -5706,54 +5778,6 @@ void MoveMapping::dump() const } } -MoveMapping::Action MoveMapping::schedule(const Move &m, QList &todo, QList &delayed, - QList &output, QList &swaps) const -{ - Moves usages = sourceUsages(m.to, todo) + sourceUsages(m.to, delayed); - foreach (const Move &dependency, usages) { - if (!output.contains(dependency)) { - if (delayed.contains(dependency)) { - // We have a cycle! Break it by swapping instead of assigning. - if (DebugMoveMapping) { - delayed += m; - QBuffer buf; - buf.open(QIODevice::WriteOnly); - QTextStream out(&buf); - IRPrinter printer(&out); - out<<"we have a cycle! temps:" << endl; - foreach (const Move &m, delayed) { - out<<"\t"; - printer.print(m.to); - out<<" <- "; - printer.print(m.from); - out< startEndLoops; }; -class MoveMapping +class Q_AUTOTEST_EXPORT MoveMapping { +#ifdef V4_AUTOTEST +public: +#endif struct Move { Expr *from; Temp *to; bool needsSwap; - Move(Expr *from, Temp *to) - : from(from), to(to), needsSwap(false) + Move(Expr *from, Temp *to, bool needsSwap = false) + : from(from), to(to), needsSwap(needsSwap) {} bool operator==(const Move &other) const @@ -284,9 +287,7 @@ public: void dump() const; private: - enum Action { NormalMove, NeedsSwap }; - Action schedule(const Move &m, QList &todo, QList &delayed, QList &output, - QList &swaps) const; + int findLeaf() const; }; /* diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp index 124717680c..d49fae3096 100644 --- a/src/qml/jit/qv4regalloc.cpp +++ b/src/qml/jit/qv4regalloc.cpp @@ -1134,6 +1134,8 @@ private: mapping.add(moveFrom, moveTo); } + if (DebugRegAlloc) + mapping.dump(); mapping.order(); if (DebugRegAlloc) mapping.dump(); diff --git a/tests/auto/qml/v4misc/tst_v4misc.cpp b/tests/auto/qml/v4misc/tst_v4misc.cpp index 057714e175..88b6ae92a8 100644 --- a/tests/auto/qml/v4misc/tst_v4misc.cpp +++ b/tests/auto/qml/v4misc/tst_v4misc.cpp @@ -28,6 +28,7 @@ #include +#define V4_AUTOTEST #include class tst_v4misc: public QObject @@ -40,6 +41,9 @@ private slots: void rangeSplitting_1(); void rangeSplitting_2(); void rangeSplitting_3(); + + void moveMapping_1(); + void moveMapping_2(); }; QT_BEGIN_NAMESPACE @@ -139,6 +143,94 @@ void tst_v4misc::rangeSplitting_3() QCOMPARE(interval.end(), 71); } +void tst_v4misc::moveMapping_1() +{ + Temp fp2(DoubleType, Temp::PhysicalRegister, 2); + Temp fp3(DoubleType, Temp::PhysicalRegister, 3); + Temp fp4(DoubleType, Temp::PhysicalRegister, 4); + Temp fp5(DoubleType, Temp::PhysicalRegister, 5); + + MoveMapping mapping; + mapping.add(&fp2, &fp3); + mapping.add(&fp2, &fp4); + mapping.add(&fp2, &fp5); + mapping.add(&fp3, &fp2); + + mapping.order(); +// mapping.dump(); + + QCOMPARE(mapping._moves.size(), 3); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp2, &fp4, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp2, &fp5, false))); + QVERIFY(mapping._moves.last() == MoveMapping::Move(&fp2, &fp3, true) || + mapping._moves.last() == MoveMapping::Move(&fp3, &fp2, true)); +} + +void tst_v4misc::moveMapping_2() +{ + Temp fp1(DoubleType, Temp::PhysicalRegister, 1); + Temp fp2(DoubleType, Temp::PhysicalRegister, 2); + Temp fp3(DoubleType, Temp::PhysicalRegister, 3); + Temp fp4(DoubleType, Temp::PhysicalRegister, 4); + Temp fp5(DoubleType, Temp::PhysicalRegister, 5); + Temp fp6(DoubleType, Temp::PhysicalRegister, 6); + Temp fp7(DoubleType, Temp::PhysicalRegister, 7); + Temp fp8(DoubleType, Temp::PhysicalRegister, 8); + Temp fp9(DoubleType, Temp::PhysicalRegister, 9); + Temp fp10(DoubleType, Temp::PhysicalRegister, 10); + Temp fp11(DoubleType, Temp::PhysicalRegister, 11); + Temp fp12(DoubleType, Temp::PhysicalRegister, 12); + Temp fp13(DoubleType, Temp::PhysicalRegister, 13); + + MoveMapping mapping; + mapping.add(&fp2, &fp1); + mapping.add(&fp2, &fp3); + mapping.add(&fp3, &fp2); + mapping.add(&fp3, &fp4); + + mapping.add(&fp9, &fp8); + mapping.add(&fp8, &fp7); + mapping.add(&fp7, &fp6); + mapping.add(&fp7, &fp5); + + mapping.add(&fp10, &fp11); + mapping.add(&fp11, &fp12); + mapping.add(&fp12, &fp13); + mapping.add(&fp13, &fp10); + + mapping.order(); +// mapping.dump(); + + QCOMPARE(mapping._moves.size(), 10); + + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp2, &fp1, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp3, &fp4, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp7, &fp6, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp7, &fp5, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp8, &fp7, false))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp9, &fp8, false))); + + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp2, &fp3, true)) || + mapping._moves.contains(MoveMapping::Move(&fp3, &fp2, true))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp10, &fp13, true)) || + mapping._moves.contains(MoveMapping::Move(&fp13, &fp10, true))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp12, &fp13, true)) || + mapping._moves.contains(MoveMapping::Move(&fp13, &fp12, true))); + QVERIFY(mapping._moves.contains(MoveMapping::Move(&fp12, &fp11, true)) || + mapping._moves.contains(MoveMapping::Move(&fp11, &fp12, true))); + + QVERIFY(!mapping._moves.at(0).needsSwap); + QVERIFY(!mapping._moves.at(1).needsSwap); + QVERIFY(!mapping._moves.at(2).needsSwap); + QVERIFY(!mapping._moves.at(3).needsSwap); + QVERIFY(!mapping._moves.at(4).needsSwap); + QVERIFY(!mapping._moves.at(5).needsSwap); + QVERIFY(mapping._moves.at(6).needsSwap); + QVERIFY(mapping._moves.at(7).needsSwap); + QVERIFY(mapping._moves.at(8).needsSwap); + QVERIFY(mapping._moves.at(9).needsSwap); +} + QTEST_MAIN(tst_v4misc) #include "tst_v4misc.moc" -- cgit v1.2.3 From be96a21a3706d46f00a1f8609fcd19ee5760c121 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sun, 5 Feb 2017 10:33:43 +0100 Subject: Implement QAccessibleQuickWindow::focusChild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we post a focus change notification, VoiceOver verifies what the application thinks is focused. Without this function, when moving the keyboard focus (e.g. by pressing tab) the VO focus will not follow. [ChangeLog][QtQuick][Accessibility] Fixed focus handling so that keyboard and VoiceOver's virtual focus are in sync (QTBUG-58340). Task-number: QTBUG-58340 Change-Id: I7d4871c13b36c3ab9241614ca8a06452461e3cd1 Reviewed-by: Timur Pocheptsov Reviewed-by: Jan Arve Sæther --- src/quick/accessible/qaccessiblequickview.cpp | 8 ++++++++ src/quick/accessible/qaccessiblequickview_p.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/quick/accessible/qaccessiblequickview.cpp b/src/quick/accessible/qaccessiblequickview.cpp index 222690e4f2..b3d1b6fc0f 100644 --- a/src/quick/accessible/qaccessiblequickview.cpp +++ b/src/quick/accessible/qaccessiblequickview.cpp @@ -81,6 +81,14 @@ QAccessibleInterface *QAccessibleQuickWindow::child(int index) const return 0; } +QAccessibleInterface *QAccessibleQuickWindow::focusChild() const +{ + QObject *focusObject = window()->focusObject(); + if (focusObject) + return QAccessible::queryAccessibleInterface(focusObject); + return nullptr; +} + QAccessible::Role QAccessibleQuickWindow::role() const { return QAccessible::Window; // FIXME diff --git a/src/quick/accessible/qaccessiblequickview_p.h b/src/quick/accessible/qaccessiblequickview_p.h index 007a6fd990..fcd0bec85e 100644 --- a/src/quick/accessible/qaccessiblequickview_p.h +++ b/src/quick/accessible/qaccessiblequickview_p.h @@ -65,6 +65,7 @@ public: QAccessibleInterface *parent() const; QAccessibleInterface *child(int index) const; + QAccessibleInterface *focusChild() const override; QAccessible::Role role() const; QAccessible::State state() const; -- cgit v1.2.3 From ce15c3af57858b9b8b0621398121691b20c6f638 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 25 Jan 2017 15:49:34 +0100 Subject: QQuickMouseArea: only start pressAndHoldTimer for accepted events Most likely because of changes done to mouse event handling in 5.8, a QQuickMouseArea can now get a mousePressEvent call without a subsequent mouseReleaseEvent call if the press event was rejected. A regression seen from this is that QQuickMouseArea starts a pressAndHold timer upon receiving mouse press, which will never be 'cancelled' since the following mouse release is sent elsewhere. As a result, TextArea in QtQuickControls will e.g receive a pressAndHold signal each time the user touches the control, which again will cause weird behavior like selecting words and messing with focus on iOS. This patch will instead change this so that we only start the pressAndHold timer if QQuickMouseArea accepts the mouse press event. Change-Id: I43e2f02e2b4f75e7b6761e326e3fec54ea97683a Reviewed-by: Shawn Rutledge Reviewed-by: Frederik Gladhorn --- src/quick/items/qquickmousearea.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index 2fbca26408..4dcefc700d 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -685,9 +685,10 @@ void QQuickMouseArea::mousePressEvent(QMouseEvent *event) #endif setHovered(true); d->startScene = event->windowPos(); - d->pressAndHoldTimer.start(QGuiApplication::styleHints()->mousePressAndHoldInterval(), this); setKeepMouseGrab(d->stealMouse); event->setAccepted(setPressed(event->button(), true, event->source())); + if (event->isAccepted()) + d->pressAndHoldTimer.start(QGuiApplication::styleHints()->mousePressAndHoldInterval(), this); } } -- cgit v1.2.3 From 6cfeabe92db25a10812a657f7f4fdadfb505204d Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 26 Jan 2017 16:44:55 +0100 Subject: Flickable: handle child mouse ungrab when hidden or disabled If Flickable got hidden while a child had mouse grab, it ignored the mouse ungrab event of the child mouse grabber, and got therefore stuck in pressed state. Consequently, item view transitions were not executed since the item view though it was being pressed. Task-number: QTBUG-58453 Change-Id: I76f9f3190c3a95a2fafdce036d69ea1dc8127434 Reviewed-by: Qt CI Bot Reviewed-by: Frederik Gladhorn --- src/quick/items/qquickflickable.cpp | 5 ++++- tests/auto/quick/qquickflickable/data/hide.qml | 13 +++++++++++++ .../quick/qquickflickable/tst_qquickflickable.cpp | 20 ++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/auto/quick/qquickflickable/data/hide.qml diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 1e778306e0..537367b3a3 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -2307,8 +2307,11 @@ bool QQuickFlickable::filterMouseEvent(QQuickItem *receiver, QMouseEvent *event) bool QQuickFlickable::childMouseEventFilter(QQuickItem *i, QEvent *e) { Q_D(QQuickFlickable); - if (!isVisible() || !isEnabled() || !isInteractive()) + if (!isVisible() || !isEnabled() || !isInteractive()) { + d->cancelInteraction(); return QQuickItem::childMouseEventFilter(i, e); + } + switch (e->type()) { case QEvent::MouseButtonPress: case QEvent::MouseMove: diff --git a/tests/auto/quick/qquickflickable/data/hide.qml b/tests/auto/quick/qquickflickable/data/hide.qml new file mode 100644 index 0000000000..ab520549e2 --- /dev/null +++ b/tests/auto/quick/qquickflickable/data/hide.qml @@ -0,0 +1,13 @@ +import QtQuick 2.0 + +Flickable { + id: flickable + width: 200; height: 200 + contentWidth: 400; contentHeight: 400 + + MouseArea { + objectName: "mouseArea" + width: 400; height: 400 + onDoubleClicked: flickable.visible = false + } +} diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp index 942e99018f..2555322e3e 100644 --- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp +++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp @@ -80,6 +80,7 @@ private slots: void disabled(); void flickVelocity(); void margins(); + void cancelOnHide(); void cancelOnMouseGrab(); void clickAndDragWhenTransformed(); void flickTwiceUsingTouches(); @@ -1422,6 +1423,25 @@ void tst_qquickflickable::margins() delete root; } +void tst_qquickflickable::cancelOnHide() +{ + QScopedPointer window(new QQuickView); + window->setSource(testFileUrl("hide.qml")); + QTRY_COMPARE(window->status(), QQuickView::Ready); + QQuickViewTestUtil::centerOnScreen(window.data()); + QQuickViewTestUtil::moveMouseAway(window.data()); + window->show(); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + QVERIFY(window->rootObject()); + + QQuickFlickable *flickable = qobject_cast(window->rootObject()); + QVERIFY(flickable); + + QTest::mouseDClick(window.data(), Qt::LeftButton); + QVERIFY(!flickable->isVisible()); + QVERIFY(!QQuickFlickablePrivate::get(flickable)->pressed); +} + void tst_qquickflickable::cancelOnMouseGrab() { QScopedPointer window(new QQuickView); -- cgit v1.2.3 From ade0ed7fa9ad06a1dc1312e7abad8baf20f7b756 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Mon, 6 Feb 2017 09:37:13 +0100 Subject: Improve QQuickAsyncImageProvider example Also link it from more places Change-Id: Ib5fbf89f4a039f885e918d57ee477e9788049d8d Reviewed-by: Robin Burchell --- .../imageresponseprovider/imageresponseprovider.cpp | 16 ++++++++-------- src/quick/util/qquickimageprovider.cpp | 4 ++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/examples/quick/imageresponseprovider/imageresponseprovider.cpp b/examples/quick/imageresponseprovider/imageresponseprovider.cpp index a888c823a6..d4633b779a 100644 --- a/examples/quick/imageresponseprovider/imageresponseprovider.cpp +++ b/examples/quick/imageresponseprovider/imageresponseprovider.cpp @@ -51,37 +51,37 @@ class AsyncImageResponse : public QQuickImageResponse, public QRunnable { public: AsyncImageResponse(const QString &id, const QSize &requestedSize) - : m_id(id), m_requestedSize(requestedSize), m_texture(0) + : m_id(id), m_requestedSize(requestedSize) { setAutoDelete(false); } QQuickTextureFactory *textureFactory() const { - return m_texture; + return QQuickTextureFactory::textureFactoryForImage(m_image); } void run() { - QImage image(50, 50, QImage::Format_RGB32); + m_image = QImage(50, 50, QImage::Format_RGB32); if (m_id == "slow") { qDebug() << "Slow, red, sleeping for 5 seconds"; QThread::sleep(5); - image.fill(Qt::red); + m_image.fill(Qt::red); } else { qDebug() << "Fast, blue, sleeping for 1 second"; QThread::sleep(1); - image.fill(Qt::blue); + m_image.fill(Qt::blue); } if (m_requestedSize.isValid()) - image = image.scaled(m_requestedSize); - m_texture = QQuickTextureFactory::textureFactoryForImage(image); + m_image = m_image.scaled(m_requestedSize); + emit finished(); } QString m_id; QSize m_requestedSize; - QQuickTextureFactory *m_texture; + QImage m_image; }; class AsyncImageProvider : public QQuickAsyncImageProvider diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp index 0c245d2b23..d2a8a5097c 100644 --- a/src/quick/util/qquickimageprovider.cpp +++ b/src/quick/util/qquickimageprovider.cpp @@ -158,6 +158,8 @@ QQuickTextureFactory *QQuickTextureFactory::textureFactoryForImage(const QImage If you are using QRunnable as base for your QQuickImageResponse ensure automatic deletion is disabled. + See the \l {imageresponseprovider}{Image Response Provider Example} for a complete implementation. + \sa QQuickImageProvider */ @@ -472,6 +474,8 @@ QQuickTextureFactory *QQuickImageProvider::requestTexture(const QString &id, QSi \inmodule QtQuick \brief The QQuickAsyncImageProvider class provides an interface for for asynchronous control of QML image requests. + See the \l {imageresponseprovider}{Image Response Provider Example} for a complete implementation. + \sa QQuickImageProvider */ QQuickAsyncImageProvider::QQuickAsyncImageProvider() -- cgit v1.2.3 From fedcd26ce80451e113b963d09cad97a3d21e4ab8 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 8 Feb 2017 16:53:58 +0100 Subject: Use QQmlType for looking up enums, even on singletons QQmlType has more information than the bare QMetaType. The optimizer already uses it for looking up enums, so some code would behave differently, depending on whether the optimizer was enabled or not. In some cases we cannot use QQmlType for lookup of enums because QQmlType might have been created with only a callback. The object only shows up later in that case. Then the only thing we can do is query the metatype. We can test this by adding an eval() because eval() disables optimization for the surrounding code. Task-number: QTBUG-58394 Change-Id: I8c90591b19fe1ed3e5339d877f9e6ec7c6f9aa73 Reviewed-by: Simon Hausmann --- src/qml/qml/qqmltypewrapper.cpp | 15 ++++++---- .../qml/qqmlmetatype/data/testExternalEnums.qml | 12 ++++++++ tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp | 33 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 tests/auto/qml/qqmlmetatype/data/testExternalEnums.qml diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp index fd1e9cc2be..be4ab68831 100644 --- a/src/qml/qml/qqmltypewrapper.cpp +++ b/src/qml/qml/qqmltypewrapper.cpp @@ -129,15 +129,20 @@ ReturnedValue QmlTypeWrapper::create(QV4::ExecutionEngine *engine, QObject *o, Q return w.asReturnedValue(); } -static int enumForSingleton(String *name, QObject *qobjectSingleton) +static int enumForSingleton(QV4::ExecutionEngine *v4, String *name, QObject *qobjectSingleton, + QQmlType *type) { + bool ok; + int value = type->enumValue(QQmlEnginePrivate::get(v4->qmlEngine()), name, &ok); + if (ok) + return value; + // ### Optimize QByteArray enumName = name->toQString().toUtf8(); const QMetaObject *metaObject = qobjectSingleton->metaObject(); for (int ii = metaObject->enumeratorCount() - 1; ii >= 0; --ii) { QMetaEnum e = metaObject->enumerator(ii); - bool ok; - int value = e.keyToValue(enumName.constData(), &ok); + value = e.keyToValue(enumName.constData(), &ok); if (ok) return value; } @@ -183,7 +188,7 @@ ReturnedValue QmlTypeWrapper::get(const Managed *m, String *name, bool *hasPrope // check for enum value const bool includeEnums = w->d()->mode == Heap::QmlTypeWrapper::IncludeEnums; if (includeEnums && name->startsWithUpper()) { - const int value = enumForSingleton(name, qobjectSingleton); + const int value = enumForSingleton(v4, name, qobjectSingleton, type); if (value != -1) return QV4::Primitive::fromInt32(value).asReturnedValue(); } @@ -196,7 +201,7 @@ ReturnedValue QmlTypeWrapper::get(const Managed *m, String *name, bool *hasPrope // Warn when attempting to access a lowercased enum value, singleton case if (!ok && includeEnums && !name->startsWithUpper()) { - const int value = enumForSingleton(name, qobjectSingleton); + const int value = enumForSingleton(v4, name, qobjectSingleton, type); if (value != -1) return throwLowercaseEnumError(v4, name, type); } diff --git a/tests/auto/qml/qqmlmetatype/data/testExternalEnums.qml b/tests/auto/qml/qqmlmetatype/data/testExternalEnums.qml new file mode 100644 index 0000000000..8eb5616ab2 --- /dev/null +++ b/tests/auto/qml/qqmlmetatype/data/testExternalEnums.qml @@ -0,0 +1,12 @@ +import QtQml 2.2 +import x.y.z 1.0 + +QtObject { + function x() { + eval("1"); + return ExternalEnums.DocumentsLocation; + } + + property var a: ExternalEnums.DocumentsLocation + property var b: x() +} diff --git a/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp b/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp index 19cda21685..9fbd719d7b 100644 --- a/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp +++ b/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp @@ -26,6 +26,7 @@ ** ****************************************************************************/ +#include #include #include #include @@ -53,6 +54,7 @@ private slots: void invalidQmlTypeName(); void registrationType(); void compositeType(); + void externalEnums(); void isList(); @@ -70,6 +72,20 @@ public: }; QML_DECLARE_TYPE(TestType); +class ExternalEnums : public QObject +{ + Q_OBJECT + Q_ENUMS(QStandardPaths::StandardLocation QStandardPaths::LocateOptions) +public: + ExternalEnums(QObject *parent = nullptr) : QObject(parent) {} + + static QObject *create(QQmlEngine *engine, QJSEngine *scriptEngine) { + Q_UNUSED(scriptEngine); + return new ExternalEnums(engine); + } +}; +QML_DECLARE_TYPE(ExternalEnums); + QObject *testTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine) { Q_UNUSED(engine); @@ -271,6 +287,23 @@ void tst_qqmlmetatype::compositeType() QCOMPARE(type->sourceUrl(), testFileUrl("ImplicitType.qml")); } +void tst_qqmlmetatype::externalEnums() +{ + QQmlEngine engine; + qmlRegisterSingletonType("x.y.z", 1, 0, "ExternalEnums", ExternalEnums::create); + + QQmlComponent c(&engine, testFileUrl("testExternalEnums.qml")); + QObject *obj = c.create(); + QVERIFY(obj); + QVariant a = obj->property("a"); + QCOMPARE(a.type(), QVariant::Int); + QCOMPARE(a.toInt(), int(QStandardPaths::DocumentsLocation)); + QVariant b = obj->property("b"); + QCOMPARE(b.type(), QVariant::Int); + QCOMPARE(b.toInt(), int(QStandardPaths::DocumentsLocation)); + +} + QTEST_MAIN(tst_qqmlmetatype) #include "tst_qqmlmetatype.moc" -- cgit v1.2.3 From 23ad50f5683c976be0939a94b1c69aa1f098c25f Mon Sep 17 00:00:00 2001 From: Milla Pohjanheimo Date: Thu, 2 Feb 2017 12:14:03 +0200 Subject: Binary compatibility files for qtdeclarative (5.8.0) Added binary compatibility files for qtdeclarative Change-Id: I6a784e7553c647fa38ffe0a87e6e6a0f45e17ef0 Reviewed-by: Sergio Ahumada --- .../auto/bic/data/QtQml.5.8.0.linux-gcc-amd64.txt | 5548 +++++ .../bic/data/QtQuick.5.8.0.linux-gcc-amd64.txt | 10632 +++++++++ .../bic/data/QtQuickTest.5.8.0.linux-gcc-amd64.txt | 18852 ++++++++++++++++ .../data/QtQuickWidgets.5.8.0.linux-gcc-amd64.txt | 21485 +++++++++++++++++++ 4 files changed, 56517 insertions(+) create mode 100644 tests/auto/bic/data/QtQml.5.8.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtQuick.5.8.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtQuickTest.5.8.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtQuickWidgets.5.8.0.linux-gcc-amd64.txt diff --git a/tests/auto/bic/data/QtQml.5.8.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtQml.5.8.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..c291cc3009 --- /dev/null +++ b/tests/auto/bic/data/QtQml.5.8.0.linux-gcc-amd64.txt @@ -0,0 +1,5548 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fabdd2bf840) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fabdaf95000) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fabdaf95240) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fabdaf95480) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fabdaf956c0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fabdaf95840) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fabdaf95c00) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fabdb0503c0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fabdb050480) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fabdb0507e0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fabdb0508a0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fabdb050960) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fabdb050a20) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fabdb050cc0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fabdb050ea0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fabdb0ce360) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fabdb0ce3c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fabdb139060) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fabdb1390c0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fabdaffff70) 0 empty + std::input_iterator_tag (0x0x7fabdb139120) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fabdb13b000) 0 empty + std::forward_iterator_tag (0x0x7fabdb13b068) 0 empty + std::input_iterator_tag (0x0x7fabdb139180) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fabdb13b0d0) 0 empty + std::bidirectional_iterator_tag (0x0x7fabdb13b138) 0 empty + std::forward_iterator_tag (0x0x7fabdb13b1a0) 0 empty + std::input_iterator_tag (0x0x7fabdb1391e0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fabdb139e40) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fabdb139ea0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fabdb139f00) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fabdb139f60) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fabdadf6000) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7fabdadf6ae0) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fabdadf6d20) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fabdadf6de0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fabdadf6e40) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fabdadf6f00) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fabdadf6f60) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fabdaea9420) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fabdaea9480) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fabdaea94e0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fabdb13b6e8) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7fabdaea9540) 0 nearly-empty + primary-for std::bad_exception (0x0x7fabdb13b6e8) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fabdaea95a0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fabdaea9600) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fabdb13b8f0) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7fabdaea9a20) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fabdb13b8f0) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fabdb13b958) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7fabdb13b9c0) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fabdb13b958) + std::exception (0x0x7fabdaea9a80) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fabdb13b9c0) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fabdaea9ae0) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7fabdac20720) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fabdaa27420) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fabdaa27480) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fabdaacd360) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7fabdaacd3c0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fabdaacd480) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fabdaacd4e0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fabdaacd540) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fabdaacd5a0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fabdaacd6c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fabdaacd720) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fabdaacdb40) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fabdaacdba0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fabda6063c0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fabda606420) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fabda6bc3c0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fabda4741e0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fabda656680) 0 + std::iterator (0x0x7fabda4742a0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fabda6566e8) 0 + std::_Bit_iterator_base (0x0x7fabda656750) 0 + std::iterator (0x0x7fabda474300) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fabda6567b8) 0 + std::_Bit_iterator_base (0x0x7fabda656820) 0 + std::iterator (0x0x7fabda474360) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fabda28f180) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fabda28ff00) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fabda28fea0) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fabd9feaea0) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fabd8bfd960) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fabd8bfd9c0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fabd8ce2c00) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fabd8ce2c60) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fabd8ce2cc0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fabd8d39780) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fabd8d39a80) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fabd8980060) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fabd8d3cb60) 0 + std::__atomic_flag_base (0x0x7fabd89800c0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fabd87ff2d8) 0 + QAtomicInteger (0x0x7fabd87ff340) 0 + QBasicAtomicInteger (0x0x7fabd88247e0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fabd85020c0) 0 empty + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fabd8577120) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fabd873e750) 0 + QGenericArgument (0x0x7fabd8577180) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fabd8577300) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fabd85773c0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fabd81f1420) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fabd81f1480) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fabd81f1900) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fabd81f19c0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fabd81f1de0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fabd81f1e40) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fabd81f1ea0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fabd81f1f00) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fabd81f1f60) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fabd7f3e360) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fabd81f7d00) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7fabd7f3e420) 0 nearly-empty + primary-for std::logic_error (0x0x7fabd81f7d00) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fabd81f7d68) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7fabd81f7dd0) 0 + primary-for std::domain_error (0x0x7fabd81f7d68) + std::exception (0x0x7fabd7f3e480) 0 nearly-empty + primary-for std::logic_error (0x0x7fabd81f7dd0) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fabd81f7e38) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7fabd81f7ea0) 0 + primary-for std::invalid_argument (0x0x7fabd81f7e38) + std::exception (0x0x7fabd7f3e4e0) 0 nearly-empty + primary-for std::logic_error (0x0x7fabd81f7ea0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fabd81f7f08) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7fabd81f7f70) 0 + primary-for std::length_error (0x0x7fabd81f7f08) + std::exception (0x0x7fabd7f3e540) 0 nearly-empty + primary-for std::logic_error (0x0x7fabd81f7f70) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fabd81f7a28) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7fabd81f7af8) 0 + primary-for std::out_of_range (0x0x7fabd81f7a28) + std::exception (0x0x7fabd7f3e5a0) 0 nearly-empty + primary-for std::logic_error (0x0x7fabd81f7af8) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fabd7fa2000) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7fabd7f3e600) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd7fa2000) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fabd7fa2068) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7fabd7fa20d0) 0 + primary-for std::range_error (0x0x7fabd7fa2068) + std::exception (0x0x7fabd7f3e660) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd7fa20d0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fabd7fa2138) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7fabd7fa21a0) 0 + primary-for std::overflow_error (0x0x7fabd7fa2138) + std::exception (0x0x7fabd7f3e6c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd7fa21a0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fabd7fa2208) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7fabd7fa2270) 0 + primary-for std::underflow_error (0x0x7fabd7fa2208) + std::exception (0x0x7fabd7f3e720) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd7fa2270) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fabd7f3e8a0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fabd7f3eae0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fabd7f3ec60) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fabd7fa2750) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7fabd7fa27b8) 0 + primary-for std::system_error (0x0x7fabd7fa2750) + std::exception (0x0x7fabd7f3eea0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd7fa27b8) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fabd80183a8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7fabd8018410) 0 + primary-for std::ios_base::failure (0x0x7fabd80183a8) + std::runtime_error (0x0x7fabd8018478) 0 + primary-for std::system_error (0x0x7fabd8018410) + std::exception (0x0x7fabd80151e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fabd8018478) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fabd8015240) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fabd80152a0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fabd8015300) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fabd8015180) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fabd8015a80) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fabd7db4180) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7fabd7c5b068 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7fabd7c5b3a8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7fabd7d0c138 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7fabd7d0c208 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fabd7b6aa20) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fabd7b6aa80) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fabd7a0fea0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fabd7aea240) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fabd7aea600) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fabd7aea6c0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fabd7aea660) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fabd7876660) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fabd76024e0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fabd7602ba0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fabd7602c00) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fabd7602c60) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fabd7462060) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fabd74620c0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fabd7601888) 0 empty + QListData::NotIndirectLayout (0x0x7fabd7462120) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fabd745f5b0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fabd7462180) 0 empty + QListData::NotIndirectLayout (0x0x7fabd74621e0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fabd76018f0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fabd7462240) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fabd74622a0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fabd7462000) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fabd7462e40) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fabd721b120) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fabd721b0c0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fabd7213270) 0 + QList (0x0x7fabd72132d8) 0 + QListSpecialMethods (0x0x7fabd721b300) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fabd721b780) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fabd721bba0) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fabd7081240) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fabd70813c0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fabd7081480) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fabd6f72208) 0 + std::__uses_alloc_base (0x0x7fabd7081420) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fabd6d964e0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fabd6d96720) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fabd6d967e0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fabd6d96900) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fabd6d96a80) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fabd6d96e40) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fabd6d96f60) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fabd6eea900) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fabd6eeae40) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fabd6bd5240) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fabd6982300) 0 + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fabd6982480) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fabd6982660) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fabd6982600) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fabd6982c00) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fabd6982c60) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fabd6982d20) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fabd6a38208) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7fabd6982cc0) 0 + primary-for QAbstractAnimation (0x0x7fabd6a38208) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fabd6982de0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fabd6a38270) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7fabd6982d80) 0 + primary-for QAnimationDriver (0x0x7fabd6a38270) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fabd6982ea0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fabd6a382d8) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7fabd6982e40) 0 + primary-for QEventLoop (0x0x7fabd6a382d8) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fabd6ab4060) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fabd6ab4120) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fabd6ab4180) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fabd6a38410) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7fabd6ab40c0) 0 + primary-for QAbstractEventDispatcher (0x0x7fabd6a38410) + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fabd6ab41e0) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fabd6ab4420) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fabd6ab47e0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fabd6ab4780) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fabd6ab4840) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fabd68c7420) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fabd68c74e0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fabd68c7480) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fabd68c7540) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fabd68c73c0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fabd65a99c0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fabd65a9d20) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fabd65a9cc0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fabd65a9de0) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fabd65a9d80) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fabd63c9840) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fabd63c9b40) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fabd64aaba0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fabd64aed68) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7fabd64aab40) 0 + primary-for QAbstractItemModel (0x0x7fabd64aed68) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fabd64aaf00) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fabd64aef70) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7fabd6169000) 0 + primary-for QAbstractTableModel (0x0x7fabd64aef70) + QObject (0x0x7fabd64aaea0) 0 + primary-for QAbstractItemModel (0x0x7fabd6169000) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fabd617b000) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fabd6169068) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7fabd61690d0) 0 + primary-for QAbstractListModel (0x0x7fabd6169068) + QObject (0x0x7fabd64aaf60) 0 + primary-for QAbstractItemModel (0x0x7fabd61690d0) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fabd617b2a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fabd617b360) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fabd6169208) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7fabd6169270) 0 + primary-for QAbstractProxyModel (0x0x7fabd6169208) + QObject (0x0x7fabd617b300) 0 + primary-for QAbstractItemModel (0x0x7fabd6169270) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fabd617b420) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fabd61692d8) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7fabd617b3c0) 0 + primary-for QAbstractState (0x0x7fabd61692d8) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fabd617b4e0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fabd6169340) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7fabd617b480) 0 + primary-for QAbstractTransition (0x0x7fabd6169340) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fabd617b5a0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fabd61693a8) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7fabd6169410) 0 + primary-for QAnimationGroup (0x0x7fabd61693a8) + QObject (0x0x7fabd617b540) 0 + primary-for QAbstractAnimation (0x0x7fabd6169410) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fabd617ba80) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fabd617bd80) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fabd62c4000) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fabd62c43c0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fabd626c410) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7fabd62c4360) 0 + primary-for QIODevice (0x0x7fabd626c410) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fabd62c45a0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fabd626c548) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7fabd626c5b0) 0 + primary-for QBuffer (0x0x7fabd626c548) + QObject (0x0x7fabd62c4540) 0 + primary-for QIODevice (0x0x7fabd626c5b0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fabd62c4660) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fabd62c4600) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fabd62c47e0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fabd62c49c0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fabd62c4e40) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fabd62c4f00) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fabd60f9000) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fabd60f9480) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fabd60e96e8) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7fabd60f94e0) 0 + primary-for QTimerEvent (0x0x7fabd60e96e8) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fabd60e9750) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7fabd60f9540) 0 + primary-for QChildEvent (0x0x7fabd60e9750) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fabd60e9888) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7fabd60f9720) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fabd60e9888) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fabd60e98f0) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7fabd60f9780) 0 + primary-for QDeferredDeleteEvent (0x0x7fabd60e98f0) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fabd60f9840) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fabd60e9958) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7fabd60f97e0) 0 + primary-for QCoreApplication (0x0x7fabd60e9958) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fabd60f98a0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fabd60f9900) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fabd60f9ba0) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fabd60f9c00) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fabd60f9cc0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fabd60f9ea0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fabd5e451e0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fabd5e456c0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fabd5e45720) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fabd5e45660) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fabd5b09540) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fabd5b6e900) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fabd5ccb780) 0 empty + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fabd5ccb7e0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fabd5a09660) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fabd5a098a0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fabd5a09ae0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fabd5a09c60) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fabd57ce120) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fabd57ce0c0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fabd587f360) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fabd587f420) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fabd587f4e0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fabd58b4068) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7fabd58b40d0) 0 + primary-for QFileDevice (0x0x7fabd58b4068) + QObject (0x0x7fabd587f480) 0 + primary-for QIODevice (0x0x7fabd58b40d0) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fabd587f6c0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fabd58b4208) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7fabd58b4270) 0 + primary-for QFile (0x0x7fabd58b4208) + QIODevice (0x0x7fabd58b42d8) 0 + primary-for QFileDevice (0x0x7fabd58b4270) + QObject (0x0x7fabd587f660) 0 + primary-for QIODevice (0x0x7fabd58b42d8) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fabd587f840) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fabd587fcc0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fabd560a2a0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fabd560a480) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fabd52f2720) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fabd53020d0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7fabd5302138) 0 + primary-for QEventTransition (0x0x7fabd53020d0) + QObject (0x0x7fabd52f26c0) 0 + primary-for QAbstractTransition (0x0x7fabd5302138) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fabd53021a0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7fabd52f2780) 0 nearly-empty + primary-for QException (0x0x7fabd53021a0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fabd5302208) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7fabd5302270) 0 nearly-empty + primary-for QUnhandledException (0x0x7fabd5302208) + std::exception (0x0x7fabd52f27e0) 0 nearly-empty + primary-for QException (0x0x7fabd5302270) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fabd52f2840) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fabd52f2900) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fabd52f2960) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fabd52f2a80) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fabd53022d8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7fabd52f2a20) 0 + primary-for QFileSelector (0x0x7fabd53022d8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fabd52f2b40) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fabd5302340) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7fabd52f2ae0) 0 + primary-for QFileSystemWatcher (0x0x7fabd5302340) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fabd52f2c00) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fabd53023a8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7fabd5302410) 0 + primary-for QFinalState (0x0x7fabd53023a8) + QObject (0x0x7fabd52f2ba0) 0 + primary-for QAbstractState (0x0x7fabd5302410) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fabd52f2c60) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fabd52f2cc0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fabd5302548) 0 + QBasicMutex (0x0x7fabd52f2f00) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fabd5413300) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fabd54133c0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fabd5413420) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fabd54135a0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fabd5413660) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fabd54139c0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fabd54aa138) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7fabd5413960) 0 + primary-for QFutureWatcherBase (0x0x7fabd54aa138) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fabd5413b40) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fabd54aa548) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7fabd54aa5b0) 0 + primary-for QHistoryState (0x0x7fabd54aa548) + QObject (0x0x7fabd5413ae0) 0 + primary-for QAbstractState (0x0x7fabd54aa5b0) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fabd5413c00) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fabd54aa618) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7fabd54aa680) 0 + primary-for QIdentityProxyModel (0x0x7fabd54aa618) + QAbstractItemModel (0x0x7fabd54aa6e8) 0 + primary-for QAbstractProxyModel (0x0x7fabd54aa680) + QObject (0x0x7fabd5413ba0) 0 + primary-for QAbstractItemModel (0x0x7fabd54aa6e8) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fabd5413c60) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fabd51c4060) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fabd54aaa28) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7fabd51c4000) 0 + primary-for QItemSelectionModel (0x0x7fabd54aaa28) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fabd54aac30) 0 + QList (0x0x7fabd54aac98) 0 + QListSpecialMethods (0x0x7fabd51c4300) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fabd51c4840) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fabd51c4a80) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fabd51c4b40) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fabd51c4ba0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fabd51c4c60) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fabd51c4cc0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fabd51c4c00) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fabd51c4d80) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fabd51c4de0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fabd51c4ea0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fabd51c4f00) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fabd51c4e40) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fabd4f58120) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fabd4f5f0d0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7fabd4f580c0) 0 + primary-for QLibrary (0x0x7fabd4f5f0d0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fabd4f58300) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fabd4f582a0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fabd50b40c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fabd50b4120) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fabd50b4420) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fabd50b4720) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fabd50b4a20) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fabd50b4d20) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fabd4df64e0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fabd4df6660) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fabd4df6600) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fabd4df67e0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fabd4df6ae0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fabd4df6e40) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fabd4df6ea0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fabd4b751e0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fabd4b75540) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fabd4b755a0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fabd4b75900) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fabd5075dd0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7fabd4b758a0) 0 + primary-for QMimeData (0x0x7fabd5075dd0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fabd4b75960) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fabd4b75cc0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fabd4b75d80) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fabd5075f70) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7fabd4b75d20) 0 + primary-for QObjectCleanupHandler (0x0x7fabd5075f70) + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fabd4b75e40) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fabd4be4000) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7fabd4be4068) 0 + primary-for QParallelAnimationGroup (0x0x7fabd4be4000) + QAbstractAnimation (0x0x7fabd4be40d0) 0 + primary-for QAnimationGroup (0x0x7fabd4be4068) + QObject (0x0x7fabd4b75de0) 0 + primary-for QAbstractAnimation (0x0x7fabd4be40d0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fabd4b75f00) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fabd4be4138) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7fabd4be41a0) 0 + primary-for QPauseAnimation (0x0x7fabd4be4138) + QObject (0x0x7fabd4b75ea0) 0 + primary-for QAbstractAnimation (0x0x7fabd4be41a0) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fabd4c05120) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fabd4c05480) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fabd4be4340) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7fabd4c05420) 0 + primary-for QPluginLoader (0x0x7fabd4be4340) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fabd4c054e0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fabd4be43a8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7fabd4c05540) 0 nearly-empty + primary-for std::bad_cast (0x0x7fabd4be43a8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fabd4be4410) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7fabd4c055a0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fabd4be4410) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fabd4948680) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7fabd49a9660) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fabd4948680) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fabd49a9720) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fabd49a9780) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fabd49a98a0) 0 + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fabd49a9d80) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fabd4a69180) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fabd4948f70) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7fabd4a6e000) 0 + primary-for QProcess (0x0x7fabd4948f70) + QObject (0x0x7fabd4a69120) 0 + primary-for QIODevice (0x0x7fabd4a6e000) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fabd4a69240) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fabd4a6e068) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7fabd4a6e0d0) 0 + primary-for QVariantAnimation (0x0x7fabd4a6e068) + QObject (0x0x7fabd4a691e0) 0 + primary-for QAbstractAnimation (0x0x7fabd4a6e0d0) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fabd4a69300) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fabd4a6e1a0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7fabd4a6e208) 0 + primary-for QPropertyAnimation (0x0x7fabd4a6e1a0) + QAbstractAnimation (0x0x7fabd4a6e270) 0 + primary-for QVariantAnimation (0x0x7fabd4a6e208) + QObject (0x0x7fabd4a692a0) 0 + primary-for QAbstractAnimation (0x0x7fabd4a6e270) + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fabd4a693c0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fabd4a69660) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fabd4a696c0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fabd4a69720) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fabd4a69ae0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fabd4a69ea0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fabd48001e0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fabd48004e0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fabd4800a80) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fabd4800de0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fabd45a7180) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fabd45a7300) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fabd458d270) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7fabd458d2d8) 0 + primary-for QSaveFile (0x0x7fabd458d270) + QIODevice (0x0x7fabd458d340) 0 + primary-for QFileDevice (0x0x7fabd458d2d8) + QObject (0x0x7fabd45a72a0) 0 + primary-for QIODevice (0x0x7fabd458d340) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fabd45a73c0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fabd45a7480) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fabd458d3a8) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7fabd458d410) 0 + primary-for QSequentialAnimationGroup (0x0x7fabd458d3a8) + QAbstractAnimation (0x0x7fabd458d478) 0 + primary-for QAnimationGroup (0x0x7fabd458d410) + QObject (0x0x7fabd45a7420) 0 + primary-for QAbstractAnimation (0x0x7fabd458d478) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fabd45a7540) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fabd458d4e0) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7fabd45a74e0) 0 + primary-for QSettings (0x0x7fabd458d4e0) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fabd45a7600) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fabd458d548) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7fabd45a75a0) 0 + primary-for QSharedMemory (0x0x7fabd458d548) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fabd45a76c0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fabd458d5b0) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7fabd45a7660) 0 + primary-for QSignalMapper (0x0x7fabd458d5b0) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fabd45a7780) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fabd458d618) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7fabd458d680) 0 + primary-for QSignalTransition (0x0x7fabd458d618) + QObject (0x0x7fabd45a7720) 0 + primary-for QAbstractTransition (0x0x7fabd458d680) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fabd45a7840) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fabd458d6e8) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7fabd45a77e0) 0 + primary-for QSocketNotifier (0x0x7fabd458d6e8) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fabd45a7900) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fabd458d750) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7fabd458d7b8) 0 + primary-for QSortFilterProxyModel (0x0x7fabd458d750) + QAbstractItemModel (0x0x7fabd458d820) 0 + primary-for QAbstractProxyModel (0x0x7fabd458d7b8) + QObject (0x0x7fabd45a78a0) 0 + primary-for QAbstractItemModel (0x0x7fabd458d820) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fabd45a7ae0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fabd45a7cc0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fabd458d9c0) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7fabd458da28) 0 + primary-for QState (0x0x7fabd458d9c0) + QObject (0x0x7fabd45a7c60) 0 + primary-for QAbstractState (0x0x7fabd458da28) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fabd45a7de0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fabd458dbc8) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7fabd45a7e40) 0 + primary-for QStateMachine::SignalEvent (0x0x7fabd458dbc8) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fabd458dc30) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7fabd45a7ea0) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fabd458dc30) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fabd458da90) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7fabd458daf8) 0 + primary-for QStateMachine (0x0x7fabd458da90) + QAbstractState (0x0x7fabd458db60) 0 + primary-for QState (0x0x7fabd458daf8) + QObject (0x0x7fabd45a7d80) 0 + primary-for QAbstractState (0x0x7fabd458db60) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fabd45a7f00) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fabd43343c0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fabd4334e40) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fabd435b6e8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7fabd435b750) 0 + primary-for QStringListModel (0x0x7fabd435b6e8) + QAbstractItemModel (0x0x7fabd435b7b8) 0 + primary-for QAbstractListModel (0x0x7fabd435b750) + QObject (0x0x7fabd4334de0) 0 + primary-for QAbstractItemModel (0x0x7fabd435b7b8) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fabd4334ea0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fabd4334f60) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fabd43e20c0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fabd435b820) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7fabd435b888) 0 + primary-for QTemporaryFile (0x0x7fabd435b820) + QFileDevice (0x0x7fabd435b8f0) 0 + primary-for QFile (0x0x7fabd435b888) + QIODevice (0x0x7fabd435b958) 0 + primary-for QFileDevice (0x0x7fabd435b8f0) + QObject (0x0x7fabd43e2060) 0 + primary-for QIODevice (0x0x7fabd435b958) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fabd43e2120) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fabd43e2300) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fabd43e22a0) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fabd43e2480) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fabd43e24e0) 0 + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fabd43e25a0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fabd435bb60) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7fabd43e2540) 0 + primary-for QThread (0x0x7fabd435bb60) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fabd43e2660) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fabd435bbc8) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7fabd43e2600) 0 + primary-for QThreadPool (0x0x7fabd435bbc8) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fabd43e26c0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fabd43e27e0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fabd435bc30) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7fabd43e2780) 0 + primary-for QTimeLine (0x0x7fabd435bc30) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fabd43e28a0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fabd435bc98) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7fabd43e2840) 0 + primary-for QTimer (0x0x7fabd435bc98) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fabd41166c0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fabd4116660) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fabd4116d20) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fabd4110e38) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7fabd4116cc0) 0 + primary-for QTranslator (0x0x7fabd4110e38) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fabd4116e40) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fabd4274480) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fabd42747e0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fabd4274ae0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fabd4274b40) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fabd3fae120) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fabd3fa6750) 0 + QVector (0x0x7fabd3fae540) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fabd3fae5a0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fabd3fae8a0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fabd3faeba0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fabd3faeea0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fabd3faef00) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fabd408f360) 0 + +Class QNetworkRequest + size=8 align=8 + base size=8 base align=8 +QNetworkRequest (0x0x7fabd408f480) 0 + +Class QNetworkCacheMetaData + size=8 align=8 + base size=8 base align=8 +QNetworkCacheMetaData (0x0x7fabd408f900) 0 + +Class QAbstractNetworkCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractNetworkCache::QPrivateSignal (0x0x7fabd408fcc0) 0 empty + +Vtable for QAbstractNetworkCache +QAbstractNetworkCache::_ZTV21QAbstractNetworkCache: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractNetworkCache) +16 (int (*)(...))QAbstractNetworkCache::metaObject +24 (int (*)(...))QAbstractNetworkCache::qt_metacast +32 (int (*)(...))QAbstractNetworkCache::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNetworkCache + size=16 align=8 + base size=16 base align=8 +QAbstractNetworkCache (0x0x7fabd3d12138) 0 + vptr=((& QAbstractNetworkCache::_ZTV21QAbstractNetworkCache) + 16u) + QObject (0x0x7fabd408fc60) 0 + primary-for QAbstractNetworkCache (0x0x7fabd3d12138) + +Class QAbstractSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSocket::QPrivateSignal (0x0x7fabd408fd80) 0 empty + +Vtable for QAbstractSocket +QAbstractSocket::_ZTV15QAbstractSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSocket) +16 (int (*)(...))QAbstractSocket::metaObject +24 (int (*)(...))QAbstractSocket::qt_metacast +32 (int (*)(...))QAbstractSocket::qt_metacall +40 (int (*)(...))QAbstractSocket::~QAbstractSocket +48 (int (*)(...))QAbstractSocket::~QAbstractSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QAbstractSocket + size=16 align=8 + base size=16 base align=8 +QAbstractSocket (0x0x7fabd3d121a0) 0 + vptr=((& QAbstractSocket::_ZTV15QAbstractSocket) + 16u) + QIODevice (0x0x7fabd3d12208) 0 + primary-for QAbstractSocket (0x0x7fabd3d121a0) + QObject (0x0x7fabd408fd20) 0 + primary-for QIODevice (0x0x7fabd3d12208) + +Class QAuthenticator + size=8 align=8 + base size=8 base align=8 +QAuthenticator (0x0x7fabd3d992a0) 0 + +Class QDnsDomainNameRecord + size=8 align=8 + base size=8 base align=8 +QDnsDomainNameRecord (0x0x7fabd3d99300) 0 + +Class QDnsHostAddressRecord + size=8 align=8 + base size=8 base align=8 +QDnsHostAddressRecord (0x0x7fabd3d99660) 0 + +Class QDnsMailExchangeRecord + size=8 align=8 + base size=8 base align=8 +QDnsMailExchangeRecord (0x0x7fabd3d999c0) 0 + +Class QDnsServiceRecord + size=8 align=8 + base size=8 base align=8 +QDnsServiceRecord (0x0x7fabd3d99d20) 0 + +Class QDnsTextRecord + size=8 align=8 + base size=8 base align=8 +QDnsTextRecord (0x0x7fabd3e310c0) 0 + +Class QDnsLookup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDnsLookup::QPrivateSignal (0x0x7fabd3e31480) 0 empty + +Vtable for QDnsLookup +QDnsLookup::_ZTV10QDnsLookup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDnsLookup) +16 (int (*)(...))QDnsLookup::metaObject +24 (int (*)(...))QDnsLookup::qt_metacast +32 (int (*)(...))QDnsLookup::qt_metacall +40 (int (*)(...))QDnsLookup::~QDnsLookup +48 (int (*)(...))QDnsLookup::~QDnsLookup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDnsLookup + size=16 align=8 + base size=16 base align=8 +QDnsLookup (0x0x7fabd3d12a28) 0 + vptr=((& QDnsLookup::_ZTV10QDnsLookup) + 16u) + QObject (0x0x7fabd3e31420) 0 + primary-for QDnsLookup (0x0x7fabd3d12a28) + +Class QIPv6Address + size=16 align=1 + base size=16 base align=1 +QIPv6Address (0x0x7fabd3e314e0) 0 + +Class QHostAddress + size=8 align=8 + base size=8 base align=8 +QHostAddress (0x0x7fabd3e31540) 0 + +Class QHostInfo + size=8 align=8 + base size=8 base align=8 +QHostInfo (0x0x7fabd3e319c0) 0 + +Class QHttpPart + size=8 align=8 + base size=8 base align=8 +QHttpPart (0x0x7fabd3e31ba0) 0 + +Class QHttpMultiPart::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHttpMultiPart::QPrivateSignal (0x0x7fabd3e31f60) 0 empty + +Vtable for QHttpMultiPart +QHttpMultiPart::_ZTV14QHttpMultiPart: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QHttpMultiPart) +16 (int (*)(...))QHttpMultiPart::metaObject +24 (int (*)(...))QHttpMultiPart::qt_metacast +32 (int (*)(...))QHttpMultiPart::qt_metacall +40 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +48 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHttpMultiPart + size=16 align=8 + base size=16 base align=8 +QHttpMultiPart (0x0x7fabd3d12dd0) 0 + vptr=((& QHttpMultiPart::_ZTV14QHttpMultiPart) + 16u) + QObject (0x0x7fabd3e31f00) 0 + primary-for QHttpMultiPart (0x0x7fabd3d12dd0) + +Class QLocalServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalServer::QPrivateSignal (0x0x7fabd3b02060) 0 empty + +Vtable for QLocalServer +QLocalServer::_ZTV12QLocalServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalServer) +16 (int (*)(...))QLocalServer::metaObject +24 (int (*)(...))QLocalServer::qt_metacast +32 (int (*)(...))QLocalServer::qt_metacall +40 (int (*)(...))QLocalServer::~QLocalServer +48 (int (*)(...))QLocalServer::~QLocalServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalServer::hasPendingConnections +120 (int (*)(...))QLocalServer::nextPendingConnection +128 (int (*)(...))QLocalServer::incomingConnection + +Class QLocalServer + size=16 align=8 + base size=16 base align=8 +QLocalServer (0x0x7fabd3d12e38) 0 + vptr=((& QLocalServer::_ZTV12QLocalServer) + 16u) + QObject (0x0x7fabd3b02000) 0 + primary-for QLocalServer (0x0x7fabd3d12e38) + +Class QLocalSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalSocket::QPrivateSignal (0x0x7fabd3b02240) 0 empty + +Vtable for QLocalSocket +QLocalSocket::_ZTV12QLocalSocket: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalSocket) +16 (int (*)(...))QLocalSocket::metaObject +24 (int (*)(...))QLocalSocket::qt_metacast +32 (int (*)(...))QLocalSocket::qt_metacall +40 (int (*)(...))QLocalSocket::~QLocalSocket +48 (int (*)(...))QLocalSocket::~QLocalSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalSocket::isSequential +120 (int (*)(...))QLocalSocket::open +128 (int (*)(...))QLocalSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QLocalSocket::bytesAvailable +184 (int (*)(...))QLocalSocket::bytesToWrite +192 (int (*)(...))QLocalSocket::canReadLine +200 (int (*)(...))QLocalSocket::waitForReadyRead +208 (int (*)(...))QLocalSocket::waitForBytesWritten +216 (int (*)(...))QLocalSocket::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QLocalSocket::writeData + +Class QLocalSocket + size=16 align=8 + base size=16 base align=8 +QLocalSocket (0x0x7fabd3b43000) 0 + vptr=((& QLocalSocket::_ZTV12QLocalSocket) + 16u) + QIODevice (0x0x7fabd3b43068) 0 + primary-for QLocalSocket (0x0x7fabd3b43000) + QObject (0x0x7fabd3b021e0) 0 + primary-for QIODevice (0x0x7fabd3b43068) + +Class QTcpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpSocket::QPrivateSignal (0x0x7fabd3b02300) 0 empty + +Vtable for QTcpSocket +QTcpSocket::_ZTV10QTcpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpSocket) +16 (int (*)(...))QTcpSocket::metaObject +24 (int (*)(...))QTcpSocket::qt_metacast +32 (int (*)(...))QTcpSocket::qt_metacall +40 (int (*)(...))QTcpSocket::~QTcpSocket +48 (int (*)(...))QTcpSocket::~QTcpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QTcpSocket + size=16 align=8 + base size=16 base align=8 +QTcpSocket (0x0x7fabd3b430d0) 0 + vptr=((& QTcpSocket::_ZTV10QTcpSocket) + 16u) + QAbstractSocket (0x0x7fabd3b43138) 0 + primary-for QTcpSocket (0x0x7fabd3b430d0) + QIODevice (0x0x7fabd3b431a0) 0 + primary-for QAbstractSocket (0x0x7fabd3b43138) + QObject (0x0x7fabd3b022a0) 0 + primary-for QIODevice (0x0x7fabd3b431a0) + +Class QSslCertificate + size=8 align=8 + base size=8 base align=8 +QSslCertificate (0x0x7fabd3b02480) 0 + +Class QSslError + size=8 align=8 + base size=8 base align=8 +QSslError (0x0x7fabd3b02900) 0 + +Class QSslSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSslSocket::QPrivateSignal (0x0x7fabd3b02f60) 0 empty + +Vtable for QSslSocket +QSslSocket::_ZTV10QSslSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSslSocket) +16 (int (*)(...))QSslSocket::metaObject +24 (int (*)(...))QSslSocket::qt_metacast +32 (int (*)(...))QSslSocket::qt_metacall +40 (int (*)(...))QSslSocket::~QSslSocket +48 (int (*)(...))QSslSocket::~QSslSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QSslSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QSslSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QSslSocket::bytesAvailable +184 (int (*)(...))QSslSocket::bytesToWrite +192 (int (*)(...))QSslSocket::canReadLine +200 (int (*)(...))QSslSocket::waitForReadyRead +208 (int (*)(...))QSslSocket::waitForBytesWritten +216 (int (*)(...))QSslSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QSslSocket::writeData +240 (int (*)(...))QSslSocket::resume +248 (int (*)(...))QSslSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QSslSocket::disconnectFromHost +272 (int (*)(...))QSslSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QSslSocket::setSocketDescriptor +296 (int (*)(...))QSslSocket::setSocketOption +304 (int (*)(...))QSslSocket::socketOption +312 (int (*)(...))QSslSocket::waitForConnected +320 (int (*)(...))QSslSocket::waitForDisconnected + +Class QSslSocket + size=16 align=8 + base size=16 base align=8 +QSslSocket (0x0x7fabd3b43618) 0 + vptr=((& QSslSocket::_ZTV10QSslSocket) + 16u) + QTcpSocket (0x0x7fabd3b43680) 0 + primary-for QSslSocket (0x0x7fabd3b43618) + QAbstractSocket (0x0x7fabd3b436e8) 0 + primary-for QTcpSocket (0x0x7fabd3b43680) + QIODevice (0x0x7fabd3b43750) 0 + primary-for QAbstractSocket (0x0x7fabd3b436e8) + QObject (0x0x7fabd3b02f00) 0 + primary-for QIODevice (0x0x7fabd3b43750) + +Class QSslConfiguration + size=8 align=8 + base size=8 base align=8 +QSslConfiguration (0x0x7fabd3c54000) 0 + +Class QSslPreSharedKeyAuthenticator + size=8 align=8 + base size=8 base align=8 +QSslPreSharedKeyAuthenticator (0x0x7fabd3c54480) 0 + +Class QNetworkAccessManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkAccessManager::QPrivateSignal (0x0x7fabd3c54a80) 0 empty + +Vtable for QNetworkAccessManager +QNetworkAccessManager::_ZTV21QNetworkAccessManager: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QNetworkAccessManager) +16 (int (*)(...))QNetworkAccessManager::metaObject +24 (int (*)(...))QNetworkAccessManager::qt_metacast +32 (int (*)(...))QNetworkAccessManager::qt_metacall +40 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +48 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkAccessManager::createRequest + +Class QNetworkAccessManager + size=16 align=8 + base size=16 base align=8 +QNetworkAccessManager (0x0x7fabd3b43a28) 0 + vptr=((& QNetworkAccessManager::_ZTV21QNetworkAccessManager) + 16u) + QObject (0x0x7fabd3c54a20) 0 + primary-for QNetworkAccessManager (0x0x7fabd3b43a28) + +Class QNetworkConfiguration + size=8 align=8 + base size=8 base align=8 +QNetworkConfiguration (0x0x7fabd3c54ae0) 0 + +Class QNetworkConfigurationManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkConfigurationManager::QPrivateSignal (0x0x7fabd38e0000) 0 empty + +Vtable for QNetworkConfigurationManager +QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QNetworkConfigurationManager) +16 (int (*)(...))QNetworkConfigurationManager::metaObject +24 (int (*)(...))QNetworkConfigurationManager::qt_metacast +32 (int (*)(...))QNetworkConfigurationManager::qt_metacall +40 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +48 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QNetworkConfigurationManager + size=16 align=8 + base size=16 base align=8 +QNetworkConfigurationManager (0x0x7fabd3b43bc8) 0 + vptr=((& QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager) + 16u) + QObject (0x0x7fabd3c54f60) 0 + primary-for QNetworkConfigurationManager (0x0x7fabd3b43bc8) + +Class QNetworkCookie + size=8 align=8 + base size=8 base align=8 +QNetworkCookie (0x0x7fabd38e02a0) 0 + +Class QNetworkCookieJar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkCookieJar::QPrivateSignal (0x0x7fabd38e0780) 0 empty + +Vtable for QNetworkCookieJar +QNetworkCookieJar::_ZTV17QNetworkCookieJar: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkCookieJar) +16 (int (*)(...))QNetworkCookieJar::metaObject +24 (int (*)(...))QNetworkCookieJar::qt_metacast +32 (int (*)(...))QNetworkCookieJar::qt_metacall +40 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +48 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkCookieJar::cookiesForUrl +120 (int (*)(...))QNetworkCookieJar::setCookiesFromUrl +128 (int (*)(...))QNetworkCookieJar::insertCookie +136 (int (*)(...))QNetworkCookieJar::updateCookie +144 (int (*)(...))QNetworkCookieJar::deleteCookie +152 (int (*)(...))QNetworkCookieJar::validateCookie + +Class QNetworkCookieJar + size=16 align=8 + base size=16 base align=8 +QNetworkCookieJar (0x0x7fabd3b43f08) 0 + vptr=((& QNetworkCookieJar::_ZTV17QNetworkCookieJar) + 16u) + QObject (0x0x7fabd38e0720) 0 + primary-for QNetworkCookieJar (0x0x7fabd3b43f08) + +Class QNetworkDatagram + size=8 align=8 + base size=8 base align=8 +QNetworkDatagram (0x0x7fabd38e07e0) 0 + +Class QNetworkDiskCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkDiskCache::QPrivateSignal (0x0x7fabd39eb840) 0 empty + +Vtable for QNetworkDiskCache +QNetworkDiskCache::_ZTV17QNetworkDiskCache: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkDiskCache) +16 (int (*)(...))QNetworkDiskCache::metaObject +24 (int (*)(...))QNetworkDiskCache::qt_metacast +32 (int (*)(...))QNetworkDiskCache::qt_metacall +40 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +48 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkDiskCache::metaData +120 (int (*)(...))QNetworkDiskCache::updateMetaData +128 (int (*)(...))QNetworkDiskCache::data +136 (int (*)(...))QNetworkDiskCache::remove +144 (int (*)(...))QNetworkDiskCache::cacheSize +152 (int (*)(...))QNetworkDiskCache::prepare +160 (int (*)(...))QNetworkDiskCache::insert +168 (int (*)(...))QNetworkDiskCache::clear +176 (int (*)(...))QNetworkDiskCache::expire + +Class QNetworkDiskCache + size=16 align=8 + base size=16 base align=8 +QNetworkDiskCache (0x0x7fabd39ea8f0) 0 + vptr=((& QNetworkDiskCache::_ZTV17QNetworkDiskCache) + 16u) + QAbstractNetworkCache (0x0x7fabd39ea958) 0 + primary-for QNetworkDiskCache (0x0x7fabd39ea8f0) + QObject (0x0x7fabd39eb7e0) 0 + primary-for QAbstractNetworkCache (0x0x7fabd39ea958) + +Class QNetworkAddressEntry + size=8 align=8 + base size=8 base align=8 +QNetworkAddressEntry (0x0x7fabd39eb8a0) 0 + +Class QNetworkInterface + size=8 align=8 + base size=8 base align=8 +QNetworkInterface (0x0x7fabd39ebc60) 0 + +Class QNetworkProxyQuery + size=8 align=8 + base size=8 base align=8 +QNetworkProxyQuery (0x0x7fabd3a513c0) 0 + +Class QNetworkProxy + size=8 align=8 + base size=8 base align=8 +QNetworkProxy (0x0x7fabd3a51720) 0 + +Vtable for QNetworkProxyFactory +QNetworkProxyFactory::_ZTV20QNetworkProxyFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QNetworkProxyFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QNetworkProxyFactory + size=8 align=8 + base size=8 base align=8 +QNetworkProxyFactory (0x0x7fabd3a51ba0) 0 nearly-empty + vptr=((& QNetworkProxyFactory::_ZTV20QNetworkProxyFactory) + 16u) + +Class QNetworkReply::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkReply::QPrivateSignal (0x0x7fabd3a51d80) 0 empty + +Vtable for QNetworkReply +QNetworkReply::_ZTV13QNetworkReply: 36u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QNetworkReply) +16 (int (*)(...))QNetworkReply::metaObject +24 (int (*)(...))QNetworkReply::qt_metacast +32 (int (*)(...))QNetworkReply::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkReply::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QNetworkReply::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QNetworkReply::writeData +240 (int (*)(...))QNetworkReply::setReadBufferSize +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))QNetworkReply::ignoreSslErrors +264 (int (*)(...))QNetworkReply::sslConfigurationImplementation +272 (int (*)(...))QNetworkReply::setSslConfigurationImplementation +280 (int (*)(...))QNetworkReply::ignoreSslErrorsImplementation + +Class QNetworkReply + size=16 align=8 + base size=16 base align=8 +QNetworkReply (0x0x7fabd35be068) 0 + vptr=((& QNetworkReply::_ZTV13QNetworkReply) + 16u) + QIODevice (0x0x7fabd35be0d0) 0 + primary-for QNetworkReply (0x0x7fabd35be068) + QObject (0x0x7fabd3a51d20) 0 + primary-for QIODevice (0x0x7fabd35be0d0) + +Class QNetworkSession::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkSession::QPrivateSignal (0x0x7fabd3a51f60) 0 empty + +Vtable for QNetworkSession +QNetworkSession::_ZTV15QNetworkSession: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QNetworkSession) +16 (int (*)(...))QNetworkSession::metaObject +24 (int (*)(...))QNetworkSession::qt_metacast +32 (int (*)(...))QNetworkSession::qt_metacall +40 (int (*)(...))QNetworkSession::~QNetworkSession +48 (int (*)(...))QNetworkSession::~QNetworkSession +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QNetworkSession::connectNotify +104 (int (*)(...))QNetworkSession::disconnectNotify + +Class QNetworkSession + size=24 align=8 + base size=24 base align=8 +QNetworkSession (0x0x7fabd35be138) 0 + vptr=((& QNetworkSession::_ZTV15QNetworkSession) + 16u) + QObject (0x0x7fabd3a51f00) 0 + primary-for QNetworkSession (0x0x7fabd35be138) + +Class QTcpServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpServer::QPrivateSignal (0x0x7fabd36354e0) 0 empty + +Vtable for QTcpServer +QTcpServer::_ZTV10QTcpServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpServer) +16 (int (*)(...))QTcpServer::metaObject +24 (int (*)(...))QTcpServer::qt_metacast +32 (int (*)(...))QTcpServer::qt_metacall +40 (int (*)(...))QTcpServer::~QTcpServer +48 (int (*)(...))QTcpServer::~QTcpServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTcpServer::hasPendingConnections +120 (int (*)(...))QTcpServer::nextPendingConnection +128 (int (*)(...))QTcpServer::incomingConnection + +Class QTcpServer + size=16 align=8 + base size=16 base align=8 +QTcpServer (0x0x7fabd35be270) 0 + vptr=((& QTcpServer::_ZTV10QTcpServer) + 16u) + QObject (0x0x7fabd3635480) 0 + primary-for QTcpServer (0x0x7fabd35be270) + +Class QSslCertificateExtension + size=8 align=8 + base size=8 base align=8 +QSslCertificateExtension (0x0x7fabd3635540) 0 + +Class QSslCipher + size=8 align=8 + base size=8 base align=8 +QSslCipher (0x0x7fabd36358a0) 0 + +Class QSslDiffieHellmanParameters + size=8 align=8 + base size=8 base align=8 +QSslDiffieHellmanParameters (0x0x7fabd3635c60) 0 + +Class QSslEllipticCurve + size=4 align=4 + base size=4 base align=4 +QSslEllipticCurve (0x0x7fabd372c900) 0 + +Class QSslKey + size=8 align=8 + base size=8 base align=8 +QSslKey (0x0x7fabd372cd20) 0 + +Class QUdpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUdpSocket::QPrivateSignal (0x0x7fabd3779120) 0 empty + +Vtable for QUdpSocket +QUdpSocket::_ZTV10QUdpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUdpSocket) +16 (int (*)(...))QUdpSocket::metaObject +24 (int (*)(...))QUdpSocket::qt_metacast +32 (int (*)(...))QUdpSocket::qt_metacall +40 (int (*)(...))QUdpSocket::~QUdpSocket +48 (int (*)(...))QUdpSocket::~QUdpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QUdpSocket + size=16 align=8 + base size=16 base align=8 +QUdpSocket (0x0x7fabd372fd00) 0 + vptr=((& QUdpSocket::_ZTV10QUdpSocket) + 16u) + QAbstractSocket (0x0x7fabd372fd68) 0 + primary-for QUdpSocket (0x0x7fabd372fd00) + QIODevice (0x0x7fabd372fdd0) 0 + primary-for QAbstractSocket (0x0x7fabd372fd68) + QObject (0x0x7fabd37790c0) 0 + primary-for QIODevice (0x0x7fabd372fdd0) + +Class QJSValue + size=8 align=8 + base size=8 base align=8 +QJSValue (0x0x7fabd3779180) 0 + +Class QJSEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QJSEngine::QPrivateSignal (0x0x7fabd3779480) 0 empty + +Vtable for QJSEngine +QJSEngine::_ZTV9QJSEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QJSEngine) +16 (int (*)(...))QJSEngine::metaObject +24 (int (*)(...))QJSEngine::qt_metacast +32 (int (*)(...))QJSEngine::qt_metacall +40 (int (*)(...))QJSEngine::~QJSEngine +48 (int (*)(...))QJSEngine::~QJSEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QJSEngine + size=24 align=8 + base size=24 base align=8 +QJSEngine (0x0x7fabd372ff08) 0 + vptr=((& QJSEngine::_ZTV9QJSEngine) + 16u) + QObject (0x0x7fabd3779420) 0 + primary-for QJSEngine (0x0x7fabd372ff08) + +Class QJSValueIterator + size=8 align=8 + base size=8 base align=8 +QJSValueIterator (0x0x7fabd3779600) 0 + +Class QQmlPrivate::RegisterType + size=128 align=8 + base size=124 base align=8 +QQmlPrivate::RegisterType (0x0x7fabd3779ae0) 0 + +Class QQmlPrivate::RegisterInterface + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::RegisterInterface (0x0x7fabd3779b40) 0 + +Class QQmlPrivate::RegisterAutoParent + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterAutoParent (0x0x7fabd3779ba0) 0 + +Class QQmlPrivate::RegisterSingletonType + size=64 align=8 + base size=64 base align=8 +QQmlPrivate::RegisterSingletonType (0x0x7fabd3779c00) 0 + +Class QQmlPrivate::RegisterCompositeType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeType (0x0x7fabd3779c60) 0 + +Class QQmlPrivate::RegisterCompositeSingletonType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeSingletonType (0x0x7fabd3779cc0) 0 + +Class QQmlPrivate::CachedQmlUnit + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::CachedQmlUnit (0x0x7fabd3779d20) 0 + +Class QQmlPrivate::RegisterQmlUnitCacheHook + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterQmlUnitCacheHook (0x0x7fabd3779d80) 0 + +Vtable for QQmlParserStatus +QQmlParserStatus::_ZTV16QQmlParserStatus: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlParserStatus) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlParserStatus + size=16 align=8 + base size=16 base align=8 +QQmlParserStatus (0x0x7fabd3779de0) 0 + vptr=((& QQmlParserStatus::_ZTV16QQmlParserStatus) + 16u) + +Vtable for QQmlPropertyValueSource +QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QQmlPropertyValueSource) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlPropertyValueSource + size=8 align=8 + base size=8 base align=8 +QQmlPropertyValueSource (0x0x7fabd3779ea0) 0 nearly-empty + vptr=((& QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource) + 16u) + +Class QQmlListReference + size=8 align=8 + base size=8 base align=8 +QQmlListReference (0x0x7fabd3475000) 0 + +Vtable for QQmlAbstractUrlInterceptor +QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QQmlAbstractUrlInterceptor) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlAbstractUrlInterceptor + size=8 align=8 + base size=8 base align=8 +QQmlAbstractUrlInterceptor (0x0x7fabd3475660) 0 nearly-empty + vptr=((& QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor) + 16u) + +Class QQmlError + size=8 align=8 + base size=8 base align=8 +QQmlError (0x0x7fabd34756c0) 0 + +Class QQmlDebuggingEnabler + size=1 align=1 + base size=0 base align=1 +QQmlDebuggingEnabler (0x0x7fabd34759c0) 0 empty + +Vtable for QQmlImageProviderBase +QQmlImageProviderBase::_ZTV21QQmlImageProviderBase: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlImageProviderBase) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlImageProviderBase + size=8 align=8 + base size=8 base align=8 +QQmlImageProviderBase (0x0x7fabd3475a20) 0 nearly-empty + vptr=((& QQmlImageProviderBase::_ZTV21QQmlImageProviderBase) + 16u) + +Class QQmlEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlEngine::QPrivateSignal (0x0x7fabd3475c00) 0 empty + +Vtable for QQmlEngine +QQmlEngine::_ZTV10QQmlEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQmlEngine) +16 (int (*)(...))QQmlEngine::metaObject +24 (int (*)(...))QQmlEngine::qt_metacast +32 (int (*)(...))QQmlEngine::qt_metacall +40 (int (*)(...))QQmlEngine::~QQmlEngine +48 (int (*)(...))QQmlEngine::~QQmlEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlEngine + size=24 align=8 + base size=24 base align=8 +QQmlEngine (0x0x7fabd33f94e0) 0 + vptr=((& QQmlEngine::_ZTV10QQmlEngine) + 16u) + QJSEngine (0x0x7fabd33f9548) 0 + primary-for QQmlEngine (0x0x7fabd33f94e0) + QObject (0x0x7fabd3475ba0) 0 + primary-for QJSEngine (0x0x7fabd33f9548) + +Class QQmlApplicationEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlApplicationEngine::QPrivateSignal (0x0x7fabd3475cc0) 0 empty + +Vtable for QQmlApplicationEngine +QQmlApplicationEngine::_ZTV21QQmlApplicationEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlApplicationEngine) +16 (int (*)(...))QQmlApplicationEngine::metaObject +24 (int (*)(...))QQmlApplicationEngine::qt_metacast +32 (int (*)(...))QQmlApplicationEngine::qt_metacall +40 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +48 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlApplicationEngine + size=24 align=8 + base size=24 base align=8 +QQmlApplicationEngine (0x0x7fabd33f95b0) 0 + vptr=((& QQmlApplicationEngine::_ZTV21QQmlApplicationEngine) + 16u) + QQmlEngine (0x0x7fabd33f9618) 0 + primary-for QQmlApplicationEngine (0x0x7fabd33f95b0) + QJSEngine (0x0x7fabd33f9680) 0 + primary-for QQmlEngine (0x0x7fabd33f9618) + QObject (0x0x7fabd3475c60) 0 + primary-for QJSEngine (0x0x7fabd33f9680) + +Class QQmlComponent::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlComponent::QPrivateSignal (0x0x7fabd3475d80) 0 empty + +Vtable for QQmlComponent +QQmlComponent::_ZTV13QQmlComponent: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlComponent) +16 (int (*)(...))QQmlComponent::metaObject +24 (int (*)(...))QQmlComponent::qt_metacast +32 (int (*)(...))QQmlComponent::qt_metacall +40 (int (*)(...))QQmlComponent::~QQmlComponent +48 (int (*)(...))QQmlComponent::~QQmlComponent +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlComponent::create +120 (int (*)(...))QQmlComponent::beginCreate +128 (int (*)(...))QQmlComponent::completeCreate + +Class QQmlComponent + size=16 align=8 + base size=16 base align=8 +QQmlComponent (0x0x7fabd33f96e8) 0 + vptr=((& QQmlComponent::_ZTV13QQmlComponent) + 16u) + QObject (0x0x7fabd3475d20) 0 + primary-for QQmlComponent (0x0x7fabd33f96e8) + +Class QQmlContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlContext::QPrivateSignal (0x0x7fabd31e8300) 0 empty + +Vtable for QQmlContext +QQmlContext::_ZTV11QQmlContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QQmlContext) +16 (int (*)(...))QQmlContext::metaObject +24 (int (*)(...))QQmlContext::qt_metacast +32 (int (*)(...))QQmlContext::qt_metacall +40 (int (*)(...))QQmlContext::~QQmlContext +48 (int (*)(...))QQmlContext::~QQmlContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlContext + size=16 align=8 + base size=16 base align=8 +QQmlContext (0x0x7fabd33f9820) 0 + vptr=((& QQmlContext::_ZTV11QQmlContext) + 16u) + QObject (0x0x7fabd31e82a0) 0 + primary-for QQmlContext (0x0x7fabd33f9820) + +Class QQmlScriptString + size=8 align=8 + base size=8 base align=8 +QQmlScriptString (0x0x7fabd31e8480) 0 + +Class QQmlExpression::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExpression::QPrivateSignal (0x0x7fabd31e86c0) 0 empty + +Vtable for QQmlExpression +QQmlExpression::_ZTV14QQmlExpression: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QQmlExpression) +16 (int (*)(...))QQmlExpression::metaObject +24 (int (*)(...))QQmlExpression::qt_metacast +32 (int (*)(...))QQmlExpression::qt_metacall +40 (int (*)(...))QQmlExpression::~QQmlExpression +48 (int (*)(...))QQmlExpression::~QQmlExpression +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlExpression + size=16 align=8 + base size=16 base align=8 +QQmlExpression (0x0x7fabd33f9888) 0 + vptr=((& QQmlExpression::_ZTV14QQmlExpression) + 16u) + QObject (0x0x7fabd31e8660) 0 + primary-for QQmlExpression (0x0x7fabd33f9888) + +Vtable for QQmlTypesExtensionInterface +QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QQmlTypesExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlTypesExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlTypesExtensionInterface (0x0x7fabd31e8720) 0 nearly-empty + vptr=((& QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface) + 16u) + +Vtable for QQmlExtensionInterface +QQmlExtensionInterface::_ZTV22QQmlExtensionInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QQmlExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlExtensionInterface (0x0x7fabd33f98f0) 0 nearly-empty + vptr=((& QQmlExtensionInterface::_ZTV22QQmlExtensionInterface) + 16u) + QQmlTypesExtensionInterface (0x0x7fabd31e8780) 0 nearly-empty + primary-for QQmlExtensionInterface (0x0x7fabd33f98f0) + +Class QQmlExtensionPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExtensionPlugin::QPrivateSignal (0x0x7fabd31e8960) 0 empty + +Vtable for QQmlExtensionPlugin +QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +16 (int (*)(...))QQmlExtensionPlugin::metaObject +24 (int (*)(...))QQmlExtensionPlugin::qt_metacast +32 (int (*)(...))QQmlExtensionPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QQmlExtensionPlugin::initializeEngine +128 (int (*)(...))-16 +136 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +144 0u +152 0u +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QQmlExtensionPlugin::_ZThn16_N19QQmlExtensionPlugin16initializeEngineEP10QQmlEnginePKc + +Class QQmlExtensionPlugin + size=24 align=8 + base size=24 base align=8 +QQmlExtensionPlugin (0x0x7fabd3241d90) 0 + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 16u) + QObject (0x0x7fabd31e88a0) 0 + primary-for QQmlExtensionPlugin (0x0x7fabd3241d90) + QQmlExtensionInterface (0x0x7fabd33f9958) 16 nearly-empty + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 144u) + QQmlTypesExtensionInterface (0x0x7fabd31e8900) 16 nearly-empty + primary-for QQmlExtensionInterface (0x0x7fabd33f9958) + +Class QQmlFile + size=8 align=8 + base size=8 base align=8 +QQmlFile (0x0x7fabd31e89c0) 0 + +Class QQmlFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlFileSelector::QPrivateSignal (0x0x7fabd31e8a80) 0 empty + +Vtable for QQmlFileSelector +QQmlFileSelector::_ZTV16QQmlFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlFileSelector) +16 (int (*)(...))QQmlFileSelector::metaObject +24 (int (*)(...))QQmlFileSelector::qt_metacast +32 (int (*)(...))QQmlFileSelector::qt_metacall +40 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +48 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlFileSelector + size=16 align=8 + base size=16 base align=8 +QQmlFileSelector (0x0x7fabd33f9a28) 0 + vptr=((& QQmlFileSelector::_ZTV16QQmlFileSelector) + 16u) + QObject (0x0x7fabd31e8a20) 0 + primary-for QQmlFileSelector (0x0x7fabd33f9a28) + +Vtable for QQmlIncubator +QQmlIncubator::_ZTV13QQmlIncubator: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlIncubator) +16 (int (*)(...))QQmlIncubator::~QQmlIncubator +24 (int (*)(...))QQmlIncubator::~QQmlIncubator +32 (int (*)(...))QQmlIncubator::statusChanged +40 (int (*)(...))QQmlIncubator::setInitialState + +Class QQmlIncubator + size=16 align=8 + base size=16 base align=8 +QQmlIncubator (0x0x7fabd31e8ae0) 0 + vptr=((& QQmlIncubator::_ZTV13QQmlIncubator) + 16u) + +Vtable for QQmlIncubationController +QQmlIncubationController::_ZTV24QQmlIncubationController: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QQmlIncubationController) +16 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +24 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +32 (int (*)(...))QQmlIncubationController::incubatingObjectCountChanged + +Class QQmlIncubationController + size=16 align=8 + base size=16 base align=8 +QQmlIncubationController (0x0x7fabd31e8b40) 0 + vptr=((& QQmlIncubationController::_ZTV24QQmlIncubationController) + 16u) + +Class QQmlInfo + size=16 align=8 + base size=16 base align=8 +QQmlInfo (0x0x7fabd33f9a90) 0 + QDebug (0x0x7fabd31e8ba0) 0 + +Vtable for QQmlNetworkAccessManagerFactory +QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QQmlNetworkAccessManagerFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlNetworkAccessManagerFactory + size=8 align=8 + base size=8 base align=8 +QQmlNetworkAccessManagerFactory (0x0x7fabd31e8c60) 0 nearly-empty + vptr=((& QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory) + 16u) + +Class QQmlProperty + size=8 align=8 + base size=8 base align=8 +QQmlProperty (0x0x7fabd31e8cc0) 0 + +Class QQmlPropertyMap::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlPropertyMap::QPrivateSignal (0x0x7fabd32d5060) 0 empty + +Vtable for QQmlPropertyMap +QQmlPropertyMap::_ZTV15QQmlPropertyMap: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QQmlPropertyMap) +16 (int (*)(...))QQmlPropertyMap::metaObject +24 (int (*)(...))QQmlPropertyMap::qt_metacast +32 (int (*)(...))QQmlPropertyMap::qt_metacall +40 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +48 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlPropertyMap::updateValue + +Class QQmlPropertyMap + size=16 align=8 + base size=16 base align=8 +QQmlPropertyMap (0x0x7fabd33f9c98) 0 + vptr=((& QQmlPropertyMap::_ZTV15QQmlPropertyMap) + 16u) + QObject (0x0x7fabd32d5000) 0 + primary-for QQmlPropertyMap (0x0x7fabd33f9c98) + diff --git a/tests/auto/bic/data/QtQuick.5.8.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtQuick.5.8.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..c41db56365 --- /dev/null +++ b/tests/auto/bic/data/QtQuick.5.8.0.linux-gcc-amd64.txt @@ -0,0 +1,10632 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fe607223d20) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fe6073324e0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fe607332720) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fe607332960) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fe607332ba0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fe607332d20) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fe60736b120) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fe606f918a0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fe606f91960) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fe606f91cc0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fe606f91d80) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fe606f91e40) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fe606f91f00) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fe606fc91e0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fe606fc93c0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fe606fc9840) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fe606fc98a0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fe607072540) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fe6070725a0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fe606fe3208) 0 empty + std::input_iterator_tag (0x0x7fe607072600) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fe606fe3270) 0 empty + std::forward_iterator_tag (0x0x7fe606fe32d8) 0 empty + std::input_iterator_tag (0x0x7fe607072660) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fe606fe3340) 0 empty + std::bidirectional_iterator_tag (0x0x7fe606fe33a8) 0 empty + std::forward_iterator_tag (0x0x7fe606fe3410) 0 empty + std::input_iterator_tag (0x0x7fe6070726c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fe6070b3360) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fe6070b33c0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fe6070b3420) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fe6070b3480) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fe6070b34e0) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7fe606dda000) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fe606dda240) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fe606dda300) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fe606dda360) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fe606dda420) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fe606dda480) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fe606dda900) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fe606dda960) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fe606dda9c0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fe606fe3958) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7fe606ddaa20) 0 nearly-empty + primary-for std::bad_exception (0x0x7fe606fe3958) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fe606ddaa80) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fe606ddaae0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fe606fe3b60) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7fe606ddaf00) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fe606fe3b60) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fe606fe3bc8) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7fe606fe3c30) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fe606fe3bc8) + std::exception (0x0x7fe606ddaf60) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fe606fe3c30) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fe606ef5000) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7fe606ef5c00) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fe606cec900) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fe606cec960) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fe6069e3840) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7fe6069e38a0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fe6069e3960) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fe6069e39c0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fe6069e3a20) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fe6069e3a80) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fe6069e3ba0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fe6069e3c00) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fe606796060) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fe6067960c0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fe6065228a0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fe606522900) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fe6065598a0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fe60634e6c0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fe6065549c0) 0 + std::iterator (0x0x7fe60634e780) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fe606554a28) 0 + std::_Bit_iterator_base (0x0x7fe606554a90) 0 + std::iterator (0x0x7fe60634e7e0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fe606554af8) 0 + std::_Bit_iterator_base (0x0x7fe606554b60) 0 + std::iterator (0x0x7fe60634e840) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fe60617a660) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fe606279420) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fe6062793c0) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fe6060143c0) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fe604db1e40) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fe604db1ea0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fe604bfa120) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fe604bfa180) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fe604bfa1e0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fe604bfac60) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fe604bfaf60) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fe604c5c540) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fe604c37dd0) 0 + std::__atomic_flag_base (0x0x7fe604c5c5a0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fe604a34548) 0 + QAtomicInteger (0x0x7fe604a345b0) 0 + QBasicAtomicInteger (0x0x7fe604a3fcc0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fe6046535a0) 0 empty + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fe60444e600) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fe6045f09c0) 0 + QGenericArgument (0x0x7fe60444e660) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fe60444e7e0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fe60444e8a0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fe6040cd900) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fe6040cd960) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fe6040cdde0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fe6040cdea0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fe6041ac300) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fe6041ac360) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fe6041ac3c0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fe6041ac420) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fe6041ac480) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fe6041ac840) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fe6040d9f70) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7fe6041ac900) 0 nearly-empty + primary-for std::logic_error (0x0x7fe6040d9f70) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fe6040d9c98) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7fe6040d9d68) 0 + primary-for std::domain_error (0x0x7fe6040d9c98) + std::exception (0x0x7fe6041ac960) 0 nearly-empty + primary-for std::logic_error (0x0x7fe6040d9d68) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fe603e79000) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7fe603e79068) 0 + primary-for std::invalid_argument (0x0x7fe603e79000) + std::exception (0x0x7fe6041ac9c0) 0 nearly-empty + primary-for std::logic_error (0x0x7fe603e79068) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fe603e790d0) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7fe603e79138) 0 + primary-for std::length_error (0x0x7fe603e790d0) + std::exception (0x0x7fe6041aca20) 0 nearly-empty + primary-for std::logic_error (0x0x7fe603e79138) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fe603e791a0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7fe603e79208) 0 + primary-for std::out_of_range (0x0x7fe603e791a0) + std::exception (0x0x7fe6041aca80) 0 nearly-empty + primary-for std::logic_error (0x0x7fe603e79208) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fe603e79270) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7fe6041acae0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603e79270) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fe603e792d8) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7fe603e79340) 0 + primary-for std::range_error (0x0x7fe603e792d8) + std::exception (0x0x7fe6041acb40) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603e79340) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fe603e793a8) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7fe603e79410) 0 + primary-for std::overflow_error (0x0x7fe603e793a8) + std::exception (0x0x7fe6041acba0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603e79410) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fe603e79478) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7fe603e794e0) 0 + primary-for std::underflow_error (0x0x7fe603e79478) + std::exception (0x0x7fe6041acc00) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603e794e0) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fe6041acd80) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fe603ea9000) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fe603ea9180) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fe603e799c0) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7fe603e79a28) 0 + primary-for std::system_error (0x0x7fe603e799c0) + std::exception (0x0x7fe603ea93c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603e79a28) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fe603ef4618) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7fe603ef4680) 0 + primary-for std::ios_base::failure (0x0x7fe603ef4618) + std::runtime_error (0x0x7fe603ef46e8) 0 + primary-for std::system_error (0x0x7fe603ef4680) + std::exception (0x0x7fe603ea96c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe603ef46e8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fe603ea9720) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fe603ea9780) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fe603ea97e0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fe603ea9660) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fe603ea9f60) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fe604004660) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7fe603b1bf08 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7fe603be5068 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7fe603be5410 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7fe603be54e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fe603daff00) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fe603daff60) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fe60391f3c0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fe60391f720) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fe60391fae0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fe60391fba0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fe60391fb40) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fe60374cb40) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fe6034d99c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fe6036540c0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fe603654120) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fe603654180) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fe603654540) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fe6036545a0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fe6034e0af8) 0 empty + QListData::NotIndirectLayout (0x0x7fe603654600) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fe6033431c0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fe603654660) 0 empty + QListData::NotIndirectLayout (0x0x7fe6036546c0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fe6034e0b60) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fe603654720) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fe603654780) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fe6036544e0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fe60340b360) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fe6030f1600) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fe6030f15a0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fe6030f74e0) 0 + QList (0x0x7fe6030f7548) 0 + QListSpecialMethods (0x0x7fe6030f17e0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fe6030f1c60) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fe60321a0c0) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fe60321a720) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fe60321a8a0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fe60321a960) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fe60320d478) 0 + std::__uses_alloc_base (0x0x7fe60321a900) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fe6030519c0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fe603051c00) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fe603051cc0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fe603051de0) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fe603051f60) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fe602d86360) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fe602d86480) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fe602d86de0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fe602a78360) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fe602a78720) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fe602c2d7e0) 0 + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fe602c2d960) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fe602c2db40) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fe602c2dae0) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fe60291c120) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fe60291c180) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fe60291c240) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fe6028ed548) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7fe60291c1e0) 0 + primary-for QAbstractAnimation (0x0x7fe6028ed548) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fe60291c300) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fe6028ed5b0) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7fe60291c2a0) 0 + primary-for QAnimationDriver (0x0x7fe6028ed5b0) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fe60291c3c0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fe6028ed618) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7fe60291c360) 0 + primary-for QEventLoop (0x0x7fe6028ed618) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fe60291c540) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fe60291c600) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fe60291c660) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fe6028ed750) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7fe60291c5a0) 0 + primary-for QAbstractEventDispatcher (0x0x7fe6028ed750) + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fe60291c6c0) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fe60291c900) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fe60291ccc0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fe60291cc60) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fe60291cd20) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fe6026d2900) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fe6026d29c0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fe6026d2960) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fe6026d2a20) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fe6026d28a0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fe602461ea0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fe602507240) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fe6025071e0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fe602507300) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fe6025072a0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fe602276d20) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fe602309060) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fe6023940c0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fe602399000) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7fe602394060) 0 + primary-for QAbstractItemModel (0x0x7fe602399000) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fe602394420) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fe602399208) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7fe602399270) 0 + primary-for QAbstractTableModel (0x0x7fe602399208) + QObject (0x0x7fe6023943c0) 0 + primary-for QAbstractItemModel (0x0x7fe602399270) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fe6023944e0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fe6023992d8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7fe602399340) 0 + primary-for QAbstractListModel (0x0x7fe6023992d8) + QObject (0x0x7fe602394480) 0 + primary-for QAbstractItemModel (0x0x7fe602399340) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fe602394780) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fe602394840) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fe602399478) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7fe6023994e0) 0 + primary-for QAbstractProxyModel (0x0x7fe602399478) + QObject (0x0x7fe6023947e0) 0 + primary-for QAbstractItemModel (0x0x7fe6023994e0) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fe602394900) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fe602399548) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7fe6023948a0) 0 + primary-for QAbstractState (0x0x7fe602399548) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fe6023949c0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fe6023995b0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7fe602394960) 0 + primary-for QAbstractTransition (0x0x7fe6023995b0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fe602394a80) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fe602399618) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7fe602399680) 0 + primary-for QAnimationGroup (0x0x7fe602399618) + QObject (0x0x7fe602394a20) 0 + primary-for QAbstractAnimation (0x0x7fe602399680) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fe602394f60) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fe6021512a0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fe6021514e0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fe6021518a0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fe602129680) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7fe602151840) 0 + primary-for QIODevice (0x0x7fe602129680) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fe602151a80) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fe6021297b8) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7fe602129820) 0 + primary-for QBuffer (0x0x7fe6021297b8) + QObject (0x0x7fe602151a20) 0 + primary-for QIODevice (0x0x7fe602129820) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fe602151b40) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fe602151ae0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fe602151cc0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fe602151ea0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fe601ef2360) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fe601ef2420) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fe601fbc4e0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fe601fbc960) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fe601fb6958) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7fe601fbc9c0) 0 + primary-for QTimerEvent (0x0x7fe601fb6958) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fe601fb69c0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7fe601fbca20) 0 + primary-for QChildEvent (0x0x7fe601fb69c0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fe601fb6af8) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7fe601fbcc00) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fe601fb6af8) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fe601fb6b60) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7fe601fbcc60) 0 + primary-for QDeferredDeleteEvent (0x0x7fe601fb6b60) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fe601fbcd20) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fe601fb6bc8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7fe601fbccc0) 0 + primary-for QCoreApplication (0x0x7fe601fb6bc8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fe601fbcd80) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fe601fbcde0) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fe601c5c0c0) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fe601c5c120) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fe601c5c1e0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fe601c5c3c0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fe601c5c6c0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fe601c5cba0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fe601c5cc00) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fe601c5cb40) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fe601dcda20) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fe601a1ade0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fe601b84c60) 0 empty + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fe601b84cc0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fe6018aeb40) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fe6018aed80) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fe6019e1000) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fe6019e1180) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fe6019e1600) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fe6019e15a0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fe601746840) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fe601746900) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fe6017469c0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fe6017502d8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7fe601750340) 0 + primary-for QFileDevice (0x0x7fe6017502d8) + QObject (0x0x7fe601746960) 0 + primary-for QIODevice (0x0x7fe601750340) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fe601746ba0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fe601750478) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7fe6017504e0) 0 + primary-for QFile (0x0x7fe601750478) + QIODevice (0x0x7fe601750548) 0 + primary-for QFileDevice (0x0x7fe6017504e0) + QObject (0x0x7fe601746b40) 0 + primary-for QIODevice (0x0x7fe601750548) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fe601746d20) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fe60146e1e0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fe60146e780) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fe60146e960) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fe6015bdc00) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fe6015c7340) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7fe6015c73a8) 0 + primary-for QEventTransition (0x0x7fe6015c7340) + QObject (0x0x7fe6015bdba0) 0 + primary-for QAbstractTransition (0x0x7fe6015c73a8) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fe6015c7410) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7fe6015bdc60) 0 nearly-empty + primary-for QException (0x0x7fe6015c7410) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fe6015c7478) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7fe6015c74e0) 0 nearly-empty + primary-for QUnhandledException (0x0x7fe6015c7478) + std::exception (0x0x7fe6015bdcc0) 0 nearly-empty + primary-for QException (0x0x7fe6015c74e0) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fe6015bdd20) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fe6015bdde0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fe6015bde40) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fe6015bdf60) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fe6015c7548) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7fe6015bdf00) 0 + primary-for QFileSelector (0x0x7fe6015c7548) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fe60123c060) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fe6015c75b0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7fe60123c000) 0 + primary-for QFileSystemWatcher (0x0x7fe6015c75b0) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fe60123c120) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fe6015c7618) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7fe6015c7680) 0 + primary-for QFinalState (0x0x7fe6015c7618) + QObject (0x0x7fe60123c0c0) 0 + primary-for QAbstractState (0x0x7fe6015c7680) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fe60123c180) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fe60123c1e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fe6015c77b8) 0 + QBasicMutex (0x0x7fe60123c420) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fe60123c7e0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fe60123c8a0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fe60123c900) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fe60123ca80) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fe60123cb40) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fe60123cea0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fe6013503a8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7fe60123ce40) 0 + primary-for QFutureWatcherBase (0x0x7fe6013503a8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fe60101c060) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fe6013507b8) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7fe601350820) 0 + primary-for QHistoryState (0x0x7fe6013507b8) + QObject (0x0x7fe60101c000) 0 + primary-for QAbstractState (0x0x7fe601350820) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fe60101c120) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fe601350888) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7fe6013508f0) 0 + primary-for QIdentityProxyModel (0x0x7fe601350888) + QAbstractItemModel (0x0x7fe601350958) 0 + primary-for QAbstractProxyModel (0x0x7fe6013508f0) + QObject (0x0x7fe60101c0c0) 0 + primary-for QAbstractItemModel (0x0x7fe601350958) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fe60101c180) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fe60101c540) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fe601350c98) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7fe60101c4e0) 0 + primary-for QItemSelectionModel (0x0x7fe601350c98) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fe601350ea0) 0 + QList (0x0x7fe601350f08) 0 + QListSpecialMethods (0x0x7fe60101c7e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fe60101cd20) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fe60101cf60) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fe60114e060) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fe60114e0c0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fe60114e180) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fe60114e1e0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fe60114e120) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fe60114e2a0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fe60114e300) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fe60114e3c0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fe60114e420) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fe60114e360) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fe60114e600) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fe601108340) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7fe60114e5a0) 0 + primary-for QLibrary (0x0x7fe601108340) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fe60114e7e0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fe60114e780) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fe600f405a0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fe600f40600) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fe600f40900) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fe600f40c00) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fe600f40f00) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fe600c44240) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fe600c449c0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fe600c44b40) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fe600c44ae0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fe600c44cc0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fe600db5000) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fe600db5360) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fe600db53c0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fe600db56c0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fe600db5a20) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fe600db5a80) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fe600db5de0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fe600a69068) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7fe600db5d80) 0 + primary-for QMimeData (0x0x7fe600a69068) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fe600db5e40) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fe600a991e0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fe600a992a0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fe600a69208) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7fe600a99240) 0 + primary-for QObjectCleanupHandler (0x0x7fe600a69208) + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fe600a99360) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fe600a69270) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7fe600a692d8) 0 + primary-for QParallelAnimationGroup (0x0x7fe600a69270) + QAbstractAnimation (0x0x7fe600a69340) 0 + primary-for QAnimationGroup (0x0x7fe600a692d8) + QObject (0x0x7fe600a99300) 0 + primary-for QAbstractAnimation (0x0x7fe600a69340) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fe600a99420) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fe600a693a8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7fe600a69410) 0 + primary-for QPauseAnimation (0x0x7fe600a693a8) + QObject (0x0x7fe600a993c0) 0 + primary-for QAbstractAnimation (0x0x7fe600a69410) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fe600a99600) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fe600a99960) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fe600a695b0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7fe600a99900) 0 + primary-for QPluginLoader (0x0x7fe600a695b0) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fe600a999c0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fe600a69618) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7fe600a99a20) 0 nearly-empty + primary-for std::bad_cast (0x0x7fe600a69618) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fe600a69680) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7fe600a99a80) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fe600a69680) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fe600bd28f0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7fe600819b40) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fe600bd28f0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fe600819c00) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fe600819c60) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fe600819d80) 0 + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fe6008e12a0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fe6008e1660) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fe60090a208) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7fe60090a270) 0 + primary-for QProcess (0x0x7fe60090a208) + QObject (0x0x7fe6008e1600) 0 + primary-for QIODevice (0x0x7fe60090a270) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fe6008e1720) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fe60090a2d8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7fe60090a340) 0 + primary-for QVariantAnimation (0x0x7fe60090a2d8) + QObject (0x0x7fe6008e16c0) 0 + primary-for QAbstractAnimation (0x0x7fe60090a340) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fe6008e17e0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fe60090a410) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7fe60090a478) 0 + primary-for QPropertyAnimation (0x0x7fe60090a410) + QAbstractAnimation (0x0x7fe60090a4e0) 0 + primary-for QVariantAnimation (0x0x7fe60090a478) + QObject (0x0x7fe6008e1780) 0 + primary-for QAbstractAnimation (0x0x7fe60090a4e0) + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fe6008e18a0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fe6008e1b40) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fe6008e1ba0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fe6008e1c00) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fe600665000) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fe6006653c0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fe6006656c0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fe6006659c0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fe600665f60) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fe60044b300) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fe60044b660) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fe60044b7e0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fe6007eb4e0) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7fe6007eb548) 0 + primary-for QSaveFile (0x0x7fe6007eb4e0) + QIODevice (0x0x7fe6007eb5b0) 0 + primary-for QFileDevice (0x0x7fe6007eb548) + QObject (0x0x7fe60044b780) 0 + primary-for QIODevice (0x0x7fe6007eb5b0) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fe60044b8a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fe60044b960) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fe6007eb618) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7fe6007eb680) 0 + primary-for QSequentialAnimationGroup (0x0x7fe6007eb618) + QAbstractAnimation (0x0x7fe6007eb6e8) 0 + primary-for QAnimationGroup (0x0x7fe6007eb680) + QObject (0x0x7fe60044b900) 0 + primary-for QAbstractAnimation (0x0x7fe6007eb6e8) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fe60044ba20) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fe6007eb750) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7fe60044b9c0) 0 + primary-for QSettings (0x0x7fe6007eb750) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fe60044bae0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fe6007eb7b8) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7fe60044ba80) 0 + primary-for QSharedMemory (0x0x7fe6007eb7b8) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fe60044bba0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fe6007eb820) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7fe60044bb40) 0 + primary-for QSignalMapper (0x0x7fe6007eb820) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fe60044bc60) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fe6007eb888) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7fe6007eb8f0) 0 + primary-for QSignalTransition (0x0x7fe6007eb888) + QObject (0x0x7fe60044bc00) 0 + primary-for QAbstractTransition (0x0x7fe6007eb8f0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fe60044bd20) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fe6007eb958) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7fe60044bcc0) 0 + primary-for QSocketNotifier (0x0x7fe6007eb958) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fe60044bde0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fe6007eb9c0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7fe6007eba28) 0 + primary-for QSortFilterProxyModel (0x0x7fe6007eb9c0) + QAbstractItemModel (0x0x7fe6007eba90) 0 + primary-for QAbstractProxyModel (0x0x7fe6007eba28) + QObject (0x0x7fe60044bd80) 0 + primary-for QAbstractItemModel (0x0x7fe6007eba90) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fe60055d000) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fe60055d1e0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fe6007ebc30) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7fe6007ebc98) 0 + primary-for QState (0x0x7fe6007ebc30) + QObject (0x0x7fe60055d180) 0 + primary-for QAbstractState (0x0x7fe6007ebc98) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fe60055d300) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fe6007ebe38) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7fe60055d360) 0 + primary-for QStateMachine::SignalEvent (0x0x7fe6007ebe38) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fe6007ebea0) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7fe60055d3c0) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fe6007ebea0) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fe6007ebd00) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7fe6007ebd68) 0 + primary-for QStateMachine (0x0x7fe6007ebd00) + QAbstractState (0x0x7fe6007ebdd0) 0 + primary-for QState (0x0x7fe6007ebd68) + QObject (0x0x7fe60055d2a0) 0 + primary-for QAbstractState (0x0x7fe6007ebdd0) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fe60055d420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fe60055d8a0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fe600262360) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fe600209958) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7fe6002099c0) 0 + primary-for QStringListModel (0x0x7fe600209958) + QAbstractItemModel (0x0x7fe600209a28) 0 + primary-for QAbstractListModel (0x0x7fe6002099c0) + QObject (0x0x7fe600262300) 0 + primary-for QAbstractItemModel (0x0x7fe600209a28) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fe6002623c0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fe600262480) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fe6002625a0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fe600209a90) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7fe600209af8) 0 + primary-for QTemporaryFile (0x0x7fe600209a90) + QFileDevice (0x0x7fe600209b60) 0 + primary-for QFile (0x0x7fe600209af8) + QIODevice (0x0x7fe600209bc8) 0 + primary-for QFileDevice (0x0x7fe600209b60) + QObject (0x0x7fe600262540) 0 + primary-for QIODevice (0x0x7fe600209bc8) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fe600262600) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fe6002627e0) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fe600262780) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fe600262960) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fe6002629c0) 0 + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fe600262a80) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fe600209dd0) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7fe600262a20) 0 + primary-for QThread (0x0x7fe600209dd0) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fe600262b40) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fe600209e38) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7fe600262ae0) 0 + primary-for QThreadPool (0x0x7fe600209e38) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fe600262ba0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fe600262cc0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fe600209ea0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7fe600262c60) 0 + primary-for QTimeLine (0x0x7fe600209ea0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fe600262d80) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fe600209f08) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7fe600262d20) 0 + primary-for QTimer (0x0x7fe600209f08) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fe6003d0ba0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fe6003d0b40) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fe600025240) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fe6000280d0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7fe6000251e0) 0 + primary-for QTranslator (0x0x7fe6000280d0) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fe600025360) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fe600137960) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fe600137cc0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fe6001f5000) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fe6001f5060) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fe5ffe70600) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fe5ffe6f9c0) 0 + QVector (0x0x7fe5ffe70a20) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fe5ffe70a80) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fe5ffe70d80) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fe5fff100c0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fe5fff103c0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fe5fff10420) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fe5fff10840) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7fe5fff10960) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7fe5fff10c60) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7fe5ffc5b3c0) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7fe5ffc5b360) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7fe5ffd04780) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7fe5ffdb29c0) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7fe5ffdb2d80) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7fe5ffdbc3a8) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16u) + QEvent (0x0x7fe5ffdb2f00) 0 + primary-for QInputEvent (0x0x7fe5ffdbc3a8) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7fe5ffdbc410) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16u) + QEvent (0x0x7fe5ffdb2f60) 0 + primary-for QEnterEvent (0x0x7fe5ffdbc410) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7fe5ffdbc478) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc4e0) 0 + primary-for QMouseEvent (0x0x7fe5ffdbc478) + QEvent (0x0x7fe5ffa5f000) 0 + primary-for QInputEvent (0x0x7fe5ffdbc4e0) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7fe5ffdbc548) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc5b0) 0 + primary-for QHoverEvent (0x0x7fe5ffdbc548) + QEvent (0x0x7fe5ffa5f060) 0 + primary-for QInputEvent (0x0x7fe5ffdbc5b0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7fe5ffdbc618) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc680) 0 + primary-for QWheelEvent (0x0x7fe5ffdbc618) + QEvent (0x0x7fe5ffa5f0c0) 0 + primary-for QInputEvent (0x0x7fe5ffdbc680) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7fe5ffdbc6e8) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc750) 0 + primary-for QTabletEvent (0x0x7fe5ffdbc6e8) + QEvent (0x0x7fe5ffa5f120) 0 + primary-for QInputEvent (0x0x7fe5ffdbc750) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7fe5ffdbc7b8) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc820) 0 + primary-for QNativeGestureEvent (0x0x7fe5ffdbc7b8) + QEvent (0x0x7fe5ffa5f180) 0 + primary-for QInputEvent (0x0x7fe5ffdbc820) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7fe5ffdbc888) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16u) + QInputEvent (0x0x7fe5ffdbc8f0) 0 + primary-for QKeyEvent (0x0x7fe5ffdbc888) + QEvent (0x0x7fe5ffa5f1e0) 0 + primary-for QInputEvent (0x0x7fe5ffdbc8f0) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7fe5ffdbc958) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16u) + QEvent (0x0x7fe5ffa5f240) 0 + primary-for QFocusEvent (0x0x7fe5ffdbc958) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7fe5ffdbc9c0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16u) + QEvent (0x0x7fe5ffa5f2a0) 0 + primary-for QPaintEvent (0x0x7fe5ffdbc9c0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7fe5ffdbca28) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16u) + QEvent (0x0x7fe5ffa5f300) 0 + primary-for QMoveEvent (0x0x7fe5ffdbca28) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7fe5ffdbca90) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16u) + QEvent (0x0x7fe5ffa5f360) 0 + primary-for QExposeEvent (0x0x7fe5ffdbca90) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7fe5ffdbcaf8) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16u) + QEvent (0x0x7fe5ffa5f3c0) 0 + primary-for QPlatformSurfaceEvent (0x0x7fe5ffdbcaf8) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7fe5ffdbcb60) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16u) + QEvent (0x0x7fe5ffa5f420) 0 + primary-for QResizeEvent (0x0x7fe5ffdbcb60) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7fe5ffdbcbc8) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16u) + QEvent (0x0x7fe5ffa5f480) 0 + primary-for QCloseEvent (0x0x7fe5ffdbcbc8) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7fe5ffdbcc30) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16u) + QEvent (0x0x7fe5ffa5f4e0) 0 + primary-for QIconDragEvent (0x0x7fe5ffdbcc30) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7fe5ffdbcc98) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16u) + QEvent (0x0x7fe5ffa5f540) 0 + primary-for QShowEvent (0x0x7fe5ffdbcc98) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7fe5ffdbcd00) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16u) + QEvent (0x0x7fe5ffa5f5a0) 0 + primary-for QHideEvent (0x0x7fe5ffdbcd00) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7fe5ffdbcd68) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16u) + QInputEvent (0x0x7fe5ffdbcdd0) 0 + primary-for QContextMenuEvent (0x0x7fe5ffdbcd68) + QEvent (0x0x7fe5ffa5f600) 0 + primary-for QInputEvent (0x0x7fe5ffdbcdd0) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7fe5ffa5f6c0) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7fe5ffdbce38) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16u) + QEvent (0x0x7fe5ffa5f660) 0 + primary-for QInputMethodEvent (0x0x7fe5ffdbce38) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7fe5ffa5fba0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7fe5ffb50138) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16u) + QEvent (0x0x7fe5ffa5fb40) 0 + primary-for QInputMethodQueryEvent (0x0x7fe5ffb50138) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7fe5ffb503a8) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16u) + QEvent (0x0x7fe5ffa5ff60) 0 + primary-for QDropEvent (0x0x7fe5ffb503a8) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7fe5ffb50410) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16u) + QDropEvent (0x0x7fe5ffb50478) 0 + primary-for QDragMoveEvent (0x0x7fe5ffb50410) + QEvent (0x0x7fe5ffb9f000) 0 + primary-for QDropEvent (0x0x7fe5ffb50478) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7fe5ffb504e0) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16u) + QDragMoveEvent (0x0x7fe5ffb50548) 0 + primary-for QDragEnterEvent (0x0x7fe5ffb504e0) + QDropEvent (0x0x7fe5ffb505b0) 0 + primary-for QDragMoveEvent (0x0x7fe5ffb50548) + QEvent (0x0x7fe5ffb9f060) 0 + primary-for QDropEvent (0x0x7fe5ffb505b0) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7fe5ffb50618) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16u) + QEvent (0x0x7fe5ffb9f0c0) 0 + primary-for QDragLeaveEvent (0x0x7fe5ffb50618) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7fe5ffb50680) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16u) + QEvent (0x0x7fe5ffb9f120) 0 + primary-for QHelpEvent (0x0x7fe5ffb50680) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7fe5ffb506e8) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16u) + QEvent (0x0x7fe5ffb9f180) 0 + primary-for QStatusTipEvent (0x0x7fe5ffb506e8) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7fe5ffb50750) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16u) + QEvent (0x0x7fe5ffb9f1e0) 0 + primary-for QWhatsThisClickedEvent (0x0x7fe5ffb50750) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7fe5ffb507b8) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16u) + QEvent (0x0x7fe5ffb9f240) 0 + primary-for QActionEvent (0x0x7fe5ffb507b8) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7fe5ffb50820) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16u) + QEvent (0x0x7fe5ffb9f2a0) 0 + primary-for QFileOpenEvent (0x0x7fe5ffb50820) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7fe5ffb50888) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16u) + QEvent (0x0x7fe5ffb9f300) 0 + primary-for QToolBarChangeEvent (0x0x7fe5ffb50888) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7fe5ffb508f0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16u) + QEvent (0x0x7fe5ffb9f360) 0 + primary-for QShortcutEvent (0x0x7fe5ffb508f0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7fe5ffb50958) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16u) + QEvent (0x0x7fe5ffb9f3c0) 0 + primary-for QWindowStateChangeEvent (0x0x7fe5ffb50958) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7fe5ffb9f420) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7fe5ffb9f7e0) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7fe5ffb50af8) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16u) + QInputEvent (0x0x7fe5ffb50b60) 0 + primary-for QTouchEvent (0x0x7fe5ffb50af8) + QEvent (0x0x7fe5ffb9f780) 0 + primary-for QInputEvent (0x0x7fe5ffb50b60) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7fe5ff88d340) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16u) + QEvent (0x0x7fe5ff881e40) 0 + primary-for QScrollPrepareEvent (0x0x7fe5ff88d340) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7fe5ff88d3a8) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16u) + QEvent (0x0x7fe5ff881ea0) 0 + primary-for QScrollEvent (0x0x7fe5ff88d3a8) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7fe5ff88d410) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16u) + QEvent (0x0x7fe5ff881f00) 0 + primary-for QScreenOrientationChangeEvent (0x0x7fe5ff88d410) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7fe5ff88d478) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16u) + QEvent (0x0x7fe5ff881f60) 0 + primary-for QApplicationStateChangeEvent (0x0x7fe5ff88d478) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7fe5ff8e0000) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7fe5ff88d888) 0 + QVector (0x0x7fe5ff8e05a0) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7fe5ff88dbc8) 0 + QVector (0x0x7fe5ff8e0a80) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7fe5ff8e0ea0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7fe5ff5f8240) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7fe5ff5f81e0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7fe5ff5f89c0) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7fe5ff5f8ae0) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7fe5ff5f8f60) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16u) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7fe5ff71c000) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7fe5ff646750) 0 + vptr=((& QImage::_ZTV6QImage) + 16u) + QPaintDevice (0x0x7fe5ff71c480) 0 + primary-for QImage (0x0x7fe5ff646750) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7fe5ff445270) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16u) + QPaintDevice (0x0x7fe5ff43a480) 0 + primary-for QPixmap (0x0x7fe5ff445270) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7fe5ff43a7e0) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7fe5ff43ab40) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7fe5ff43aba0) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7fe5ff445618) 0 + QGradient (0x0x7fe5ff43ae40) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7fe5ff445680) 0 + QGradient (0x0x7fe5ff43aea0) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7fe5ff4456e8) 0 + QGradient (0x0x7fe5ff43af00) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7fe5ff43af60) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7fe5ff5b7240) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7fe5ff5b71e0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7fe5ff5b7660) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7fe5ff5b7ae0) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7fe5ff2725b0) 0 + QTextFormat (0x0x7fe5ff2d7360) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7fe5ff272750) 0 + QTextFormat (0x0x7fe5ff2d7660) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7fe5ff272958) 0 + QTextFormat (0x0x7fe5ff2d7960) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7fe5ff272af8) 0 + QTextCharFormat (0x0x7fe5ff272b60) 0 + QTextFormat (0x0x7fe5ff2d7c60) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7fe5ff272d00) 0 + QTextFormat (0x0x7fe5ff2d7f60) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7fe5ff272ea0) 0 + QTextFrameFormat (0x0x7fe5ff272f08) 0 + QTextFormat (0x0x7fe5ff3b62a0) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7fe5ff272208) 0 + QTextCharFormat (0x0x7fe5fefe5000) 0 + QTextFormat (0x0x7fe5ff3b6600) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7fe5ff3b6900) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7fe5ff3b6960) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7fe5ff3b6f00) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7fe5ff0b42a0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7fe5ff0b4600) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7fe5ff0b46c0) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7fe5ff0b4660) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7fe5ff0b4a80) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7fe5ff0b4ae0) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16u) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7fe5ff0b4ba0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7fe5fefe5a28) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16u) + QObject (0x0x7fe5ff0b4b40) 0 + primary-for QTextDocument (0x0x7fe5fefe5a28) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7fe5ff0b4d80) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7fe5ff0b4d20) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7fe5fee4fea0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7fe5fee4ff00) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7fe5fee4ff60) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7fe5fee6d618) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16u) + QObject (0x0x7fe5fee4fe40) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fe5fee6d618) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7fe5fee98600) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16u) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7fe5fee98720) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7fe5fee98780) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16u) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7fe5fee986c0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7fe5fee98900) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16u) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7fe5fee98960) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16u) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7fe5fee989c0) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16u) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7fe5fee98a20) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16u) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7fe5fee98a80) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16u) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7fe5fee98ae0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16u) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7fe5fee98b40) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16u) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7fe5fee98ba0) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16u) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7fe5fee98c00) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16u) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7fe5fee6db60) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16u) + QAccessibleEvent (0x0x7fe5fef92540) 0 + primary-for QAccessibleStateChangeEvent (0x0x7fe5fee6db60) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7fe5fee6dbc8) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16u) + QAccessibleEvent (0x0x7fe5fef925a0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe5fee6dbc8) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7fe5fee6dc30) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7fe5fee6dc98) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7fe5fee6dc30) + QAccessibleEvent (0x0x7fe5fef92600) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe5fee6dc98) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7fe5fee6dd00) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7fe5fee6dd68) 0 + primary-for QAccessibleTextInsertEvent (0x0x7fe5fee6dd00) + QAccessibleEvent (0x0x7fe5fef92660) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe5fee6dd68) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7fe5fee6ddd0) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7fe5fee6de38) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7fe5fee6ddd0) + QAccessibleEvent (0x0x7fe5fef926c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe5fee6de38) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7fe5fee6dea0) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7fe5fee6df08) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7fe5fee6dea0) + QAccessibleEvent (0x0x7fe5fef92720) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe5fee6df08) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7fe5fee6df70) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16u) + QAccessibleEvent (0x0x7fe5fef92780) 0 + primary-for QAccessibleValueChangeEvent (0x0x7fe5fee6df70) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7fe5fec10000) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16u) + QAccessibleEvent (0x0x7fe5fef927e0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7fe5fec10000) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7fe5fef928a0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16u) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7fe5fef92960) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7fe5fec10068) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16u) + QObject (0x0x7fe5fef92900) 0 + primary-for QAccessibleBridgePlugin (0x0x7fe5fec10068) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0u +24 0u +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7fe5fec100d0) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16u) + QAccessibleInterface (0x0x7fe5fef929c0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fe5fec100d0) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7fe5fec10138) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16u) + QAccessibleObject (0x0x7fe5fec101a0) 0 + primary-for QAccessibleApplication (0x0x7fe5fec10138) + QAccessibleInterface (0x0x7fe5fef92a20) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fe5fec101a0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7fe5fef92ae0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7fe5fec10208) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16u) + QObject (0x0x7fe5fef92a80) 0 + primary-for QAccessiblePlugin (0x0x7fe5fec10208) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7fe5fef92b40) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7fe5fef92cc0) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16u) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7fe5fef92e40) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7fe5fed462a0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7fe5fe9cb5a0) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7fe5fe9ceaf0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16u) + QObject (0x0x7fe5fe9cb4e0) 0 + primary-for QWindow (0x0x7fe5fe9ceaf0) + QSurface (0x0x7fe5fe9cb540) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312u) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7fe5fe9cb6c0) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7fe5fe9c2d68) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16u) + QPixmap (0x0x7fe5fe9c2dd0) 0 + primary-for QBitmap (0x0x7fe5fe9c2d68) + QPaintDevice (0x0x7fe5fe9cb780) 0 + primary-for QPixmap (0x0x7fe5fe9c2dd0) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7fe5fe9cbb40) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7fe5fea48000) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16u) + QObject (0x0x7fe5fe9cbae0) 0 + primary-for QClipboard (0x0x7fe5fea48000) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7fe5fe9cbba0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7fe5fe9cbc60) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7fe5fea48068) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16u) + QObject (0x0x7fe5fe9cbc00) 0 + primary-for QDrag (0x0x7fe5fea48068) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7fe5fe9cbcc0) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7fe5fea85000) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7fe5fea85360) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7fe5feba85a0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7fe5fea48618) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16u) + QObject (0x0x7fe5feba8540) 0 + primary-for QGenericPlugin (0x0x7fe5fea48618) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7fe5feba8600) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7fe5feba86c0) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7fe5fea48680) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16u) + QObject (0x0x7fe5feba8660) 0 + primary-for QInputMethod (0x0x7fe5fea48680) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7fe5feba8780) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7fe5fea486e8) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16u) + QCoreApplication (0x0x7fe5fea48750) 0 + primary-for QGuiApplication (0x0x7fe5fea486e8) + QObject (0x0x7fe5feba8720) 0 + primary-for QCoreApplication (0x0x7fe5fea48750) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7fe5feba89c0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7fe5feba8960) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16u) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7fe5feba8ba0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7fe5fea48958) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16u) + QObject (0x0x7fe5feba8b40) 0 + primary-for QIconEnginePlugin (0x0x7fe5fea48958) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0u +24 0u +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7fe5feba8c00) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16u) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7fe5feba8d80) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7fe5fea489c0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16u) + QObject (0x0x7fe5feba8d20) 0 + primary-for QImageIOPlugin (0x0x7fe5fea489c0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7fe5feba8f00) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7fe5feba8f60) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7fe5fe8f9000) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7fe5fe8f93c0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7fe5fe8f9780) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7fe5fe8f9a80) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7fe5fe6561e0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7fe5fe6571a0) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16u) + QObject (0x0x7fe5fe656180) 0 + primary-for QMovie (0x0x7fe5fe6571a0) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7fe5fe656300) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7fe5fe709f50) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16u) + QObject (0x0x7fe5fe656240) 0 + primary-for QOffscreenSurface (0x0x7fe5fe709f50) + QSurface (0x0x7fe5fe6562a0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160u) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7fe5fe6563c0) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7fe5fe656540) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7fe5fe06a420) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7fe5fe06a480) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7fe5fe06a4e0) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7fe5fe06a540) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16u) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7fe5fe06a600) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7fe5fe06d5b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06a5a0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7fe5fe06a720) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7fe5fe06d618) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06a6c0) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7fe5fe06a840) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7fe5fe06d680) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06a7e0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7fe5fe06a960) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7fe5fe06d6e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06a900) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7fe5fe06aae0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7fe5fe06d750) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06aa80) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7fe5fe06ac00) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7fe5fe06d7b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06aba0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7fe5fe06ad20) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7fe5fe06d820) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06acc0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7fe5fe06ae40) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7fe5fe06d888) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06ade0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7fe5fe06af60) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7fe5fe06d8f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe06af00) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7fe5fe12b0c0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7fe5fe06d958) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b060) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7fe5fe12b1e0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7fe5fe06d9c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b180) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7fe5fe12b300) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7fe5fe06da28) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b2a0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7fe5fe12b420) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7fe5fe06da90) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b3c0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7fe5fe12b540) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7fe5fe06daf8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b4e0) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7fe5fe12b660) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7fe5fe06db60) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b600) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7fe5fe12b780) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7fe5fe06dbc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b720) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7fe5fe12b8a0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7fe5fe06dc30) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b840) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7fe5fe12ba20) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7fe5fe06dc98) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12b9c0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7fe5fe12bb40) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7fe5fe06dd00) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12bae0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7fe5fe12bc60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7fe5fe06dd68) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12bc00) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7fe5fe12bd80) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7fe5fe06ddd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12bd20) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7fe5fe12bea0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7fe5fe06de38) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12be40) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7fe5fde71000) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7fe5fe06dea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fe12bf60) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7fe5fde71120) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7fe5fe06df08) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fde710c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7fe5fde71240) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7fe5fe06df70) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fde711e0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7fe5fde71360) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7fe5fde9c000) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fde71300) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7fe5fde71480) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7fe5fde9c068) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe5fde71420) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7fe5fde71540) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7fe5fde71780) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7fe5fde9c1a0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16u) + QObject (0x0x7fe5fde71720) 0 + primary-for QOpenGLContextGroup (0x0x7fe5fde9c1a0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7fe5fde71840) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7fe5fde9c208) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16u) + QObject (0x0x7fe5fde717e0) 0 + primary-for QOpenGLContext (0x0x7fe5fde9c208) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7fe5fde718a0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7fe5fdf98000) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7fe5fde9c618) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16u) + QObject (0x0x7fe5fde71f60) 0 + primary-for QOpenGLDebugLogger (0x0x7fe5fde9c618) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7fe5fdf98180) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7fe5fdf98360) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7fe5fdf98300) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7fe5fdd442d8) 0 + QOpenGLFunctions (0x0x7fe5fdf98480) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1376 align=8 + base size=1376 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7fe5fdf98540) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2528 align=8 + base size=2528 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7fe5fdd44340) 0 + QOpenGLFunctionsPrivate (0x0x7fe5fdf984e0) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7fe5fdf988a0) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16u) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7fe5fdf989c0) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7fe5fdaecbc8) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16u) + QPaintDevice (0x0x7fe5fdf98a20) 0 + primary-for QOpenGLPaintDevice (0x0x7fe5fdaecbc8) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7fe5fdf98b40) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7fe5fdf98f00) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7fe5fdaecd68) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16u) + QObject (0x0x7fe5fdf98ea0) 0 + primary-for QOpenGLShader (0x0x7fe5fdaecd68) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7fe5fdb8a120) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7fe5fdaecea0) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16u) + QObject (0x0x7fe5fdb8a0c0) 0 + primary-for QOpenGLShaderProgram (0x0x7fe5fdaecea0) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7fe5fdb8a180) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7fe5fdb8a3c0) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7fe5fdb8a540) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7fe5fd8b5000) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16u) + QObject (0x0x7fe5fdb8a4e0) 0 + primary-for QOpenGLTimerQuery (0x0x7fe5fd8b5000) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7fe5fdb8a600) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7fe5fd8b5068) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16u) + QObject (0x0x7fe5fdb8a5a0) 0 + primary-for QOpenGLTimeMonitor (0x0x7fe5fd8b5068) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7fe5fdb8a6c0) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7fe5fdb8a720) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7fe5fd8b50d0) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16u) + QObject (0x0x7fe5fdb8a660) 0 + primary-for QOpenGLVertexArrayObject (0x0x7fe5fd8b50d0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7fe5fdb8a8a0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7fe5fd8eba10) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16u) + QWindow (0x0x7fe5fd8eba80) 0 + primary-for QPaintDeviceWindow (0x0x7fe5fd8eba10) + QObject (0x0x7fe5fdb8a780) 0 + primary-for QWindow (0x0x7fe5fd8eba80) + QSurface (0x0x7fe5fdb8a7e0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336u) + QPaintDevice (0x0x7fe5fdb8a840) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400u) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7fe5fdb8aa20) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7fe5fd8b5138) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16u) + QPaintDeviceWindow (0x0x7fe5fd9021c0) 0 + primary-for QOpenGLWindow (0x0x7fe5fd8b5138) + QWindow (0x0x7fe5fd902230) 0 + primary-for QPaintDeviceWindow (0x0x7fe5fd9021c0) + QObject (0x0x7fe5fdb8a900) 0 + primary-for QWindow (0x0x7fe5fd902230) + QSurface (0x0x7fe5fdb8a960) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384u) + QPaintDevice (0x0x7fe5fdb8a9c0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448u) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7fe5fdb8aa80) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7fe5fd961180) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7fe5fd9618a0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7fe5fd8b5478) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16u) + QPaintDevice (0x0x7fe5fd961840) 0 + primary-for QPagedPaintDevice (0x0x7fe5fd8b5478) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7fe5fd961960) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7fe5fd961900) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7fe5fd6602a0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7fe5fd6605a0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16u) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7fe5fd6607e0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7fe5fd660c60) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7fe5fd4371c0) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16u) + QObject (0x0x7fe5fd660ba0) 0 + primary-for QPdfWriter (0x0x7fe5fd4371c0) + QPagedPaintDevice (0x0x7fe5fd8b5f08) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176u) + QPaintDevice (0x0x7fe5fd660c00) 16 + primary-for QPagedPaintDevice (0x0x7fe5fd8b5f08) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7fe5fd8b5f70) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16u) + QPaintDevice (0x0x7fe5fd660de0) 0 + primary-for QPicture (0x0x7fe5fd8b5f70) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7fe5fd476180) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7fe5fd476240) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7fe5fd475138) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16u) + QObject (0x0x7fe5fd4761e0) 0 + primary-for QPictureFormatPlugin (0x0x7fe5fd475138) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7fe5fd476300) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7fe5fd4762a0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7fe5fd5124e0) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7fe5fd50e7b8) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16u) + QPaintDeviceWindow (0x0x7fe5fd510b60) 0 + primary-for QRasterWindow (0x0x7fe5fd50e7b8) + QWindow (0x0x7fe5fd510bd0) 0 + primary-for QPaintDeviceWindow (0x0x7fe5fd510b60) + QObject (0x0x7fe5fd5123c0) 0 + primary-for QWindow (0x0x7fe5fd510bd0) + QSurface (0x0x7fe5fd512420) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344u) + QPaintDevice (0x0x7fe5fd512480) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408u) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7fe5fd5125a0) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7fe5fd50e888) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16u) + QObject (0x0x7fe5fd512540) 0 + primary-for QScreen (0x0x7fe5fd50e888) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7fe5fd512660) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7fe5fd50e8f0) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16u) + QObject (0x0x7fe5fd512600) 0 + primary-for QSessionManager (0x0x7fe5fd50e8f0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7fe5fd5126c0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16u) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7fe5fd512960) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7fe5fd50ea90) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16u) + QAbstractItemModel (0x0x7fe5fd50eaf8) 0 + primary-for QStandardItemModel (0x0x7fe5fd50ea90) + QObject (0x0x7fe5fd512900) 0 + primary-for QAbstractItemModel (0x0x7fe5fd50eaf8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7fe5fd5129c0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7fe5fd512ea0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7fe5fd50ec98) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16u) + QObject (0x0x7fe5fd512e40) 0 + primary-for QStyleHints (0x0x7fe5fd50ec98) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7fe5fd512f60) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7fe5fd50ed00) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16u) + QObject (0x0x7fe5fd512f00) 0 + primary-for QTextObject (0x0x7fe5fd50ed00) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7fe5fd290060) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7fe5fd50ed68) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16u) + QTextObject (0x0x7fe5fd50edd0) 0 + primary-for QTextBlockGroup (0x0x7fe5fd50ed68) + QObject (0x0x7fe5fd290000) 0 + primary-for QTextObject (0x0x7fe5fd50edd0) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7fe5fd2900c0) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16u) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7fe5fd290180) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7fe5fd2901e0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7fe5fd50ee38) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16u) + QTextObject (0x0x7fe5fd50eea0) 0 + primary-for QTextFrame (0x0x7fe5fd50ee38) + QObject (0x0x7fe5fd290120) 0 + primary-for QTextObject (0x0x7fe5fd50eea0) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7fe5fd2904e0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16u) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7fe5fd2905a0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7fe5fd290540) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7fe5fd290b40) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7fe5fd290ea0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7fe5fd2d0410) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16u) + QObject (0x0x7fe5fd290e40) 0 + primary-for QSyntaxHighlighter (0x0x7fe5fd2d0410) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7fe5fd290f00) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7fe5fd290f60) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7fe5fd341060) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7fe5fd2d0478) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16u) + QTextBlockGroup (0x0x7fe5fd2d04e0) 0 + primary-for QTextList (0x0x7fe5fd2d0478) + QTextObject (0x0x7fe5fd2d0548) 0 + primary-for QTextBlockGroup (0x0x7fe5fd2d04e0) + QObject (0x0x7fe5fd341000) 0 + primary-for QTextObject (0x0x7fe5fd2d0548) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7fe5fd3410c0) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7fe5fd341180) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7fe5fd2d05b0) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16u) + QTextFrame (0x0x7fe5fd2d0618) 0 + primary-for QTextTable (0x0x7fe5fd2d05b0) + QTextObject (0x0x7fe5fd2d0680) 0 + primary-for QTextFrame (0x0x7fe5fd2d0618) + QObject (0x0x7fe5fd341120) 0 + primary-for QTextObject (0x0x7fe5fd2d0680) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7fe5fd341240) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7fe5fd2d06e8) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16u) + QObject (0x0x7fe5fd3411e0) 0 + primary-for QValidator (0x0x7fe5fd2d06e8) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7fe5fd341300) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7fe5fd2d0750) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16u) + QValidator (0x0x7fe5fd2d07b8) 0 + primary-for QIntValidator (0x0x7fe5fd2d0750) + QObject (0x0x7fe5fd3412a0) 0 + primary-for QValidator (0x0x7fe5fd2d07b8) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7fe5fd3413c0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7fe5fd2d0820) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16u) + QValidator (0x0x7fe5fd2d0888) 0 + primary-for QDoubleValidator (0x0x7fe5fd2d0820) + QObject (0x0x7fe5fd341360) 0 + primary-for QValidator (0x0x7fe5fd2d0888) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7fe5fd3414e0) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7fe5fd2d08f0) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16u) + QValidator (0x0x7fe5fd2d0958) 0 + primary-for QRegExpValidator (0x0x7fe5fd2d08f0) + QObject (0x0x7fe5fd341480) 0 + primary-for QValidator (0x0x7fe5fd2d0958) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7fe5fd3415a0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7fe5fd2d09c0) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16u) + QValidator (0x0x7fe5fd2d0a28) 0 + primary-for QRegularExpressionValidator (0x0x7fe5fd2d09c0) + QObject (0x0x7fe5fd341540) 0 + primary-for QValidator (0x0x7fe5fd2d0a28) + +Class QNetworkRequest + size=8 align=8 + base size=8 base align=8 +QNetworkRequest (0x0x7fe5fd341600) 0 + +Class QNetworkCacheMetaData + size=8 align=8 + base size=8 base align=8 +QNetworkCacheMetaData (0x0x7fe5fd341a80) 0 + +Class QAbstractNetworkCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractNetworkCache::QPrivateSignal (0x0x7fe5fd341e40) 0 empty + +Vtable for QAbstractNetworkCache +QAbstractNetworkCache::_ZTV21QAbstractNetworkCache: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractNetworkCache) +16 (int (*)(...))QAbstractNetworkCache::metaObject +24 (int (*)(...))QAbstractNetworkCache::qt_metacast +32 (int (*)(...))QAbstractNetworkCache::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNetworkCache + size=16 align=8 + base size=16 base align=8 +QAbstractNetworkCache (0x0x7fe5fd2d0d00) 0 + vptr=((& QAbstractNetworkCache::_ZTV21QAbstractNetworkCache) + 16u) + QObject (0x0x7fe5fd341de0) 0 + primary-for QAbstractNetworkCache (0x0x7fe5fd2d0d00) + +Class QAbstractSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSocket::QPrivateSignal (0x0x7fe5fd341f00) 0 empty + +Vtable for QAbstractSocket +QAbstractSocket::_ZTV15QAbstractSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSocket) +16 (int (*)(...))QAbstractSocket::metaObject +24 (int (*)(...))QAbstractSocket::qt_metacast +32 (int (*)(...))QAbstractSocket::qt_metacall +40 (int (*)(...))QAbstractSocket::~QAbstractSocket +48 (int (*)(...))QAbstractSocket::~QAbstractSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QAbstractSocket + size=16 align=8 + base size=16 base align=8 +QAbstractSocket (0x0x7fe5fd2d0d68) 0 + vptr=((& QAbstractSocket::_ZTV15QAbstractSocket) + 16u) + QIODevice (0x0x7fe5fd2d0dd0) 0 + primary-for QAbstractSocket (0x0x7fe5fd2d0d68) + QObject (0x0x7fe5fd341ea0) 0 + primary-for QIODevice (0x0x7fe5fd2d0dd0) + +Class QAuthenticator + size=8 align=8 + base size=8 base align=8 +QAuthenticator (0x0x7fe5fd06e420) 0 + +Class QDnsDomainNameRecord + size=8 align=8 + base size=8 base align=8 +QDnsDomainNameRecord (0x0x7fe5fd06e480) 0 + +Class QDnsHostAddressRecord + size=8 align=8 + base size=8 base align=8 +QDnsHostAddressRecord (0x0x7fe5fd06e7e0) 0 + +Class QDnsMailExchangeRecord + size=8 align=8 + base size=8 base align=8 +QDnsMailExchangeRecord (0x0x7fe5fd06eb40) 0 + +Class QDnsServiceRecord + size=8 align=8 + base size=8 base align=8 +QDnsServiceRecord (0x0x7fe5fd06eea0) 0 + +Class QDnsTextRecord + size=8 align=8 + base size=8 base align=8 +QDnsTextRecord (0x0x7fe5fd149240) 0 + +Class QDnsLookup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDnsLookup::QPrivateSignal (0x0x7fe5fd149600) 0 empty + +Vtable for QDnsLookup +QDnsLookup::_ZTV10QDnsLookup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDnsLookup) +16 (int (*)(...))QDnsLookup::metaObject +24 (int (*)(...))QDnsLookup::qt_metacast +32 (int (*)(...))QDnsLookup::qt_metacall +40 (int (*)(...))QDnsLookup::~QDnsLookup +48 (int (*)(...))QDnsLookup::~QDnsLookup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDnsLookup + size=16 align=8 + base size=16 base align=8 +QDnsLookup (0x0x7fe5fd102618) 0 + vptr=((& QDnsLookup::_ZTV10QDnsLookup) + 16u) + QObject (0x0x7fe5fd1495a0) 0 + primary-for QDnsLookup (0x0x7fe5fd102618) + +Class QIPv6Address + size=16 align=1 + base size=16 base align=1 +QIPv6Address (0x0x7fe5fd149660) 0 + +Class QHostAddress + size=8 align=8 + base size=8 base align=8 +QHostAddress (0x0x7fe5fd1496c0) 0 + +Class QHostInfo + size=8 align=8 + base size=8 base align=8 +QHostInfo (0x0x7fe5fd149b40) 0 + +Class QHttpPart + size=8 align=8 + base size=8 base align=8 +QHttpPart (0x0x7fe5fd149d20) 0 + +Class QHttpMultiPart::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHttpMultiPart::QPrivateSignal (0x0x7fe5fce0c120) 0 empty + +Vtable for QHttpMultiPart +QHttpMultiPart::_ZTV14QHttpMultiPart: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QHttpMultiPart) +16 (int (*)(...))QHttpMultiPart::metaObject +24 (int (*)(...))QHttpMultiPart::qt_metacast +32 (int (*)(...))QHttpMultiPart::qt_metacall +40 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +48 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHttpMultiPart + size=16 align=8 + base size=16 base align=8 +QHttpMultiPart (0x0x7fe5fd1029c0) 0 + vptr=((& QHttpMultiPart::_ZTV14QHttpMultiPart) + 16u) + QObject (0x0x7fe5fce0c0c0) 0 + primary-for QHttpMultiPart (0x0x7fe5fd1029c0) + +Class QLocalServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalServer::QPrivateSignal (0x0x7fe5fce0c1e0) 0 empty + +Vtable for QLocalServer +QLocalServer::_ZTV12QLocalServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalServer) +16 (int (*)(...))QLocalServer::metaObject +24 (int (*)(...))QLocalServer::qt_metacast +32 (int (*)(...))QLocalServer::qt_metacall +40 (int (*)(...))QLocalServer::~QLocalServer +48 (int (*)(...))QLocalServer::~QLocalServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalServer::hasPendingConnections +120 (int (*)(...))QLocalServer::nextPendingConnection +128 (int (*)(...))QLocalServer::incomingConnection + +Class QLocalServer + size=16 align=8 + base size=16 base align=8 +QLocalServer (0x0x7fe5fd102a28) 0 + vptr=((& QLocalServer::_ZTV12QLocalServer) + 16u) + QObject (0x0x7fe5fce0c180) 0 + primary-for QLocalServer (0x0x7fe5fd102a28) + +Class QLocalSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalSocket::QPrivateSignal (0x0x7fe5fce0c3c0) 0 empty + +Vtable for QLocalSocket +QLocalSocket::_ZTV12QLocalSocket: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalSocket) +16 (int (*)(...))QLocalSocket::metaObject +24 (int (*)(...))QLocalSocket::qt_metacast +32 (int (*)(...))QLocalSocket::qt_metacall +40 (int (*)(...))QLocalSocket::~QLocalSocket +48 (int (*)(...))QLocalSocket::~QLocalSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalSocket::isSequential +120 (int (*)(...))QLocalSocket::open +128 (int (*)(...))QLocalSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QLocalSocket::bytesAvailable +184 (int (*)(...))QLocalSocket::bytesToWrite +192 (int (*)(...))QLocalSocket::canReadLine +200 (int (*)(...))QLocalSocket::waitForReadyRead +208 (int (*)(...))QLocalSocket::waitForBytesWritten +216 (int (*)(...))QLocalSocket::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QLocalSocket::writeData + +Class QLocalSocket + size=16 align=8 + base size=16 base align=8 +QLocalSocket (0x0x7fe5fd102bc8) 0 + vptr=((& QLocalSocket::_ZTV12QLocalSocket) + 16u) + QIODevice (0x0x7fe5fd102c30) 0 + primary-for QLocalSocket (0x0x7fe5fd102bc8) + QObject (0x0x7fe5fce0c360) 0 + primary-for QIODevice (0x0x7fe5fd102c30) + +Class QTcpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpSocket::QPrivateSignal (0x0x7fe5fce0c480) 0 empty + +Vtable for QTcpSocket +QTcpSocket::_ZTV10QTcpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpSocket) +16 (int (*)(...))QTcpSocket::metaObject +24 (int (*)(...))QTcpSocket::qt_metacast +32 (int (*)(...))QTcpSocket::qt_metacall +40 (int (*)(...))QTcpSocket::~QTcpSocket +48 (int (*)(...))QTcpSocket::~QTcpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QTcpSocket + size=16 align=8 + base size=16 base align=8 +QTcpSocket (0x0x7fe5fd102c98) 0 + vptr=((& QTcpSocket::_ZTV10QTcpSocket) + 16u) + QAbstractSocket (0x0x7fe5fd102d00) 0 + primary-for QTcpSocket (0x0x7fe5fd102c98) + QIODevice (0x0x7fe5fd102d68) 0 + primary-for QAbstractSocket (0x0x7fe5fd102d00) + QObject (0x0x7fe5fce0c420) 0 + primary-for QIODevice (0x0x7fe5fd102d68) + +Class QSslCertificate + size=8 align=8 + base size=8 base align=8 +QSslCertificate (0x0x7fe5fce0c600) 0 + +Class QSslError + size=8 align=8 + base size=8 base align=8 +QSslError (0x0x7fe5fce0ca80) 0 + +Class QSslSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSslSocket::QPrivateSignal (0x0x7fe5fcf4e120) 0 empty + +Vtable for QSslSocket +QSslSocket::_ZTV10QSslSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSslSocket) +16 (int (*)(...))QSslSocket::metaObject +24 (int (*)(...))QSslSocket::qt_metacast +32 (int (*)(...))QSslSocket::qt_metacall +40 (int (*)(...))QSslSocket::~QSslSocket +48 (int (*)(...))QSslSocket::~QSslSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QSslSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QSslSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QSslSocket::bytesAvailable +184 (int (*)(...))QSslSocket::bytesToWrite +192 (int (*)(...))QSslSocket::canReadLine +200 (int (*)(...))QSslSocket::waitForReadyRead +208 (int (*)(...))QSslSocket::waitForBytesWritten +216 (int (*)(...))QSslSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QSslSocket::writeData +240 (int (*)(...))QSslSocket::resume +248 (int (*)(...))QSslSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QSslSocket::disconnectFromHost +272 (int (*)(...))QSslSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QSslSocket::setSocketDescriptor +296 (int (*)(...))QSslSocket::setSocketOption +304 (int (*)(...))QSslSocket::socketOption +312 (int (*)(...))QSslSocket::waitForConnected +320 (int (*)(...))QSslSocket::waitForDisconnected + +Class QSslSocket + size=16 align=8 + base size=16 base align=8 +QSslSocket (0x0x7fe5fcf18208) 0 + vptr=((& QSslSocket::_ZTV10QSslSocket) + 16u) + QTcpSocket (0x0x7fe5fcf18270) 0 + primary-for QSslSocket (0x0x7fe5fcf18208) + QAbstractSocket (0x0x7fe5fcf182d8) 0 + primary-for QTcpSocket (0x0x7fe5fcf18270) + QIODevice (0x0x7fe5fcf18340) 0 + primary-for QAbstractSocket (0x0x7fe5fcf182d8) + QObject (0x0x7fe5fcf4e0c0) 0 + primary-for QIODevice (0x0x7fe5fcf18340) + +Class QSslConfiguration + size=8 align=8 + base size=8 base align=8 +QSslConfiguration (0x0x7fe5fcf4e180) 0 + +Class QSslPreSharedKeyAuthenticator + size=8 align=8 + base size=8 base align=8 +QSslPreSharedKeyAuthenticator (0x0x7fe5fcf4e600) 0 + +Class QNetworkAccessManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkAccessManager::QPrivateSignal (0x0x7fe5fcf4ec00) 0 empty + +Vtable for QNetworkAccessManager +QNetworkAccessManager::_ZTV21QNetworkAccessManager: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QNetworkAccessManager) +16 (int (*)(...))QNetworkAccessManager::metaObject +24 (int (*)(...))QNetworkAccessManager::qt_metacast +32 (int (*)(...))QNetworkAccessManager::qt_metacall +40 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +48 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkAccessManager::createRequest + +Class QNetworkAccessManager + size=16 align=8 + base size=16 base align=8 +QNetworkAccessManager (0x0x7fe5fcf18618) 0 + vptr=((& QNetworkAccessManager::_ZTV21QNetworkAccessManager) + 16u) + QObject (0x0x7fe5fcf4eba0) 0 + primary-for QNetworkAccessManager (0x0x7fe5fcf18618) + +Class QNetworkConfiguration + size=8 align=8 + base size=8 base align=8 +QNetworkConfiguration (0x0x7fe5fcf4ec60) 0 + +Class QNetworkConfigurationManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkConfigurationManager::QPrivateSignal (0x0x7fe5fcc1f180) 0 empty + +Vtable for QNetworkConfigurationManager +QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QNetworkConfigurationManager) +16 (int (*)(...))QNetworkConfigurationManager::metaObject +24 (int (*)(...))QNetworkConfigurationManager::qt_metacast +32 (int (*)(...))QNetworkConfigurationManager::qt_metacall +40 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +48 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QNetworkConfigurationManager + size=16 align=8 + base size=16 base align=8 +QNetworkConfigurationManager (0x0x7fe5fcf187b8) 0 + vptr=((& QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager) + 16u) + QObject (0x0x7fe5fcc1f120) 0 + primary-for QNetworkConfigurationManager (0x0x7fe5fcf187b8) + +Class QNetworkCookie + size=8 align=8 + base size=8 base align=8 +QNetworkCookie (0x0x7fe5fcc1f420) 0 + +Class QNetworkCookieJar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkCookieJar::QPrivateSignal (0x0x7fe5fcc1f900) 0 empty + +Vtable for QNetworkCookieJar +QNetworkCookieJar::_ZTV17QNetworkCookieJar: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkCookieJar) +16 (int (*)(...))QNetworkCookieJar::metaObject +24 (int (*)(...))QNetworkCookieJar::qt_metacast +32 (int (*)(...))QNetworkCookieJar::qt_metacall +40 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +48 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkCookieJar::cookiesForUrl +120 (int (*)(...))QNetworkCookieJar::setCookiesFromUrl +128 (int (*)(...))QNetworkCookieJar::insertCookie +136 (int (*)(...))QNetworkCookieJar::updateCookie +144 (int (*)(...))QNetworkCookieJar::deleteCookie +152 (int (*)(...))QNetworkCookieJar::validateCookie + +Class QNetworkCookieJar + size=16 align=8 + base size=16 base align=8 +QNetworkCookieJar (0x0x7fe5fcf18af8) 0 + vptr=((& QNetworkCookieJar::_ZTV17QNetworkCookieJar) + 16u) + QObject (0x0x7fe5fcc1f8a0) 0 + primary-for QNetworkCookieJar (0x0x7fe5fcf18af8) + +Class QNetworkDatagram + size=8 align=8 + base size=8 base align=8 +QNetworkDatagram (0x0x7fe5fcc1f960) 0 + +Class QNetworkDiskCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkDiskCache::QPrivateSignal (0x0x7fe5fcd349c0) 0 empty + +Vtable for QNetworkDiskCache +QNetworkDiskCache::_ZTV17QNetworkDiskCache: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkDiskCache) +16 (int (*)(...))QNetworkDiskCache::metaObject +24 (int (*)(...))QNetworkDiskCache::qt_metacast +32 (int (*)(...))QNetworkDiskCache::qt_metacall +40 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +48 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkDiskCache::metaData +120 (int (*)(...))QNetworkDiskCache::updateMetaData +128 (int (*)(...))QNetworkDiskCache::data +136 (int (*)(...))QNetworkDiskCache::remove +144 (int (*)(...))QNetworkDiskCache::cacheSize +152 (int (*)(...))QNetworkDiskCache::prepare +160 (int (*)(...))QNetworkDiskCache::insert +168 (int (*)(...))QNetworkDiskCache::clear +176 (int (*)(...))QNetworkDiskCache::expire + +Class QNetworkDiskCache + size=16 align=8 + base size=16 base align=8 +QNetworkDiskCache (0x0x7fe5fcd3e4e0) 0 + vptr=((& QNetworkDiskCache::_ZTV17QNetworkDiskCache) + 16u) + QAbstractNetworkCache (0x0x7fe5fcd3e548) 0 + primary-for QNetworkDiskCache (0x0x7fe5fcd3e4e0) + QObject (0x0x7fe5fcd34960) 0 + primary-for QAbstractNetworkCache (0x0x7fe5fcd3e548) + +Class QNetworkAddressEntry + size=8 align=8 + base size=8 base align=8 +QNetworkAddressEntry (0x0x7fe5fcd34a20) 0 + +Class QNetworkInterface + size=8 align=8 + base size=8 base align=8 +QNetworkInterface (0x0x7fe5fcd34de0) 0 + +Class QNetworkProxyQuery + size=8 align=8 + base size=8 base align=8 +QNetworkProxyQuery (0x0x7fe5fc99f540) 0 + +Class QNetworkProxy + size=8 align=8 + base size=8 base align=8 +QNetworkProxy (0x0x7fe5fc99f8a0) 0 + +Vtable for QNetworkProxyFactory +QNetworkProxyFactory::_ZTV20QNetworkProxyFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QNetworkProxyFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QNetworkProxyFactory + size=8 align=8 + base size=8 base align=8 +QNetworkProxyFactory (0x0x7fe5fc99fd20) 0 nearly-empty + vptr=((& QNetworkProxyFactory::_ZTV20QNetworkProxyFactory) + 16u) + +Class QNetworkReply::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkReply::QPrivateSignal (0x0x7fe5fc99ff00) 0 empty + +Vtable for QNetworkReply +QNetworkReply::_ZTV13QNetworkReply: 36u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QNetworkReply) +16 (int (*)(...))QNetworkReply::metaObject +24 (int (*)(...))QNetworkReply::qt_metacast +32 (int (*)(...))QNetworkReply::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkReply::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QNetworkReply::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QNetworkReply::writeData +240 (int (*)(...))QNetworkReply::setReadBufferSize +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))QNetworkReply::ignoreSslErrors +264 (int (*)(...))QNetworkReply::sslConfigurationImplementation +272 (int (*)(...))QNetworkReply::setSslConfigurationImplementation +280 (int (*)(...))QNetworkReply::ignoreSslErrorsImplementation + +Class QNetworkReply + size=16 align=8 + base size=16 base align=8 +QNetworkReply (0x0x7fe5fcd3ec30) 0 + vptr=((& QNetworkReply::_ZTV13QNetworkReply) + 16u) + QIODevice (0x0x7fe5fcd3ec98) 0 + primary-for QNetworkReply (0x0x7fe5fcd3ec30) + QObject (0x0x7fe5fc99fea0) 0 + primary-for QIODevice (0x0x7fe5fcd3ec98) + +Class QNetworkSession::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkSession::QPrivateSignal (0x0x7fe5fca95120) 0 empty + +Vtable for QNetworkSession +QNetworkSession::_ZTV15QNetworkSession: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QNetworkSession) +16 (int (*)(...))QNetworkSession::metaObject +24 (int (*)(...))QNetworkSession::qt_metacast +32 (int (*)(...))QNetworkSession::qt_metacall +40 (int (*)(...))QNetworkSession::~QNetworkSession +48 (int (*)(...))QNetworkSession::~QNetworkSession +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QNetworkSession::connectNotify +104 (int (*)(...))QNetworkSession::disconnectNotify + +Class QNetworkSession + size=24 align=8 + base size=24 base align=8 +QNetworkSession (0x0x7fe5fcd3ed00) 0 + vptr=((& QNetworkSession::_ZTV15QNetworkSession) + 16u) + QObject (0x0x7fe5fca950c0) 0 + primary-for QNetworkSession (0x0x7fe5fcd3ed00) + +Class QTcpServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpServer::QPrivateSignal (0x0x7fe5fca95660) 0 empty + +Vtable for QTcpServer +QTcpServer::_ZTV10QTcpServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpServer) +16 (int (*)(...))QTcpServer::metaObject +24 (int (*)(...))QTcpServer::qt_metacast +32 (int (*)(...))QTcpServer::qt_metacall +40 (int (*)(...))QTcpServer::~QTcpServer +48 (int (*)(...))QTcpServer::~QTcpServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTcpServer::hasPendingConnections +120 (int (*)(...))QTcpServer::nextPendingConnection +128 (int (*)(...))QTcpServer::incomingConnection + +Class QTcpServer + size=16 align=8 + base size=16 base align=8 +QTcpServer (0x0x7fe5fcd3ee38) 0 + vptr=((& QTcpServer::_ZTV10QTcpServer) + 16u) + QObject (0x0x7fe5fca95600) 0 + primary-for QTcpServer (0x0x7fe5fcd3ee38) + +Class QSslCertificateExtension + size=8 align=8 + base size=8 base align=8 +QSslCertificateExtension (0x0x7fe5fca956c0) 0 + +Class QSslCipher + size=8 align=8 + base size=8 base align=8 +QSslCipher (0x0x7fe5fca95a20) 0 + +Class QSslDiffieHellmanParameters + size=8 align=8 + base size=8 base align=8 +QSslDiffieHellmanParameters (0x0x7fe5fca95de0) 0 + +Class QSslEllipticCurve + size=4 align=4 + base size=4 base align=4 +QSslEllipticCurve (0x0x7fe5fc7aba80) 0 + +Class QSslKey + size=8 align=8 + base size=8 base align=8 +QSslKey (0x0x7fe5fc7abea0) 0 + +Class QUdpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUdpSocket::QPrivateSignal (0x0x7fe5fc7f92a0) 0 empty + +Vtable for QUdpSocket +QUdpSocket::_ZTV10QUdpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUdpSocket) +16 (int (*)(...))QUdpSocket::metaObject +24 (int (*)(...))QUdpSocket::qt_metacast +32 (int (*)(...))QUdpSocket::qt_metacall +40 (int (*)(...))QUdpSocket::~QUdpSocket +48 (int (*)(...))QUdpSocket::~QUdpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QUdpSocket + size=16 align=8 + base size=16 base align=8 +QUdpSocket (0x0x7fe5fc7b88f0) 0 + vptr=((& QUdpSocket::_ZTV10QUdpSocket) + 16u) + QAbstractSocket (0x0x7fe5fc7b8958) 0 + primary-for QUdpSocket (0x0x7fe5fc7b88f0) + QIODevice (0x0x7fe5fc7b89c0) 0 + primary-for QAbstractSocket (0x0x7fe5fc7b8958) + QObject (0x0x7fe5fc7f9240) 0 + primary-for QIODevice (0x0x7fe5fc7b89c0) + +Class QJSValue + size=8 align=8 + base size=8 base align=8 +QJSValue (0x0x7fe5fc7f9300) 0 + +Class QJSEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QJSEngine::QPrivateSignal (0x0x7fe5fc7f9600) 0 empty + +Vtable for QJSEngine +QJSEngine::_ZTV9QJSEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QJSEngine) +16 (int (*)(...))QJSEngine::metaObject +24 (int (*)(...))QJSEngine::qt_metacast +32 (int (*)(...))QJSEngine::qt_metacall +40 (int (*)(...))QJSEngine::~QJSEngine +48 (int (*)(...))QJSEngine::~QJSEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QJSEngine + size=24 align=8 + base size=24 base align=8 +QJSEngine (0x0x7fe5fc7b8af8) 0 + vptr=((& QJSEngine::_ZTV9QJSEngine) + 16u) + QObject (0x0x7fe5fc7f95a0) 0 + primary-for QJSEngine (0x0x7fe5fc7b8af8) + +Class QJSValueIterator + size=8 align=8 + base size=8 base align=8 +QJSValueIterator (0x0x7fe5fc7f9780) 0 + +Class QQmlPrivate::RegisterType + size=128 align=8 + base size=124 base align=8 +QQmlPrivate::RegisterType (0x0x7fe5fc7f9c60) 0 + +Class QQmlPrivate::RegisterInterface + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::RegisterInterface (0x0x7fe5fc7f9cc0) 0 + +Class QQmlPrivate::RegisterAutoParent + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterAutoParent (0x0x7fe5fc7f9d20) 0 + +Class QQmlPrivate::RegisterSingletonType + size=64 align=8 + base size=64 base align=8 +QQmlPrivate::RegisterSingletonType (0x0x7fe5fc7f9d80) 0 + +Class QQmlPrivate::RegisterCompositeType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeType (0x0x7fe5fc7f9de0) 0 + +Class QQmlPrivate::RegisterCompositeSingletonType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeSingletonType (0x0x7fe5fc7f9e40) 0 + +Class QQmlPrivate::CachedQmlUnit + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::CachedQmlUnit (0x0x7fe5fc7f9ea0) 0 + +Class QQmlPrivate::RegisterQmlUnitCacheHook + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterQmlUnitCacheHook (0x0x7fe5fc7f9f00) 0 + +Vtable for QQmlParserStatus +QQmlParserStatus::_ZTV16QQmlParserStatus: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlParserStatus) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlParserStatus + size=16 align=8 + base size=16 base align=8 +QQmlParserStatus (0x0x7fe5fc7f9f60) 0 + vptr=((& QQmlParserStatus::_ZTV16QQmlParserStatus) + 16u) + +Vtable for QQmlPropertyValueSource +QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QQmlPropertyValueSource) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlPropertyValueSource + size=8 align=8 + base size=8 base align=8 +QQmlPropertyValueSource (0x0x7fe5fc8e4060) 0 nearly-empty + vptr=((& QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource) + 16u) + +Class QQmlListReference + size=8 align=8 + base size=8 base align=8 +QQmlListReference (0x0x7fe5fc8e4180) 0 + +Vtable for QQmlAbstractUrlInterceptor +QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QQmlAbstractUrlInterceptor) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlAbstractUrlInterceptor + size=8 align=8 + base size=8 base align=8 +QQmlAbstractUrlInterceptor (0x0x7fe5fc8e47e0) 0 nearly-empty + vptr=((& QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor) + 16u) + +Class QQmlError + size=8 align=8 + base size=8 base align=8 +QQmlError (0x0x7fe5fc8e4840) 0 + +Class QQmlDebuggingEnabler + size=1 align=1 + base size=0 base align=1 +QQmlDebuggingEnabler (0x0x7fe5fc8e4b40) 0 empty + +Vtable for QQmlImageProviderBase +QQmlImageProviderBase::_ZTV21QQmlImageProviderBase: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlImageProviderBase) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlImageProviderBase + size=8 align=8 + base size=8 base align=8 +QQmlImageProviderBase (0x0x7fe5fc8e4ba0) 0 nearly-empty + vptr=((& QQmlImageProviderBase::_ZTV21QQmlImageProviderBase) + 16u) + +Class QQmlEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlEngine::QPrivateSignal (0x0x7fe5fc8e4d80) 0 empty + +Vtable for QQmlEngine +QQmlEngine::_ZTV10QQmlEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQmlEngine) +16 (int (*)(...))QQmlEngine::metaObject +24 (int (*)(...))QQmlEngine::qt_metacast +32 (int (*)(...))QQmlEngine::qt_metacall +40 (int (*)(...))QQmlEngine::~QQmlEngine +48 (int (*)(...))QQmlEngine::~QQmlEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlEngine + size=24 align=8 + base size=24 base align=8 +QQmlEngine (0x0x7fe5fc5e30d0) 0 + vptr=((& QQmlEngine::_ZTV10QQmlEngine) + 16u) + QJSEngine (0x0x7fe5fc5e3138) 0 + primary-for QQmlEngine (0x0x7fe5fc5e30d0) + QObject (0x0x7fe5fc8e4d20) 0 + primary-for QJSEngine (0x0x7fe5fc5e3138) + +Class QQmlApplicationEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlApplicationEngine::QPrivateSignal (0x0x7fe5fc8e4e40) 0 empty + +Vtable for QQmlApplicationEngine +QQmlApplicationEngine::_ZTV21QQmlApplicationEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlApplicationEngine) +16 (int (*)(...))QQmlApplicationEngine::metaObject +24 (int (*)(...))QQmlApplicationEngine::qt_metacast +32 (int (*)(...))QQmlApplicationEngine::qt_metacall +40 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +48 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlApplicationEngine + size=24 align=8 + base size=24 base align=8 +QQmlApplicationEngine (0x0x7fe5fc5e31a0) 0 + vptr=((& QQmlApplicationEngine::_ZTV21QQmlApplicationEngine) + 16u) + QQmlEngine (0x0x7fe5fc5e3208) 0 + primary-for QQmlApplicationEngine (0x0x7fe5fc5e31a0) + QJSEngine (0x0x7fe5fc5e3270) 0 + primary-for QQmlEngine (0x0x7fe5fc5e3208) + QObject (0x0x7fe5fc8e4de0) 0 + primary-for QJSEngine (0x0x7fe5fc5e3270) + +Class QQmlComponent::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlComponent::QPrivateSignal (0x0x7fe5fc8e4f00) 0 empty + +Vtable for QQmlComponent +QQmlComponent::_ZTV13QQmlComponent: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlComponent) +16 (int (*)(...))QQmlComponent::metaObject +24 (int (*)(...))QQmlComponent::qt_metacast +32 (int (*)(...))QQmlComponent::qt_metacall +40 (int (*)(...))QQmlComponent::~QQmlComponent +48 (int (*)(...))QQmlComponent::~QQmlComponent +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlComponent::create +120 (int (*)(...))QQmlComponent::beginCreate +128 (int (*)(...))QQmlComponent::completeCreate + +Class QQmlComponent + size=16 align=8 + base size=16 base align=8 +QQmlComponent (0x0x7fe5fc5e32d8) 0 + vptr=((& QQmlComponent::_ZTV13QQmlComponent) + 16u) + QObject (0x0x7fe5fc8e4ea0) 0 + primary-for QQmlComponent (0x0x7fe5fc5e32d8) + +Class QQmlContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlContext::QPrivateSignal (0x0x7fe5fc662480) 0 empty + +Vtable for QQmlContext +QQmlContext::_ZTV11QQmlContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QQmlContext) +16 (int (*)(...))QQmlContext::metaObject +24 (int (*)(...))QQmlContext::qt_metacast +32 (int (*)(...))QQmlContext::qt_metacall +40 (int (*)(...))QQmlContext::~QQmlContext +48 (int (*)(...))QQmlContext::~QQmlContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlContext + size=16 align=8 + base size=16 base align=8 +QQmlContext (0x0x7fe5fc5e3410) 0 + vptr=((& QQmlContext::_ZTV11QQmlContext) + 16u) + QObject (0x0x7fe5fc662420) 0 + primary-for QQmlContext (0x0x7fe5fc5e3410) + +Class QQmlScriptString + size=8 align=8 + base size=8 base align=8 +QQmlScriptString (0x0x7fe5fc662600) 0 + +Class QQmlExpression::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExpression::QPrivateSignal (0x0x7fe5fc662840) 0 empty + +Vtable for QQmlExpression +QQmlExpression::_ZTV14QQmlExpression: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QQmlExpression) +16 (int (*)(...))QQmlExpression::metaObject +24 (int (*)(...))QQmlExpression::qt_metacast +32 (int (*)(...))QQmlExpression::qt_metacall +40 (int (*)(...))QQmlExpression::~QQmlExpression +48 (int (*)(...))QQmlExpression::~QQmlExpression +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlExpression + size=16 align=8 + base size=16 base align=8 +QQmlExpression (0x0x7fe5fc5e3478) 0 + vptr=((& QQmlExpression::_ZTV14QQmlExpression) + 16u) + QObject (0x0x7fe5fc6627e0) 0 + primary-for QQmlExpression (0x0x7fe5fc5e3478) + +Vtable for QQmlTypesExtensionInterface +QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QQmlTypesExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlTypesExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlTypesExtensionInterface (0x0x7fe5fc6628a0) 0 nearly-empty + vptr=((& QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface) + 16u) + +Vtable for QQmlExtensionInterface +QQmlExtensionInterface::_ZTV22QQmlExtensionInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QQmlExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlExtensionInterface (0x0x7fe5fc5e34e0) 0 nearly-empty + vptr=((& QQmlExtensionInterface::_ZTV22QQmlExtensionInterface) + 16u) + QQmlTypesExtensionInterface (0x0x7fe5fc662900) 0 nearly-empty + primary-for QQmlExtensionInterface (0x0x7fe5fc5e34e0) + +Class QQmlExtensionPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExtensionPlugin::QPrivateSignal (0x0x7fe5fc662ae0) 0 empty + +Vtable for QQmlExtensionPlugin +QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +16 (int (*)(...))QQmlExtensionPlugin::metaObject +24 (int (*)(...))QQmlExtensionPlugin::qt_metacast +32 (int (*)(...))QQmlExtensionPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QQmlExtensionPlugin::initializeEngine +128 (int (*)(...))-16 +136 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +144 0u +152 0u +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QQmlExtensionPlugin::_ZThn16_N19QQmlExtensionPlugin16initializeEngineEP10QQmlEnginePKc + +Class QQmlExtensionPlugin + size=24 align=8 + base size=24 base align=8 +QQmlExtensionPlugin (0x0x7fe5fc6d6460) 0 + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 16u) + QObject (0x0x7fe5fc662a20) 0 + primary-for QQmlExtensionPlugin (0x0x7fe5fc6d6460) + QQmlExtensionInterface (0x0x7fe5fc5e3548) 16 nearly-empty + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 144u) + QQmlTypesExtensionInterface (0x0x7fe5fc662a80) 16 nearly-empty + primary-for QQmlExtensionInterface (0x0x7fe5fc5e3548) + +Class QQmlFile + size=8 align=8 + base size=8 base align=8 +QQmlFile (0x0x7fe5fc662b40) 0 + +Class QQmlFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlFileSelector::QPrivateSignal (0x0x7fe5fc662c00) 0 empty + +Vtable for QQmlFileSelector +QQmlFileSelector::_ZTV16QQmlFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlFileSelector) +16 (int (*)(...))QQmlFileSelector::metaObject +24 (int (*)(...))QQmlFileSelector::qt_metacast +32 (int (*)(...))QQmlFileSelector::qt_metacall +40 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +48 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlFileSelector + size=16 align=8 + base size=16 base align=8 +QQmlFileSelector (0x0x7fe5fc5e3618) 0 + vptr=((& QQmlFileSelector::_ZTV16QQmlFileSelector) + 16u) + QObject (0x0x7fe5fc662ba0) 0 + primary-for QQmlFileSelector (0x0x7fe5fc5e3618) + +Vtable for QQmlIncubator +QQmlIncubator::_ZTV13QQmlIncubator: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlIncubator) +16 (int (*)(...))QQmlIncubator::~QQmlIncubator +24 (int (*)(...))QQmlIncubator::~QQmlIncubator +32 (int (*)(...))QQmlIncubator::statusChanged +40 (int (*)(...))QQmlIncubator::setInitialState + +Class QQmlIncubator + size=16 align=8 + base size=16 base align=8 +QQmlIncubator (0x0x7fe5fc662c60) 0 + vptr=((& QQmlIncubator::_ZTV13QQmlIncubator) + 16u) + +Vtable for QQmlIncubationController +QQmlIncubationController::_ZTV24QQmlIncubationController: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QQmlIncubationController) +16 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +24 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +32 (int (*)(...))QQmlIncubationController::incubatingObjectCountChanged + +Class QQmlIncubationController + size=16 align=8 + base size=16 base align=8 +QQmlIncubationController (0x0x7fe5fc662cc0) 0 + vptr=((& QQmlIncubationController::_ZTV24QQmlIncubationController) + 16u) + +Class QQmlInfo + size=16 align=8 + base size=16 base align=8 +QQmlInfo (0x0x7fe5fc5e3680) 0 + QDebug (0x0x7fe5fc662d20) 0 + +Vtable for QQmlNetworkAccessManagerFactory +QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QQmlNetworkAccessManagerFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlNetworkAccessManagerFactory + size=8 align=8 + base size=8 base align=8 +QQmlNetworkAccessManagerFactory (0x0x7fe5fc662de0) 0 nearly-empty + vptr=((& QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory) + 16u) + +Class QQmlProperty + size=8 align=8 + base size=8 base align=8 +QQmlProperty (0x0x7fe5fc662e40) 0 + +Class QQmlPropertyMap::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlPropertyMap::QPrivateSignal (0x0x7fe5fc75f1e0) 0 empty + +Vtable for QQmlPropertyMap +QQmlPropertyMap::_ZTV15QQmlPropertyMap: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QQmlPropertyMap) +16 (int (*)(...))QQmlPropertyMap::metaObject +24 (int (*)(...))QQmlPropertyMap::qt_metacast +32 (int (*)(...))QQmlPropertyMap::qt_metacall +40 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +48 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlPropertyMap::updateValue + +Class QQmlPropertyMap + size=16 align=8 + base size=16 base align=8 +QQmlPropertyMap (0x0x7fe5fc5e3888) 0 + vptr=((& QQmlPropertyMap::_ZTV15QQmlPropertyMap) + 16u) + QObject (0x0x7fe5fc75f180) 0 + primary-for QQmlPropertyMap (0x0x7fe5fc5e3888) + +Class QQuickTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickTransform::QPrivateSignal (0x0x7fe5fc75f2a0) 0 empty + +Vtable for QQuickTransform +QQuickTransform::_ZTV15QQuickTransform: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QQuickTransform) +16 (int (*)(...))QQuickTransform::metaObject +24 (int (*)(...))QQuickTransform::qt_metacast +32 (int (*)(...))QQuickTransform::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QQuickTransform + size=16 align=8 + base size=16 base align=8 +QQuickTransform (0x0x7fe5fc5e3958) 0 + vptr=((& QQuickTransform::_ZTV15QQuickTransform) + 16u) + QObject (0x0x7fe5fc75f240) 0 + primary-for QQuickTransform (0x0x7fe5fc5e3958) + +Class QQuickItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickItem::QPrivateSignal (0x0x7fe5fc75f3c0) 0 empty + +Class QQuickItem::ItemChangeData + size=8 align=8 + base size=8 base align=8 +QQuickItem::ItemChangeData (0x0x7fe5fc75f420) 0 + +Class QQuickItem::UpdatePaintNodeData + size=8 align=8 + base size=8 base align=8 +QQuickItem::UpdatePaintNodeData (0x0x7fe5fc75f480) 0 + +Vtable for QQuickItem +QQuickItem::_ZTV10QQuickItem: 55u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQuickItem) +16 (int (*)(...))QQuickItem::metaObject +24 (int (*)(...))QQuickItem::qt_metacast +32 (int (*)(...))QQuickItem::qt_metacall +40 (int (*)(...))QQuickItem::~QQuickItem +48 (int (*)(...))QQuickItem::~QQuickItem +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickItem::isTextureProvider +152 (int (*)(...))QQuickItem::textureProvider +160 (int (*)(...))QQuickItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickItem::geometryChanged +368 (int (*)(...))QQuickItem::updatePaintNode +376 (int (*)(...))QQuickItem::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))-16 +400 (int (*)(...))(& _ZTI10QQuickItem) +408 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItemD1Ev +416 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItemD0Ev +424 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickItem + size=32 align=8 + base size=32 base align=8 +QQuickItem (0x0x7fe5fc7708c0) 0 + vptr=((& QQuickItem::_ZTV10QQuickItem) + 16u) + QObject (0x0x7fe5fc75f300) 0 + primary-for QQuickItem (0x0x7fe5fc7708c0) + QQmlParserStatus (0x0x7fe5fc75f360) 16 + vptr=((& QQuickItem::_ZTV10QQuickItem) + 408u) + +Class QQuickFramebufferObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickFramebufferObject::QPrivateSignal (0x0x7fe5fc75fc00) 0 empty + +Vtable for QQuickFramebufferObject::Renderer +QQuickFramebufferObject::Renderer::_ZTVN23QQuickFramebufferObject8RendererE: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN23QQuickFramebufferObject8RendererE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QQuickFramebufferObject::Renderer::createFramebufferObject +48 (int (*)(...))QQuickFramebufferObject::Renderer::synchronize + +Class QQuickFramebufferObject::Renderer + size=16 align=8 + base size=16 base align=8 +QQuickFramebufferObject::Renderer (0x0x7fe5fc75fc60) 0 + vptr=((& QQuickFramebufferObject::Renderer::_ZTVN23QQuickFramebufferObject8RendererE) + 16u) + +Vtable for QQuickFramebufferObject +QQuickFramebufferObject::_ZTV23QQuickFramebufferObject: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QQuickFramebufferObject) +16 (int (*)(...))QQuickFramebufferObject::metaObject +24 (int (*)(...))QQuickFramebufferObject::qt_metacast +32 (int (*)(...))QQuickFramebufferObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickFramebufferObject::isTextureProvider +152 (int (*)(...))QQuickFramebufferObject::textureProvider +160 (int (*)(...))QQuickItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickFramebufferObject::geometryChanged +368 (int (*)(...))QQuickFramebufferObject::updatePaintNode +376 (int (*)(...))QQuickFramebufferObject::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))-16 +408 (int (*)(...))(& _ZTI23QQuickFramebufferObject) +416 0u +424 0u +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +440 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickFramebufferObject + size=32 align=8 + base size=32 base align=8 +QQuickFramebufferObject (0x0x7fe5fc5e3a90) 0 + vptr=((& QQuickFramebufferObject::_ZTV23QQuickFramebufferObject) + 16u) + QQuickItem (0x0x7fe5fc43a000) 0 + primary-for QQuickFramebufferObject (0x0x7fe5fc5e3a90) + QObject (0x0x7fe5fc75fb40) 0 + primary-for QQuickItem (0x0x7fe5fc43a000) + QQmlParserStatus (0x0x7fe5fc75fba0) 16 + vptr=((& QQuickFramebufferObject::_ZTV23QQuickFramebufferObject) + 416u) + +Vtable for QQuickTextureFactory +QQuickTextureFactory::_ZTV20QQuickTextureFactory: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QQuickTextureFactory) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QQuickTextureFactory::image + +Class QQuickTextureFactory + size=16 align=8 + base size=16 base align=8 +QQuickTextureFactory (0x0x7fe5fc5e3af8) 0 + vptr=((& QQuickTextureFactory::_ZTV20QQuickTextureFactory) + 16u) + QObject (0x0x7fe5fc75fcc0) 0 + primary-for QQuickTextureFactory (0x0x7fe5fc5e3af8) + +Class QQuickImageResponse::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickImageResponse::QPrivateSignal (0x0x7fe5fc75fd80) 0 empty + +Vtable for QQuickImageResponse +QQuickImageResponse::_ZTV19QQuickImageResponse: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickImageResponse) +16 (int (*)(...))QQuickImageResponse::metaObject +24 (int (*)(...))QQuickImageResponse::qt_metacast +32 (int (*)(...))QQuickImageResponse::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QQuickImageResponse::errorString +128 (int (*)(...))QQuickImageResponse::cancel + +Class QQuickImageResponse + size=16 align=8 + base size=16 base align=8 +QQuickImageResponse (0x0x7fe5fc5e3b60) 0 + vptr=((& QQuickImageResponse::_ZTV19QQuickImageResponse) + 16u) + QObject (0x0x7fe5fc75fd20) 0 + primary-for QQuickImageResponse (0x0x7fe5fc5e3b60) + +Vtable for QQuickImageProvider +QQuickImageProvider::_ZTV19QQuickImageProvider: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickImageProvider) +16 (int (*)(...))QQuickImageProvider::~QQuickImageProvider +24 (int (*)(...))QQuickImageProvider::~QQuickImageProvider +32 (int (*)(...))QQuickImageProvider::imageType +40 (int (*)(...))QQuickImageProvider::flags +48 (int (*)(...))QQuickImageProvider::requestImage +56 (int (*)(...))QQuickImageProvider::requestPixmap +64 (int (*)(...))QQuickImageProvider::requestTexture + +Class QQuickImageProvider + size=16 align=8 + base size=16 base align=8 +QQuickImageProvider (0x0x7fe5fc5e3bc8) 0 + vptr=((& QQuickImageProvider::_ZTV19QQuickImageProvider) + 16u) + QQmlImageProviderBase (0x0x7fe5fc75fde0) 0 nearly-empty + primary-for QQuickImageProvider (0x0x7fe5fc5e3bc8) + +Vtable for QQuickAsyncImageProvider +QQuickAsyncImageProvider::_ZTV24QQuickAsyncImageProvider: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QQuickAsyncImageProvider) +16 0u +24 0u +32 (int (*)(...))QQuickImageProvider::imageType +40 (int (*)(...))QQuickImageProvider::flags +48 (int (*)(...))QQuickImageProvider::requestImage +56 (int (*)(...))QQuickImageProvider::requestPixmap +64 (int (*)(...))QQuickImageProvider::requestTexture +72 (int (*)(...))__cxa_pure_virtual + +Class QQuickAsyncImageProvider + size=24 align=8 + base size=24 base align=8 +QQuickAsyncImageProvider (0x0x7fe5fc5e3c30) 0 + vptr=((& QQuickAsyncImageProvider::_ZTV24QQuickAsyncImageProvider) + 16u) + QQuickImageProvider (0x0x7fe5fc5e3c98) 0 + primary-for QQuickAsyncImageProvider (0x0x7fe5fc5e3c30) + QQmlImageProviderBase (0x0x7fe5fc75fe40) 0 nearly-empty + primary-for QQuickImageProvider (0x0x7fe5fc5e3c98) + +Class QQuickItemGrabResult::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickItemGrabResult::QPrivateSignal (0x0x7fe5fc75ff00) 0 empty + +Vtable for QQuickItemGrabResult +QQuickItemGrabResult::_ZTV20QQuickItemGrabResult: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QQuickItemGrabResult) +16 (int (*)(...))QQuickItemGrabResult::metaObject +24 (int (*)(...))QQuickItemGrabResult::qt_metacast +32 (int (*)(...))QQuickItemGrabResult::qt_metacall +40 (int (*)(...))QQuickItemGrabResult::~QQuickItemGrabResult +48 (int (*)(...))QQuickItemGrabResult::~QQuickItemGrabResult +56 (int (*)(...))QQuickItemGrabResult::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQuickItemGrabResult + size=16 align=8 + base size=16 base align=8 +QQuickItemGrabResult (0x0x7fe5fc5e3d00) 0 + vptr=((& QQuickItemGrabResult::_ZTV20QQuickItemGrabResult) + 16u) + QObject (0x0x7fe5fc75fea0) 0 + primary-for QQuickItemGrabResult (0x0x7fe5fc5e3d00) + +Class QQuickPaintedItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickPaintedItem::QPrivateSignal (0x0x7fe5fc47b060) 0 empty + +Vtable for QQuickPaintedItem +QQuickPaintedItem::_ZTV17QQuickPaintedItem: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QQuickPaintedItem) +16 (int (*)(...))QQuickPaintedItem::metaObject +24 (int (*)(...))QQuickPaintedItem::qt_metacast +32 (int (*)(...))QQuickPaintedItem::qt_metacall +40 0u +48 0u +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickPaintedItem::isTextureProvider +152 (int (*)(...))QQuickPaintedItem::textureProvider +160 (int (*)(...))QQuickPaintedItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickItem::geometryChanged +368 (int (*)(...))QQuickPaintedItem::updatePaintNode +376 (int (*)(...))QQuickPaintedItem::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))-16 +408 (int (*)(...))(& _ZTI17QQuickPaintedItem) +416 0u +424 0u +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +440 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickPaintedItem + size=32 align=8 + base size=32 base align=8 +QQuickPaintedItem (0x0x7fe5fc5e3d68) 0 + vptr=((& QQuickPaintedItem::_ZTV17QQuickPaintedItem) + 16u) + QQuickItem (0x0x7fe5fc467770) 0 + primary-for QQuickPaintedItem (0x0x7fe5fc5e3d68) + QObject (0x0x7fe5fc75ff60) 0 + primary-for QQuickItem (0x0x7fe5fc467770) + QQmlParserStatus (0x0x7fe5fc47b000) 16 + vptr=((& QQuickPaintedItem::_ZTV17QQuickPaintedItem) + 416u) + +Class QQuickRenderControl::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickRenderControl::QPrivateSignal (0x0x7fe5fc47b240) 0 empty + +Vtable for QQuickRenderControl +QQuickRenderControl::_ZTV19QQuickRenderControl: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickRenderControl) +16 (int (*)(...))QQuickRenderControl::metaObject +24 (int (*)(...))QQuickRenderControl::qt_metacast +32 (int (*)(...))QQuickRenderControl::qt_metacall +40 (int (*)(...))QQuickRenderControl::~QQuickRenderControl +48 (int (*)(...))QQuickRenderControl::~QQuickRenderControl +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickRenderControl::renderWindow + +Class QQuickRenderControl + size=16 align=8 + base size=16 base align=8 +QQuickRenderControl (0x0x7fe5fc5e3f08) 0 + vptr=((& QQuickRenderControl::_ZTV19QQuickRenderControl) + 16u) + QObject (0x0x7fe5fc47b1e0) 0 + primary-for QQuickRenderControl (0x0x7fe5fc5e3f08) + +Class QQuickTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickTextDocument::QPrivateSignal (0x0x7fe5fc47b300) 0 empty + +Vtable for QQuickTextDocument +QQuickTextDocument::_ZTV18QQuickTextDocument: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QQuickTextDocument) +16 (int (*)(...))QQuickTextDocument::metaObject +24 (int (*)(...))QQuickTextDocument::qt_metacast +32 (int (*)(...))QQuickTextDocument::qt_metacall +40 (int (*)(...))QQuickTextDocument::~QQuickTextDocument +48 (int (*)(...))QQuickTextDocument::~QQuickTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQuickTextDocument + size=16 align=8 + base size=16 base align=8 +QQuickTextDocument (0x0x7fe5fc5e3f70) 0 + vptr=((& QQuickTextDocument::_ZTV18QQuickTextDocument) + 16u) + QObject (0x0x7fe5fc47b2a0) 0 + primary-for QQuickTextDocument (0x0x7fe5fc5e3f70) + +Class QSGGeometry::Attribute + size=16 align=4 + base size=16 base align=4 +QSGGeometry::Attribute (0x0x7fe5fc47b660) 0 + +Class QSGGeometry::AttributeSet + size=16 align=8 + base size=16 base align=8 +QSGGeometry::AttributeSet (0x0x7fe5fc47b6c0) 0 + +Class QSGGeometry::Point2D + size=8 align=4 + base size=8 base align=4 +QSGGeometry::Point2D (0x0x7fe5fc47b720) 0 + +Class QSGGeometry::TexturedPoint2D + size=16 align=4 + base size=16 base align=4 +QSGGeometry::TexturedPoint2D (0x0x7fe5fc47b780) 0 + +Class QSGGeometry::ColoredPoint2D + size=12 align=4 + base size=12 base align=4 +QSGGeometry::ColoredPoint2D (0x0x7fe5fc47b7e0) 0 + +Vtable for QSGGeometry +QSGGeometry::_ZTV11QSGGeometry: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGGeometry) +16 (int (*)(...))QSGGeometry::~QSGGeometry +24 (int (*)(...))QSGGeometry::~QSGGeometry + +Class QSGGeometry + size=128 align=8 + base size=128 base align=8 +QSGGeometry (0x0x7fe5fc47b600) 0 + vptr=((& QSGGeometry::_ZTV11QSGGeometry) + 16u) + +Vtable for QSGNode +QSGNode::_ZTV7QSGNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSGNode) +16 (int (*)(...))QSGNode::~QSGNode +24 (int (*)(...))QSGNode::~QSGNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGNode + size=80 align=8 + base size=80 base align=8 +QSGNode (0x0x7fe5fc548b40) 0 + vptr=((& QSGNode::_ZTV7QSGNode) + 16u) + +Vtable for QSGBasicGeometryNode +QSGBasicGeometryNode::_ZTV20QSGBasicGeometryNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGBasicGeometryNode) +16 (int (*)(...))QSGBasicGeometryNode::~QSGBasicGeometryNode +24 (int (*)(...))QSGBasicGeometryNode::~QSGBasicGeometryNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGBasicGeometryNode + size=112 align=8 + base size=112 base align=8 +QSGBasicGeometryNode (0x0x7fe5fc528410) 0 + vptr=((& QSGBasicGeometryNode::_ZTV20QSGBasicGeometryNode) + 16u) + QSGNode (0x0x7fe5fc548e40) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fc528410) + +Vtable for QSGGeometryNode +QSGGeometryNode::_ZTV15QSGGeometryNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSGGeometryNode) +16 (int (*)(...))QSGGeometryNode::~QSGGeometryNode +24 (int (*)(...))QSGGeometryNode::~QSGGeometryNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGGeometryNode + size=144 align=8 + base size=144 base align=8 +QSGGeometryNode (0x0x7fe5fc528478) 0 + vptr=((& QSGGeometryNode::_ZTV15QSGGeometryNode) + 16u) + QSGBasicGeometryNode (0x0x7fe5fc5284e0) 0 + primary-for QSGGeometryNode (0x0x7fe5fc528478) + QSGNode (0x0x7fe5fc548ea0) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fc5284e0) + +Vtable for QSGClipNode +QSGClipNode::_ZTV11QSGClipNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGClipNode) +16 (int (*)(...))QSGClipNode::~QSGClipNode +24 (int (*)(...))QSGClipNode::~QSGClipNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGClipNode + size=152 align=8 + base size=152 base align=8 +QSGClipNode (0x0x7fe5fc528548) 0 + vptr=((& QSGClipNode::_ZTV11QSGClipNode) + 16u) + QSGBasicGeometryNode (0x0x7fe5fc5285b0) 0 + primary-for QSGClipNode (0x0x7fe5fc528548) + QSGNode (0x0x7fe5fc548f00) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fc5285b0) + +Vtable for QSGTransformNode +QSGTransformNode::_ZTV16QSGTransformNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGTransformNode) +16 (int (*)(...))QSGTransformNode::~QSGTransformNode +24 (int (*)(...))QSGTransformNode::~QSGTransformNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGTransformNode + size=216 align=8 + base size=216 base align=8 +QSGTransformNode (0x0x7fe5fc528618) 0 + vptr=((& QSGTransformNode::_ZTV16QSGTransformNode) + 16u) + QSGNode (0x0x7fe5fc548f60) 0 + primary-for QSGTransformNode (0x0x7fe5fc528618) + +Vtable for QSGRootNode +QSGRootNode::_ZTV11QSGRootNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGRootNode) +16 (int (*)(...))QSGRootNode::~QSGRootNode +24 (int (*)(...))QSGRootNode::~QSGRootNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGRootNode + size=88 align=8 + base size=88 base align=8 +QSGRootNode (0x0x7fe5fc528680) 0 + vptr=((& QSGRootNode::_ZTV11QSGRootNode) + 16u) + QSGNode (0x0x7fe5fc1db000) 0 + primary-for QSGRootNode (0x0x7fe5fc528680) + +Vtable for QSGOpacityNode +QSGOpacityNode::_ZTV14QSGOpacityNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSGOpacityNode) +16 (int (*)(...))QSGOpacityNode::~QSGOpacityNode +24 (int (*)(...))QSGOpacityNode::~QSGOpacityNode +32 (int (*)(...))QSGOpacityNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGOpacityNode + size=96 align=8 + base size=96 base align=8 +QSGOpacityNode (0x0x7fe5fc528820) 0 + vptr=((& QSGOpacityNode::_ZTV14QSGOpacityNode) + 16u) + QSGNode (0x0x7fe5fc1db180) 0 + primary-for QSGOpacityNode (0x0x7fe5fc528820) + +Vtable for QSGNodeVisitor +QSGNodeVisitor::_ZTV14QSGNodeVisitor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSGNodeVisitor) +16 (int (*)(...))QSGNodeVisitor::~QSGNodeVisitor +24 (int (*)(...))QSGNodeVisitor::~QSGNodeVisitor +32 (int (*)(...))QSGNodeVisitor::enterTransformNode +40 (int (*)(...))QSGNodeVisitor::leaveTransformNode +48 (int (*)(...))QSGNodeVisitor::enterClipNode +56 (int (*)(...))QSGNodeVisitor::leaveClipNode +64 (int (*)(...))QSGNodeVisitor::enterGeometryNode +72 (int (*)(...))QSGNodeVisitor::leaveGeometryNode +80 (int (*)(...))QSGNodeVisitor::enterOpacityNode +88 (int (*)(...))QSGNodeVisitor::leaveOpacityNode +96 (int (*)(...))QSGNodeVisitor::visitNode +104 (int (*)(...))QSGNodeVisitor::visitChildren + +Class QSGNodeVisitor + size=8 align=8 + base size=8 base align=8 +QSGNodeVisitor (0x0x7fe5fc1db1e0) 0 nearly-empty + vptr=((& QSGNodeVisitor::_ZTV14QSGNodeVisitor) + 16u) + +Vtable for QSGRendererInterface +QSGRendererInterface::_ZTV20QSGRendererInterface: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGRendererInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QSGRendererInterface::getResource +48 (int (*)(...))QSGRendererInterface::getResource +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QSGRendererInterface + size=8 align=8 + base size=8 base align=8 +QSGRendererInterface (0x0x7fe5fc1db240) 0 nearly-empty + vptr=((& QSGRendererInterface::_ZTV20QSGRendererInterface) + 16u) + +Class QQuickWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickWindow::QPrivateSignal (0x0x7fe5fc1db5a0) 0 empty + +Vtable for QQuickWindow +QQuickWindow::_ZTV12QQuickWindow: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QQuickWindow) +16 (int (*)(...))QQuickWindow::metaObject +24 (int (*)(...))QQuickWindow::qt_metacast +32 (int (*)(...))QQuickWindow::qt_metacall +40 (int (*)(...))QQuickWindow::~QQuickWindow +48 (int (*)(...))QQuickWindow::~QQuickWindow +56 (int (*)(...))QQuickWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QQuickWindow::accessibleRoot +144 (int (*)(...))QQuickWindow::focusObject +152 (int (*)(...))QQuickWindow::exposeEvent +160 (int (*)(...))QQuickWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QQuickWindow::focusInEvent +184 (int (*)(...))QQuickWindow::focusOutEvent +192 (int (*)(...))QQuickWindow::showEvent +200 (int (*)(...))QQuickWindow::hideEvent +208 (int (*)(...))QQuickWindow::keyPressEvent +216 (int (*)(...))QQuickWindow::keyReleaseEvent +224 (int (*)(...))QQuickWindow::mousePressEvent +232 (int (*)(...))QQuickWindow::mouseReleaseEvent +240 (int (*)(...))QQuickWindow::mouseDoubleClickEvent +248 (int (*)(...))QQuickWindow::mouseMoveEvent +256 (int (*)(...))QQuickWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI12QQuickWindow) +312 (int (*)(...))QQuickWindow::_ZThn16_N12QQuickWindowD1Ev +320 (int (*)(...))QQuickWindow::_ZThn16_N12QQuickWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QQuickWindow + size=40 align=8 + base size=40 base align=8 +QQuickWindow (0x0x7fe5fc528a28) 0 + vptr=((& QQuickWindow::_ZTV12QQuickWindow) + 16u) + QWindow (0x0x7fe5fc2b0690) 0 + primary-for QQuickWindow (0x0x7fe5fc528a28) + QObject (0x0x7fe5fc1db4e0) 0 + primary-for QWindow (0x0x7fe5fc2b0690) + QSurface (0x0x7fe5fc1db540) 16 + vptr=((& QQuickWindow::_ZTV12QQuickWindow) + 312u) + +Class QQuickView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickView::QPrivateSignal (0x0x7fe5fc1db900) 0 empty + +Vtable for QQuickView +QQuickView::_ZTV10QQuickView: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQuickView) +16 (int (*)(...))QQuickView::metaObject +24 (int (*)(...))QQuickView::qt_metacast +32 (int (*)(...))QQuickView::qt_metacall +40 (int (*)(...))QQuickView::~QQuickView +48 (int (*)(...))QQuickView::~QQuickView +56 (int (*)(...))QQuickWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QQuickView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QQuickWindow::accessibleRoot +144 (int (*)(...))QQuickWindow::focusObject +152 (int (*)(...))QQuickWindow::exposeEvent +160 (int (*)(...))QQuickView::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QQuickWindow::focusInEvent +184 (int (*)(...))QQuickWindow::focusOutEvent +192 (int (*)(...))QQuickWindow::showEvent +200 (int (*)(...))QQuickWindow::hideEvent +208 (int (*)(...))QQuickView::keyPressEvent +216 (int (*)(...))QQuickView::keyReleaseEvent +224 (int (*)(...))QQuickView::mousePressEvent +232 (int (*)(...))QQuickView::mouseReleaseEvent +240 (int (*)(...))QQuickWindow::mouseDoubleClickEvent +248 (int (*)(...))QQuickView::mouseMoveEvent +256 (int (*)(...))QQuickWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI10QQuickView) +312 (int (*)(...))QQuickView::_ZThn16_N10QQuickViewD1Ev +320 (int (*)(...))QQuickView::_ZThn16_N10QQuickViewD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QQuickView + size=40 align=8 + base size=40 base align=8 +QQuickView (0x0x7fe5fc528b60) 0 + vptr=((& QQuickView::_ZTV10QQuickView) + 16u) + QQuickWindow (0x0x7fe5fc528bc8) 0 + primary-for QQuickView (0x0x7fe5fc528b60) + QWindow (0x0x7fe5fc2f8bd0) 0 + primary-for QQuickWindow (0x0x7fe5fc528bc8) + QObject (0x0x7fe5fc1db840) 0 + primary-for QWindow (0x0x7fe5fc2f8bd0) + QSurface (0x0x7fe5fc1db8a0) 16 + vptr=((& QQuickView::_ZTV10QQuickView) + 312u) + +Class QSGAbstractRenderer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGAbstractRenderer::QPrivateSignal (0x0x7fe5fc1db9c0) 0 empty + +Vtable for QSGAbstractRenderer +QSGAbstractRenderer::_ZTV19QSGAbstractRenderer: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QSGAbstractRenderer) +16 (int (*)(...))QSGAbstractRenderer::metaObject +24 (int (*)(...))QSGAbstractRenderer::qt_metacast +32 (int (*)(...))QSGAbstractRenderer::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QSGAbstractRenderer + size=16 align=8 + base size=16 base align=8 +QSGAbstractRenderer (0x0x7fe5fc528c30) 0 + vptr=((& QSGAbstractRenderer::_ZTV19QSGAbstractRenderer) + 16u) + QObject (0x0x7fe5fc1db960) 0 + primary-for QSGAbstractRenderer (0x0x7fe5fc528c30) + +Class QSGEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGEngine::QPrivateSignal (0x0x7fe5fc1dbba0) 0 empty + +Vtable for QSGEngine +QSGEngine::_ZTV9QSGEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSGEngine) +16 (int (*)(...))QSGEngine::metaObject +24 (int (*)(...))QSGEngine::qt_metacast +32 (int (*)(...))QSGEngine::qt_metacall +40 (int (*)(...))QSGEngine::~QSGEngine +48 (int (*)(...))QSGEngine::~QSGEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSGEngine + size=16 align=8 + base size=16 base align=8 +QSGEngine (0x0x7fe5fc528d68) 0 + vptr=((& QSGEngine::_ZTV9QSGEngine) + 16u) + QObject (0x0x7fe5fc1dbb40) 0 + primary-for QSGEngine (0x0x7fe5fc528d68) + +Class QSGMaterialShader::RenderState + size=16 align=8 + base size=16 base align=8 +QSGMaterialShader::RenderState (0x0x7fe5fc1dbde0) 0 + +Vtable for QSGMaterialShader +QSGMaterialShader::_ZTV17QSGMaterialShader: 12u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGMaterialShader) +16 0u +24 0u +32 (int (*)(...))QSGMaterialShader::activate +40 (int (*)(...))QSGMaterialShader::deactivate +48 (int (*)(...))QSGMaterialShader::updateState +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QSGMaterialShader::compile +72 (int (*)(...))QSGMaterialShader::initialize +80 (int (*)(...))QSGMaterialShader::vertexShader +88 (int (*)(...))QSGMaterialShader::fragmentShader + +Class QSGMaterialShader + size=32 align=8 + base size=32 base align=8 +QSGMaterialShader (0x0x7fe5fc1dbd80) 0 + vptr=((& QSGMaterialShader::_ZTV17QSGMaterialShader) + 16u) + +Class QSGMaterialType + size=1 align=1 + base size=0 base align=1 +QSGMaterialType (0x0x7fe5fbfbf060) 0 empty + +Vtable for QSGMaterial +QSGMaterial::_ZTV11QSGMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGMaterial) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QSGMaterial::compare + +Class QSGMaterial + size=24 align=8 + base size=24 base align=8 +QSGMaterial (0x0x7fe5fbfbf0c0) 0 + vptr=((& QSGMaterial::_ZTV11QSGMaterial) + 16u) + +Vtable for QSGFlatColorMaterial +QSGFlatColorMaterial::_ZTV20QSGFlatColorMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGFlatColorMaterial) +16 (int (*)(...))QSGFlatColorMaterial::~QSGFlatColorMaterial +24 (int (*)(...))QSGFlatColorMaterial::~QSGFlatColorMaterial +32 (int (*)(...))QSGFlatColorMaterial::type +40 (int (*)(...))QSGFlatColorMaterial::createShader +48 (int (*)(...))QSGFlatColorMaterial::compare + +Class QSGFlatColorMaterial + size=40 align=8 + base size=40 base align=8 +QSGFlatColorMaterial (0x0x7fe5fbfd9068) 0 + vptr=((& QSGFlatColorMaterial::_ZTV20QSGFlatColorMaterial) + 16u) + QSGMaterial (0x0x7fe5fbfbf240) 0 + primary-for QSGFlatColorMaterial (0x0x7fe5fbfd9068) + +Class QSGTexture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGTexture::QPrivateSignal (0x0x7fe5fbfbf300) 0 empty + +Vtable for QSGTexture +QSGTexture::_ZTV10QSGTexture: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSGTexture) +16 (int (*)(...))QSGTexture::metaObject +24 (int (*)(...))QSGTexture::qt_metacast +32 (int (*)(...))QSGTexture::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QSGTexture::normalizedTextureSubRect +152 (int (*)(...))QSGTexture::isAtlasTexture +160 (int (*)(...))QSGTexture::removedFromAtlas +168 (int (*)(...))__cxa_pure_virtual + +Class QSGTexture + size=16 align=8 + base size=16 base align=8 +QSGTexture (0x0x7fe5fbfd90d0) 0 + vptr=((& QSGTexture::_ZTV10QSGTexture) + 16u) + QObject (0x0x7fe5fbfbf2a0) 0 + primary-for QSGTexture (0x0x7fe5fbfd90d0) + +Class QSGDynamicTexture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGDynamicTexture::QPrivateSignal (0x0x7fe5fbfbf3c0) 0 empty + +Vtable for QSGDynamicTexture +QSGDynamicTexture::_ZTV17QSGDynamicTexture: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGDynamicTexture) +16 (int (*)(...))QSGDynamicTexture::metaObject +24 (int (*)(...))QSGDynamicTexture::qt_metacast +32 (int (*)(...))QSGDynamicTexture::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QSGTexture::normalizedTextureSubRect +152 (int (*)(...))QSGTexture::isAtlasTexture +160 (int (*)(...))QSGTexture::removedFromAtlas +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QSGDynamicTexture + size=16 align=8 + base size=16 base align=8 +QSGDynamicTexture (0x0x7fe5fbfd91a0) 0 + vptr=((& QSGDynamicTexture::_ZTV17QSGDynamicTexture) + 16u) + QSGTexture (0x0x7fe5fbfd9208) 0 + primary-for QSGDynamicTexture (0x0x7fe5fbfd91a0) + QObject (0x0x7fe5fbfbf360) 0 + primary-for QSGTexture (0x0x7fe5fbfd9208) + +Vtable for QSGImageNode +QSGImageNode::_ZTV12QSGImageNode: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QSGImageNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QSGImageNode + size=144 align=8 + base size=144 base align=8 +QSGImageNode (0x0x7fe5fbfd9270) 0 + vptr=((& QSGImageNode::_ZTV12QSGImageNode) + 16u) + QSGGeometryNode (0x0x7fe5fbfd92d8) 0 + primary-for QSGImageNode (0x0x7fe5fbfd9270) + QSGBasicGeometryNode (0x0x7fe5fbfd9340) 0 + primary-for QSGGeometryNode (0x0x7fe5fbfd92d8) + QSGNode (0x0x7fe5fbfbf420) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fbfd9340) + +Vtable for QSGNinePatchNode +QSGNinePatchNode::_ZTV16QSGNinePatchNode: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGNinePatchNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual + +Class QSGNinePatchNode + size=144 align=8 + base size=144 base align=8 +QSGNinePatchNode (0x0x7fe5fbfd9478) 0 + vptr=((& QSGNinePatchNode::_ZTV16QSGNinePatchNode) + 16u) + QSGGeometryNode (0x0x7fe5fbfd94e0) 0 + primary-for QSGNinePatchNode (0x0x7fe5fbfd9478) + QSGBasicGeometryNode (0x0x7fe5fbfd9548) 0 + primary-for QSGGeometryNode (0x0x7fe5fbfd94e0) + QSGNode (0x0x7fe5fbfbf5a0) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fbfd9548) + +Vtable for QSGRectangleNode +QSGRectangleNode::_ZTV16QSGRectangleNode: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGRectangleNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QSGRectangleNode + size=144 align=8 + base size=144 base align=8 +QSGRectangleNode (0x0x7fe5fbfd95b0) 0 + vptr=((& QSGRectangleNode::_ZTV16QSGRectangleNode) + 16u) + QSGGeometryNode (0x0x7fe5fbfd9618) 0 + primary-for QSGRectangleNode (0x0x7fe5fbfd95b0) + QSGBasicGeometryNode (0x0x7fe5fbfd9680) 0 + primary-for QSGGeometryNode (0x0x7fe5fbfd9618) + QSGNode (0x0x7fe5fbfbf600) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fbfd9680) + +Vtable for QSGRenderNode::RenderState +QSGRenderNode::RenderState::_ZTVN13QSGRenderNode11RenderStateE: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QSGRenderNode11RenderStateE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))QSGRenderNode::RenderState::get + +Class QSGRenderNode::RenderState + size=8 align=8 + base size=8 base align=8 +QSGRenderNode::RenderState (0x0x7fe5fbfbf6c0) 0 nearly-empty + vptr=((& QSGRenderNode::RenderState::_ZTVN13QSGRenderNode11RenderStateE) + 16u) + +Vtable for QSGRenderNode +QSGRenderNode::_ZTV13QSGRenderNode: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSGRenderNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))QSGRenderNode::changedStates +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QSGRenderNode::releaseResources +72 (int (*)(...))QSGRenderNode::flags +80 (int (*)(...))QSGRenderNode::rect + +Class QSGRenderNode + size=88 align=8 + base size=88 base align=8 +QSGRenderNode (0x0x7fe5fbfd96e8) 0 + vptr=((& QSGRenderNode::_ZTV13QSGRenderNode) + 16u) + QSGNode (0x0x7fe5fbfbf660) 0 + primary-for QSGRenderNode (0x0x7fe5fbfd96e8) + +Vtable for QSGSimpleRectNode +QSGSimpleRectNode::_ZTV17QSGSimpleRectNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGSimpleRectNode) +16 (int (*)(...))QSGSimpleRectNode::~QSGSimpleRectNode +24 (int (*)(...))QSGSimpleRectNode::~QSGSimpleRectNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGSimpleRectNode + size=320 align=8 + base size=320 base align=8 +QSGSimpleRectNode (0x0x7fe5fbfd9c30) 0 + vptr=((& QSGSimpleRectNode::_ZTV17QSGSimpleRectNode) + 16u) + QSGGeometryNode (0x0x7fe5fbfd9c98) 0 + primary-for QSGSimpleRectNode (0x0x7fe5fbfd9c30) + QSGBasicGeometryNode (0x0x7fe5fbfd9d00) 0 + primary-for QSGGeometryNode (0x0x7fe5fbfd9c98) + QSGNode (0x0x7fe5fbfbfb40) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fbfd9d00) + +Vtable for QSGOpaqueTextureMaterial +QSGOpaqueTextureMaterial::_ZTV24QSGOpaqueTextureMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSGOpaqueTextureMaterial) +16 (int (*)(...))QSGOpaqueTextureMaterial::~QSGOpaqueTextureMaterial +24 (int (*)(...))QSGOpaqueTextureMaterial::~QSGOpaqueTextureMaterial +32 (int (*)(...))QSGOpaqueTextureMaterial::type +40 (int (*)(...))QSGOpaqueTextureMaterial::createShader +48 (int (*)(...))QSGOpaqueTextureMaterial::compare + +Class QSGOpaqueTextureMaterial + size=40 align=8 + base size=36 base align=8 +QSGOpaqueTextureMaterial (0x0x7fe5fbfd9d68) 0 + vptr=((& QSGOpaqueTextureMaterial::_ZTV24QSGOpaqueTextureMaterial) + 16u) + QSGMaterial (0x0x7fe5fbfbfba0) 0 + primary-for QSGOpaqueTextureMaterial (0x0x7fe5fbfd9d68) + +Vtable for QSGTextureMaterial +QSGTextureMaterial::_ZTV18QSGTextureMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSGTextureMaterial) +16 (int (*)(...))QSGTextureMaterial::~QSGTextureMaterial +24 (int (*)(...))QSGTextureMaterial::~QSGTextureMaterial +32 (int (*)(...))QSGTextureMaterial::type +40 (int (*)(...))QSGTextureMaterial::createShader +48 (int (*)(...))QSGOpaqueTextureMaterial::compare + +Class QSGTextureMaterial + size=40 align=8 + base size=36 base align=8 +QSGTextureMaterial (0x0x7fe5fbfd9dd0) 0 + vptr=((& QSGTextureMaterial::_ZTV18QSGTextureMaterial) + 16u) + QSGOpaqueTextureMaterial (0x0x7fe5fbfd9e38) 0 + primary-for QSGTextureMaterial (0x0x7fe5fbfd9dd0) + QSGMaterial (0x0x7fe5fbfbfc00) 0 + primary-for QSGOpaqueTextureMaterial (0x0x7fe5fbfd9e38) + +Vtable for QSGSimpleTextureNode +QSGSimpleTextureNode::_ZTV20QSGSimpleTextureNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGSimpleTextureNode) +16 (int (*)(...))QSGSimpleTextureNode::~QSGSimpleTextureNode +24 (int (*)(...))QSGSimpleTextureNode::~QSGSimpleTextureNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGSimpleTextureNode + size=384 align=8 + base size=384 base align=8 +QSGSimpleTextureNode (0x0x7fe5fbfd9ea0) 0 + vptr=((& QSGSimpleTextureNode::_ZTV20QSGSimpleTextureNode) + 16u) + QSGGeometryNode (0x0x7fe5fbfd9f08) 0 + primary-for QSGSimpleTextureNode (0x0x7fe5fbfd9ea0) + QSGBasicGeometryNode (0x0x7fe5fbfd9f70) 0 + primary-for QSGGeometryNode (0x0x7fe5fbfd9f08) + QSGNode (0x0x7fe5fbfbfc60) 0 + primary-for QSGBasicGeometryNode (0x0x7fe5fbfd9f70) + +Class QSGTextureProvider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGTextureProvider::QPrivateSignal (0x0x7fe5fbfbfea0) 0 empty + +Vtable for QSGTextureProvider +QSGTextureProvider::_ZTV18QSGTextureProvider: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSGTextureProvider) +16 (int (*)(...))QSGTextureProvider::metaObject +24 (int (*)(...))QSGTextureProvider::qt_metacast +32 (int (*)(...))QSGTextureProvider::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSGTextureProvider + size=16 align=8 + base size=16 base align=8 +QSGTextureProvider (0x0x7fe5fc172138) 0 + vptr=((& QSGTextureProvider::_ZTV18QSGTextureProvider) + 16u) + QObject (0x0x7fe5fbfbfe40) 0 + primary-for QSGTextureProvider (0x0x7fe5fc172138) + +Vtable for QSGVertexColorMaterial +QSGVertexColorMaterial::_ZTV22QSGVertexColorMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QSGVertexColorMaterial) +16 (int (*)(...))QSGVertexColorMaterial::~QSGVertexColorMaterial +24 (int (*)(...))QSGVertexColorMaterial::~QSGVertexColorMaterial +32 (int (*)(...))QSGVertexColorMaterial::type +40 (int (*)(...))QSGVertexColorMaterial::createShader +48 (int (*)(...))QSGVertexColorMaterial::compare + +Class QSGVertexColorMaterial + size=24 align=8 + base size=24 base align=8 +QSGVertexColorMaterial (0x0x7fe5fc1721a0) 0 + vptr=((& QSGVertexColorMaterial::_ZTV22QSGVertexColorMaterial) + 16u) + QSGMaterial (0x0x7fe5fbfbff00) 0 + primary-for QSGVertexColorMaterial (0x0x7fe5fc1721a0) + diff --git a/tests/auto/bic/data/QtQuickTest.5.8.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtQuickTest.5.8.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..b04a1c93c5 --- /dev/null +++ b/tests/auto/bic/data/QtQuickTest.5.8.0.linux-gcc-amd64.txt @@ -0,0 +1,18852 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f45d5305720) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f45d4efaea0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f45d4f27120) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f45d4f27360) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f45d4f275a0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f45d4f27720) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f45d4f27ae0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f45d4fe12a0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f45d4fe1360) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f45d4fe16c0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f45d4fe1780) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f45d4fe1840) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f45d4fe1900) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f45d4fe1ba0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f45d4fe1d80) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f45d505b240) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f45d505b2a0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f45d5098f00) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f45d5098f60) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f45d4fea6e8) 0 empty + std::input_iterator_tag (0x0x7f45d4cc3000) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f45d4fea750) 0 empty + std::forward_iterator_tag (0x0x7f45d4fea7b8) 0 empty + std::input_iterator_tag (0x0x7f45d4cc3060) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f45d4fea820) 0 empty + std::bidirectional_iterator_tag (0x0x7f45d4fea888) 0 empty + std::forward_iterator_tag (0x0x7f45d4fea8f0) 0 empty + std::input_iterator_tag (0x0x7f45d4cc30c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f45d4cc3d20) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f45d4cc3d80) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f45d4cc3de0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f45d4cc3e40) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f45d4cc3ea0) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7f45d4d8b9c0) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f45d4d8bc00) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f45d4d8bcc0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f45d4d8bd20) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f45d4d8bde0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f45d4d8be40) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f45d4e2f300) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f45d4e2f360) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f45d4e2f3c0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f45d4feae38) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7f45d4e2f420) 0 nearly-empty + primary-for std::bad_exception (0x0x7f45d4feae38) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f45d4e2f480) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f45d4e2f4e0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f45d4b20068) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7f45d4e2f900) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f45d4b20068) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f45d4b200d0) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7f45d4b20138) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f45d4b200d0) + std::exception (0x0x7f45d4e2f960) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f45d4b20138) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f45d4e2f9c0) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7f45d4baa600) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f45d49b0300) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f45d49b0360) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f45d4a53240) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7f45d4a532a0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f45d4a53360) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f45d4a533c0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f45d4a53420) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f45d4a53480) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f45d4a535a0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f45d4a53600) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f45d4a53a20) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f45d4a53a80) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f45d45732a0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f45d4573300) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f45d46452a0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f45d43fe0c0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f45d4570ea0) 0 + std::iterator (0x0x7f45d43fe180) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f45d4570f08) 0 + std::_Bit_iterator_base (0x0x7f45d4570f70) 0 + std::iterator (0x0x7f45d43fe1e0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f45d4570680) 0 + std::_Bit_iterator_base (0x0x7f45d45706e8) 0 + std::iterator (0x0x7f45d43fe240) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f45d421e060) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f45d421ede0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f45d421ed80) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f45d3f65d80) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f45d2b48840) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f45d2b488a0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f45d2c20ae0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f45d2c20b40) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f45d2c20ba0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f45d2878660) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f45d2878960) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f45d2878f00) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f45d28942d8) 0 + std::__atomic_flag_base (0x0x7f45d2878f60) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f45d2894a28) 0 + QAtomicInteger (0x0x7f45d2894a90) 0 + QBasicAtomicInteger (0x0x7f45d278b6c0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f45d25e9f60) 0 empty + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f45d2061000) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f45d25acea0) 0 + QGenericArgument (0x0x7f45d2061060) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f45d20611e0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f45d20612a0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f45d2115300) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f45d2115360) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f45d21157e0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f45d21158a0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f45d2115cc0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f45d2115d20) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f45d2115d80) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f45d2115de0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f45d2115e40) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f45d1e79240) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f45d1e65478) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7f45d1e79300) 0 nearly-empty + primary-for std::logic_error (0x0x7f45d1e65478) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f45d1e654e0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7f45d1e65548) 0 + primary-for std::domain_error (0x0x7f45d1e654e0) + std::exception (0x0x7f45d1e79360) 0 nearly-empty + primary-for std::logic_error (0x0x7f45d1e65548) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f45d1e655b0) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7f45d1e65618) 0 + primary-for std::invalid_argument (0x0x7f45d1e655b0) + std::exception (0x0x7f45d1e793c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f45d1e65618) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f45d1e65680) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7f45d1e656e8) 0 + primary-for std::length_error (0x0x7f45d1e65680) + std::exception (0x0x7f45d1e79420) 0 nearly-empty + primary-for std::logic_error (0x0x7f45d1e656e8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f45d1e65750) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7f45d1e657b8) 0 + primary-for std::out_of_range (0x0x7f45d1e65750) + std::exception (0x0x7f45d1e79480) 0 nearly-empty + primary-for std::logic_error (0x0x7f45d1e657b8) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f45d1e65820) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7f45d1e794e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1e65820) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f45d1e65888) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7f45d1e658f0) 0 + primary-for std::range_error (0x0x7f45d1e65888) + std::exception (0x0x7f45d1e79540) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1e658f0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f45d1e65958) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7f45d1e659c0) 0 + primary-for std::overflow_error (0x0x7f45d1e65958) + std::exception (0x0x7f45d1e795a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1e659c0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f45d1e65a28) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7f45d1e65a90) 0 + primary-for std::underflow_error (0x0x7f45d1e65a28) + std::exception (0x0x7f45d1e79600) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1e65a90) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f45d1e79780) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f45d1e799c0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f45d1e79b40) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f45d1e65f70) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7f45d1e651a0) 0 + primary-for std::system_error (0x0x7f45d1e65f70) + std::exception (0x0x7f45d1e79d80) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1e651a0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f45d1f2faf8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7f45d1f2fb60) 0 + primary-for std::ios_base::failure (0x0x7f45d1f2faf8) + std::runtime_error (0x0x7f45d1f2fbc8) 0 + primary-for std::system_error (0x0x7f45d1f2fb60) + std::exception (0x0x7f45d1f5d0c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f45d1f2fbc8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f45d1f5d120) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f45d1f5d180) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f45d1f5d1e0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f45d1f5d060) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f45d1f5d960) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f45d1cd6060) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7f45d1be24e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f45d1be25b0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7f45d1be2958 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f45d1be2a28 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f45d1ad1900) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f45d1ad1960) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f45d1932d80) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f45d160b120) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f45d160b4e0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f45d160b5a0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f45d160b540) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f45d1797540) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f45d15233c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f45d1523a80) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f45d1523ae0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f45d1523b40) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f45d1523f00) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f45d1523f60) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f45d14948f0) 0 empty + QListData::NotIndirectLayout (0x0x7f45d1381000) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f45d137b770) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f45d1381060) 0 empty + QListData::NotIndirectLayout (0x0x7f45d13810c0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f45d1382000) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f45d1381120) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f45d1381180) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f45d1523ea0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f45d1381d20) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f45d113f000) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f45d1115f60) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f45d112c9c0) 0 + QList (0x0x7f45d112ca28) 0 + QListSpecialMethods (0x0x7f45d113f1e0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f45d113f660) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f45d113fa80) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f45d0fa9120) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f45d0fa92a0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f45d0fa9360) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f45d0e10a90) 0 + std::__uses_alloc_base (0x0x7f45d0fa9300) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f45d0cba3c0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f45d0cba600) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f45d0cba6c0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f45d0cba7e0) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f45d0cba960) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f45d0cbad20) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f45d0cbae40) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f45d0a0f7e0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f45d0a0fd20) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f45d0ae6120) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f45d089b1e0) 0 + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f45d089b360) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f45d089b540) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f45d089b4e0) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f45d089bae0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f45d089bb40) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f45d089bc00) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f45d0bcfa28) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7f45d089bba0) 0 + primary-for QAbstractAnimation (0x0x7f45d0bcfa28) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f45d089bcc0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f45d0bcfa90) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7f45d089bc60) 0 + primary-for QAnimationDriver (0x0x7f45d0bcfa90) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f45d089bd80) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f45d0bcfaf8) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7f45d089bd20) 0 + primary-for QEventLoop (0x0x7f45d0bcfaf8) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f45d089bf00) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f45d09e8000) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f45d09e8060) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f45d0bcfc30) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7f45d089bf60) 0 + primary-for QAbstractEventDispatcher (0x0x7f45d0bcfc30) + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f45d09e80c0) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f45d09e8300) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f45d09e86c0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f45d09e8660) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f45d09e8720) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f45d03e3300) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f45d03e33c0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f45d03e3360) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f45d03e3420) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f45d03e32a0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f45d04b98a0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f45d04b9c00) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f45d04b9ba0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f45d04b9cc0) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f45d04b9c60) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f45d02d9720) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f45d02d9a20) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f45d03bda80) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f45cffcb4e0) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7f45d03bda20) 0 + primary-for QAbstractItemModel (0x0x7f45cffcb4e0) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f45d03bdde0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f45cffcb6e8) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7f45cffcb750) 0 + primary-for QAbstractTableModel (0x0x7f45cffcb6e8) + QObject (0x0x7f45d03bdd80) 0 + primary-for QAbstractItemModel (0x0x7f45cffcb750) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f45d03bdea0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f45cffcb7b8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7f45cffcb820) 0 + primary-for QAbstractListModel (0x0x7f45cffcb7b8) + QObject (0x0x7f45d03bde40) 0 + primary-for QAbstractItemModel (0x0x7f45cffcb820) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f45d00ab180) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f45d00ab240) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f45cffcb958) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7f45cffcb9c0) 0 + primary-for QAbstractProxyModel (0x0x7f45cffcb958) + QObject (0x0x7f45d00ab1e0) 0 + primary-for QAbstractItemModel (0x0x7f45cffcb9c0) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f45d00ab300) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f45cffcba28) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7f45d00ab2a0) 0 + primary-for QAbstractState (0x0x7f45cffcba28) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f45d00ab3c0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f45cffcba90) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7f45d00ab360) 0 + primary-for QAbstractTransition (0x0x7f45cffcba90) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f45d00ab480) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f45cffcbaf8) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7f45cffcbb60) 0 + primary-for QAnimationGroup (0x0x7f45cffcbaf8) + QObject (0x0x7f45d00ab420) 0 + primary-for QAbstractAnimation (0x0x7f45cffcbb60) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f45d00ab960) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f45d00abc60) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f45d00abea0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f45cfcde2a0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f45d0151b60) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7f45cfcde240) 0 + primary-for QIODevice (0x0x7f45d0151b60) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f45cfcde480) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f45d0151c98) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7f45d0151d00) 0 + primary-for QBuffer (0x0x7f45d0151c98) + QObject (0x0x7f45cfcde420) 0 + primary-for QIODevice (0x0x7f45d0151d00) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f45cfcde540) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f45cfcde4e0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f45cfcde6c0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f45cfcde8a0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f45cfcded20) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f45cfcdede0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f45cfadbea0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f45cfb1e360) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f45cfaeae38) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7f45cfb1e3c0) 0 + primary-for QTimerEvent (0x0x7f45cfaeae38) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f45cfaeaea0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7f45cfb1e420) 0 + primary-for QChildEvent (0x0x7f45cfaeaea0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f45cfb73000) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7f45cfb1e600) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f45cfb73000) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f45cfb73068) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7f45cfb1e660) 0 + primary-for QDeferredDeleteEvent (0x0x7f45cfb73068) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f45cfb1e720) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f45cfb730d0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7f45cfb1e6c0) 0 + primary-for QCoreApplication (0x0x7f45cfb730d0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f45cfb1e780) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f45cfb1e7e0) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f45cfb1ea80) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f45cfb1eae0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f45cfb1eba0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f45cfb1ed80) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f45cfc910c0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f45cfc915a0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f45cfc91600) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f45cfc91540) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f45cf94f420) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f45cf9bc7e0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f45cf717660) 0 empty + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f45cf7176c0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f45cf856540) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f45cf856780) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f45cf8569c0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f45cf856b40) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f45cf61b000) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f45cf856f60) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f45cf2fd240) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f45cf2fd300) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f45cf2fd3c0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f45cf6c27b8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7f45cf6c2820) 0 + primary-for QFileDevice (0x0x7f45cf6c27b8) + QObject (0x0x7f45cf2fd360) 0 + primary-for QIODevice (0x0x7f45cf6c2820) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f45cf2fd5a0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f45cf6c2958) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7f45cf6c29c0) 0 + primary-for QFile (0x0x7f45cf6c2958) + QIODevice (0x0x7f45cf6c2a28) 0 + primary-for QFileDevice (0x0x7f45cf6c29c0) + QObject (0x0x7f45cf2fd540) 0 + primary-for QIODevice (0x0x7f45cf6c2a28) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f45cf2fd720) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f45cf2fdba0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f45cf450180) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f45cf450360) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f45cf13d600) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f45cf139820) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7f45cf139888) 0 + primary-for QEventTransition (0x0x7f45cf139820) + QObject (0x0x7f45cf13d5a0) 0 + primary-for QAbstractTransition (0x0x7f45cf139888) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f45cf1398f0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7f45cf13d660) 0 nearly-empty + primary-for QException (0x0x7f45cf1398f0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f45cf139958) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7f45cf1399c0) 0 nearly-empty + primary-for QUnhandledException (0x0x7f45cf139958) + std::exception (0x0x7f45cf13d6c0) 0 nearly-empty + primary-for QException (0x0x7f45cf1399c0) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f45cf13d720) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f45cf13d7e0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f45cf13d840) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f45cf13d960) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f45cf139a28) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7f45cf13d900) 0 + primary-for QFileSelector (0x0x7f45cf139a28) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f45cf13da20) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f45cf139a90) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7f45cf13d9c0) 0 + primary-for QFileSystemWatcher (0x0x7f45cf139a90) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f45cf13dae0) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f45cf139af8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7f45cf139b60) 0 + primary-for QFinalState (0x0x7f45cf139af8) + QObject (0x0x7f45cf13da80) 0 + primary-for QAbstractState (0x0x7f45cf139b60) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f45cf13db40) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f45cf13dba0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f45cf139c98) 0 + QBasicMutex (0x0x7f45cf13dde0) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f45cf2581e0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f45cf2582a0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f45cf258300) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f45cf258480) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f45cf258540) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f45cf2588a0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f45cf25e888) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7f45cf258840) 0 + primary-for QFutureWatcherBase (0x0x7f45cf25e888) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f45cf258a20) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f45cf25ec98) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7f45cf25ed00) 0 + primary-for QHistoryState (0x0x7f45cf25ec98) + QObject (0x0x7f45cf2589c0) 0 + primary-for QAbstractState (0x0x7f45cf25ed00) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f45cf258ae0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f45cf25ed68) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7f45cf25edd0) 0 + primary-for QIdentityProxyModel (0x0x7f45cf25ed68) + QAbstractItemModel (0x0x7f45cf25ee38) 0 + primary-for QAbstractProxyModel (0x0x7f45cf25edd0) + QObject (0x0x7f45cf258a80) 0 + primary-for QAbstractItemModel (0x0x7f45cf25ee38) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f45cf258b40) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f45cf258f00) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f45cefe71a0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7f45cf258ea0) 0 + primary-for QItemSelectionModel (0x0x7f45cefe71a0) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f45cefe73a8) 0 + QList (0x0x7f45cefe7410) 0 + QListSpecialMethods (0x0x7f45cf0251e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f45cf025720) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f45cf025960) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f45cf025a20) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f45cf025a80) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f45cf025b40) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f45cf025ba0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f45cf025ae0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f45cf025c60) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f45cf025cc0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f45cf025d80) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f45cf025de0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f45cf025d20) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f45cede7000) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f45cefe7820) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7f45cf025f60) 0 + primary-for QLibrary (0x0x7f45cefe7820) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f45cede71e0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f45cede7180) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f45cee9bf60) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f45ceb00000) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f45ceb00300) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f45ceb00600) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f45ceb00900) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f45ceb00c00) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f45cec3e3c0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f45cec3e540) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f45cec3e4e0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f45cec3e6c0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f45cec3e9c0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f45cec3ed20) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f45cec3ed80) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f45ce9bc0c0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f45ce9bc420) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f45ce9bc480) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f45ce9bc7e0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f45ce8f7548) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7f45ce9bc780) 0 + primary-for QMimeData (0x0x7f45ce8f7548) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f45ce9bc840) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f45ce9bcba0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f45ce9bcc60) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f45ce8f76e8) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7f45ce9bcc00) 0 + primary-for QObjectCleanupHandler (0x0x7f45ce8f76e8) + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f45ce9bcd20) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f45ce8f7750) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7f45ce8f77b8) 0 + primary-for QParallelAnimationGroup (0x0x7f45ce8f7750) + QAbstractAnimation (0x0x7f45ce8f7820) 0 + primary-for QAnimationGroup (0x0x7f45ce8f77b8) + QObject (0x0x7f45ce9bccc0) 0 + primary-for QAbstractAnimation (0x0x7f45ce8f7820) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f45ce9bcde0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f45ce8f7888) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7f45ce8f78f0) 0 + primary-for QPauseAnimation (0x0x7f45ce8f7888) + QObject (0x0x7f45ce9bcd80) 0 + primary-for QAbstractAnimation (0x0x7f45ce8f78f0) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f45cea62000) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f45cea62360) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f45ce8f7a90) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7f45cea62300) 0 + primary-for QPluginLoader (0x0x7f45ce8f7a90) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f45cea623c0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f45ce8f7af8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7f45cea62420) 0 nearly-empty + primary-for std::bad_cast (0x0x7f45ce8f7af8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f45ce8f7b60) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7f45cea62480) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f45ce8f7b60) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f45ce722dd0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7f45ce7f2540) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f45ce722dd0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f45ce7f2600) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f45ce7f2660) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f45ce7f2780) 0 + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f45ce7f2c60) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f45ce8b3060) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f45ce83d6e8) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7f45ce83d750) 0 + primary-for QProcess (0x0x7f45ce83d6e8) + QObject (0x0x7f45ce8b3000) 0 + primary-for QIODevice (0x0x7f45ce83d750) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f45ce8b3120) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f45ce83d7b8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7f45ce83d820) 0 + primary-for QVariantAnimation (0x0x7f45ce83d7b8) + QObject (0x0x7f45ce8b30c0) 0 + primary-for QAbstractAnimation (0x0x7f45ce83d820) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f45ce8b31e0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f45ce83d8f0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7f45ce83d958) 0 + primary-for QPropertyAnimation (0x0x7f45ce83d8f0) + QAbstractAnimation (0x0x7f45ce83d9c0) 0 + primary-for QVariantAnimation (0x0x7f45ce83d958) + QObject (0x0x7f45ce8b3180) 0 + primary-for QAbstractAnimation (0x0x7f45ce83d9c0) + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f45ce8b32a0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f45ce8b3540) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f45ce8b35a0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f45ce8b3600) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f45ce8b39c0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f45ce8b3d80) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f45ce6470c0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f45ce6473c0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f45ce647960) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f45ce647cc0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f45ce3ee060) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f45ce3ee1e0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f45ce61c9c0) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7f45ce61ca28) 0 + primary-for QSaveFile (0x0x7f45ce61c9c0) + QIODevice (0x0x7f45ce61ca90) 0 + primary-for QFileDevice (0x0x7f45ce61ca28) + QObject (0x0x7f45ce3ee180) 0 + primary-for QIODevice (0x0x7f45ce61ca90) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f45ce3ee2a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f45ce3ee360) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f45ce61caf8) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7f45ce61cb60) 0 + primary-for QSequentialAnimationGroup (0x0x7f45ce61caf8) + QAbstractAnimation (0x0x7f45ce61cbc8) 0 + primary-for QAnimationGroup (0x0x7f45ce61cb60) + QObject (0x0x7f45ce3ee300) 0 + primary-for QAbstractAnimation (0x0x7f45ce61cbc8) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f45ce3ee420) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f45ce61cc30) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7f45ce3ee3c0) 0 + primary-for QSettings (0x0x7f45ce61cc30) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f45ce3ee4e0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f45ce61cc98) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7f45ce3ee480) 0 + primary-for QSharedMemory (0x0x7f45ce61cc98) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f45ce3ee5a0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f45ce61cd00) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7f45ce3ee540) 0 + primary-for QSignalMapper (0x0x7f45ce61cd00) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f45ce3ee660) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f45ce61cd68) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7f45ce61cdd0) 0 + primary-for QSignalTransition (0x0x7f45ce61cd68) + QObject (0x0x7f45ce3ee600) 0 + primary-for QAbstractTransition (0x0x7f45ce61cdd0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f45ce3ee720) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f45ce61ce38) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7f45ce3ee6c0) 0 + primary-for QSocketNotifier (0x0x7f45ce61ce38) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f45ce3ee7e0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f45ce61cea0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7f45ce61cf08) 0 + primary-for QSortFilterProxyModel (0x0x7f45ce61cea0) + QAbstractItemModel (0x0x7f45ce61cf70) 0 + primary-for QAbstractProxyModel (0x0x7f45ce61cf08) + QObject (0x0x7f45ce3ee780) 0 + primary-for QAbstractItemModel (0x0x7f45ce61cf70) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f45ce3ee9c0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f45ce3eeba0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f45ce0cd138) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7f45ce0cd1a0) 0 + primary-for QState (0x0x7f45ce0cd138) + QObject (0x0x7f45ce3eeb40) 0 + primary-for QAbstractState (0x0x7f45ce0cd1a0) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f45ce3eecc0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f45ce0cd340) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7f45ce3eed20) 0 + primary-for QStateMachine::SignalEvent (0x0x7f45ce0cd340) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f45ce0cd3a8) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7f45ce3eed80) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f45ce0cd3a8) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f45ce0cd208) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7f45ce0cd270) 0 + primary-for QStateMachine (0x0x7f45ce0cd208) + QAbstractState (0x0x7f45ce0cd2d8) 0 + primary-for QState (0x0x7f45ce0cd270) + QObject (0x0x7f45ce3eec60) 0 + primary-for QAbstractState (0x0x7f45ce0cd2d8) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f45ce3eede0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f45ce17d2a0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f45ce17dd20) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f45ce0cde38) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7f45ce0cdea0) 0 + primary-for QStringListModel (0x0x7f45ce0cde38) + QAbstractItemModel (0x0x7f45ce0cdf08) 0 + primary-for QAbstractListModel (0x0x7f45ce0cdea0) + QObject (0x0x7f45ce17dcc0) 0 + primary-for QAbstractItemModel (0x0x7f45ce0cdf08) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f45ce17dd80) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f45ce17de40) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f45ce17df60) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f45ce0cdf70) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7f45ce231000) 0 + primary-for QTemporaryFile (0x0x7f45ce0cdf70) + QFileDevice (0x0x7f45ce231068) 0 + primary-for QFile (0x0x7f45ce231000) + QIODevice (0x0x7f45ce2310d0) 0 + primary-for QFileDevice (0x0x7f45ce231068) + QObject (0x0x7f45ce17df00) 0 + primary-for QIODevice (0x0x7f45ce2310d0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f45ce248000) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f45ce2481e0) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f45ce248180) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f45ce248360) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f45ce2483c0) 0 + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f45ce248480) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f45ce2312d8) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7f45ce248420) 0 + primary-for QThread (0x0x7f45ce2312d8) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f45ce248540) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f45ce231340) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7f45ce2484e0) 0 + primary-for QThreadPool (0x0x7f45ce231340) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f45ce2485a0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f45ce2486c0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f45ce2313a8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7f45ce248660) 0 + primary-for QTimeLine (0x0x7f45ce2313a8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f45ce248780) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f45ce231410) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7f45ce248720) 0 + primary-for QTimer (0x0x7f45ce231410) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f45cdf5b5a0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f45cdf5b540) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f45cdf5bc00) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f45cdf625b0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7f45cdf5bba0) 0 + primary-for QTranslator (0x0x7f45cdf625b0) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f45cdf5bd20) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f45ce0b9360) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f45ce0b96c0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f45ce0b99c0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f45ce0b9a20) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f45cddf9000) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f45cdde3ea0) 0 + QVector (0x0x7f45cddf9420) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f45cddf9480) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f45cddf9780) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f45cddf9a80) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f45cddf9d80) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f45cddf9de0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f45cdad8240) 0 + +Class QTest::QBenchmarkIterationController + size=4 align=4 + base size=4 base align=4 +QTest::QBenchmarkIterationController (0x0x7f45cdad8360) 0 + +Class QTestEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTestEventLoop::QPrivateSignal (0x0x7f45cdad8420) 0 empty + +Vtable for QTestEventLoop +QTestEventLoop::_ZTV14QTestEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTestEventLoop) +16 (int (*)(...))QTestEventLoop::metaObject +24 (int (*)(...))QTestEventLoop::qt_metacast +32 (int (*)(...))QTestEventLoop::qt_metacall +40 (int (*)(...))QTestEventLoop::~QTestEventLoop +48 (int (*)(...))QTestEventLoop::~QTestEventLoop +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTestEventLoop::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTestEventLoop + size=32 align=8 + base size=32 base align=8 +QTestEventLoop (0x0x7f45cde6c750) 0 + vptr=((& QTestEventLoop::_ZTV14QTestEventLoop) + 16u) + QObject (0x0x7f45cdad83c0) 0 + primary-for QTestEventLoop (0x0x7f45cde6c750) + +Vtable for QSignalSpy +QSignalSpy::_ZTV10QSignalSpy: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSignalSpy) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QSignalSpy::qt_metacall +40 (int (*)(...))QSignalSpy::~QSignalSpy +48 (int (*)(...))QSignalSpy::~QSignalSpy +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalSpy + size=80 align=8 + base size=73 base align=8 +QSignalSpy (0x0x7f45cdb3b9a0) 0 + vptr=((& QSignalSpy::_ZTV10QSignalSpy) + 16u) + QObject (0x0x7f45cdad8840) 0 + primary-for QSignalSpy (0x0x7f45cdb3b9a0) + QList > (0x0x7f45cde6ca90) 16 + QListSpecialMethods > (0x0x7f45cdad88a0) 16 empty + +Class QTestData + size=8 align=8 + base size=8 base align=8 +QTestData (0x0x7f45cdb8f780) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f45cdb8fde0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f45cd921120) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f45cd921840) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f45cd9217e0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f45cda24c00) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f45cdac4e40) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7f45cd711240) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7f45cd6d5f70) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16u) + QEvent (0x0x7f45cd7113c0) 0 + primary-for QInputEvent (0x0x7f45cd6d5f70) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7f45cd77c000) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16u) + QEvent (0x0x7f45cd711420) 0 + primary-for QEnterEvent (0x0x7f45cd77c000) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7f45cd77c068) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16u) + QInputEvent (0x0x7f45cd77c0d0) 0 + primary-for QMouseEvent (0x0x7f45cd77c068) + QEvent (0x0x7f45cd711480) 0 + primary-for QInputEvent (0x0x7f45cd77c0d0) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7f45cd77c138) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16u) + QInputEvent (0x0x7f45cd77c1a0) 0 + primary-for QHoverEvent (0x0x7f45cd77c138) + QEvent (0x0x7f45cd7114e0) 0 + primary-for QInputEvent (0x0x7f45cd77c1a0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f45cd77c208) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16u) + QInputEvent (0x0x7f45cd77c270) 0 + primary-for QWheelEvent (0x0x7f45cd77c208) + QEvent (0x0x7f45cd711540) 0 + primary-for QInputEvent (0x0x7f45cd77c270) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7f45cd77c2d8) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16u) + QInputEvent (0x0x7f45cd77c340) 0 + primary-for QTabletEvent (0x0x7f45cd77c2d8) + QEvent (0x0x7f45cd7115a0) 0 + primary-for QInputEvent (0x0x7f45cd77c340) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f45cd77c3a8) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16u) + QInputEvent (0x0x7f45cd77c410) 0 + primary-for QNativeGestureEvent (0x0x7f45cd77c3a8) + QEvent (0x0x7f45cd711600) 0 + primary-for QInputEvent (0x0x7f45cd77c410) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7f45cd77c478) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16u) + QInputEvent (0x0x7f45cd77c4e0) 0 + primary-for QKeyEvent (0x0x7f45cd77c478) + QEvent (0x0x7f45cd711660) 0 + primary-for QInputEvent (0x0x7f45cd77c4e0) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7f45cd77c548) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16u) + QEvent (0x0x7f45cd7116c0) 0 + primary-for QFocusEvent (0x0x7f45cd77c548) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7f45cd77c5b0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16u) + QEvent (0x0x7f45cd711720) 0 + primary-for QPaintEvent (0x0x7f45cd77c5b0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7f45cd77c618) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16u) + QEvent (0x0x7f45cd711780) 0 + primary-for QMoveEvent (0x0x7f45cd77c618) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7f45cd77c680) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16u) + QEvent (0x0x7f45cd7117e0) 0 + primary-for QExposeEvent (0x0x7f45cd77c680) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7f45cd77c6e8) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16u) + QEvent (0x0x7f45cd711840) 0 + primary-for QPlatformSurfaceEvent (0x0x7f45cd77c6e8) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7f45cd77c750) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16u) + QEvent (0x0x7f45cd7118a0) 0 + primary-for QResizeEvent (0x0x7f45cd77c750) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7f45cd77c7b8) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16u) + QEvent (0x0x7f45cd711900) 0 + primary-for QCloseEvent (0x0x7f45cd77c7b8) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7f45cd77c820) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16u) + QEvent (0x0x7f45cd711960) 0 + primary-for QIconDragEvent (0x0x7f45cd77c820) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7f45cd77c888) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16u) + QEvent (0x0x7f45cd7119c0) 0 + primary-for QShowEvent (0x0x7f45cd77c888) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7f45cd77c8f0) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16u) + QEvent (0x0x7f45cd711a20) 0 + primary-for QHideEvent (0x0x7f45cd77c8f0) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7f45cd77c958) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16u) + QInputEvent (0x0x7f45cd77c9c0) 0 + primary-for QContextMenuEvent (0x0x7f45cd77c958) + QEvent (0x0x7f45cd711a80) 0 + primary-for QInputEvent (0x0x7f45cd77c9c0) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7f45cd711b40) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7f45cd77ca28) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16u) + QEvent (0x0x7f45cd711ae0) 0 + primary-for QInputMethodEvent (0x0x7f45cd77ca28) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f45cd879060) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7f45cd77cd00) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16u) + QEvent (0x0x7f45cd879000) 0 + primary-for QInputMethodQueryEvent (0x0x7f45cd77cd00) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7f45cd77cf70) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16u) + QEvent (0x0x7f45cd879420) 0 + primary-for QDropEvent (0x0x7f45cd77cf70) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7f45cd8c4000) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16u) + QDropEvent (0x0x7f45cd8c4068) 0 + primary-for QDragMoveEvent (0x0x7f45cd8c4000) + QEvent (0x0x7f45cd879480) 0 + primary-for QDropEvent (0x0x7f45cd8c4068) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7f45cd8c40d0) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16u) + QDragMoveEvent (0x0x7f45cd8c4138) 0 + primary-for QDragEnterEvent (0x0x7f45cd8c40d0) + QDropEvent (0x0x7f45cd8c41a0) 0 + primary-for QDragMoveEvent (0x0x7f45cd8c4138) + QEvent (0x0x7f45cd8794e0) 0 + primary-for QDropEvent (0x0x7f45cd8c41a0) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7f45cd8c4208) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16u) + QEvent (0x0x7f45cd879540) 0 + primary-for QDragLeaveEvent (0x0x7f45cd8c4208) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7f45cd8c4270) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16u) + QEvent (0x0x7f45cd8795a0) 0 + primary-for QHelpEvent (0x0x7f45cd8c4270) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7f45cd8c42d8) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16u) + QEvent (0x0x7f45cd879600) 0 + primary-for QStatusTipEvent (0x0x7f45cd8c42d8) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7f45cd8c4340) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16u) + QEvent (0x0x7f45cd879660) 0 + primary-for QWhatsThisClickedEvent (0x0x7f45cd8c4340) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7f45cd8c43a8) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16u) + QEvent (0x0x7f45cd8796c0) 0 + primary-for QActionEvent (0x0x7f45cd8c43a8) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7f45cd8c4410) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16u) + QEvent (0x0x7f45cd879720) 0 + primary-for QFileOpenEvent (0x0x7f45cd8c4410) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7f45cd8c4478) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16u) + QEvent (0x0x7f45cd879780) 0 + primary-for QToolBarChangeEvent (0x0x7f45cd8c4478) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7f45cd8c44e0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16u) + QEvent (0x0x7f45cd8797e0) 0 + primary-for QShortcutEvent (0x0x7f45cd8c44e0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7f45cd8c4548) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16u) + QEvent (0x0x7f45cd879840) 0 + primary-for QWindowStateChangeEvent (0x0x7f45cd8c4548) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f45cd8798a0) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7f45cd879c60) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7f45cd8c46e8) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16u) + QInputEvent (0x0x7f45cd8c4750) 0 + primary-for QTouchEvent (0x0x7f45cd8c46e8) + QEvent (0x0x7f45cd879c00) 0 + primary-for QInputEvent (0x0x7f45cd8c4750) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7f45cd5b5f08) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16u) + QEvent (0x0x7f45cd5e1300) 0 + primary-for QScrollPrepareEvent (0x0x7f45cd5b5f08) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7f45cd5b5f70) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16u) + QEvent (0x0x7f45cd5e1360) 0 + primary-for QScrollEvent (0x0x7f45cd5b5f70) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7f45cd61c000) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16u) + QEvent (0x0x7f45cd5e13c0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f45cd61c000) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7f45cd61c068) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16u) + QEvent (0x0x7f45cd5e1420) 0 + primary-for QApplicationStateChangeEvent (0x0x7f45cd61c068) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f45cd5e1480) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7f45cd61c478) 0 + QVector (0x0x7f45cd5e1a20) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7f45cd61c7b8) 0 + QVector (0x0x7f45cd5e1f00) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7f45cd320360) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f45cd3206c0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f45cd320660) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f45cd320e40) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7f45cd320f60) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7f45cd427420) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16u) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f45cd427480) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7f45cd42f340) 0 + vptr=((& QImage::_ZTV6QImage) + 16u) + QPaintDevice (0x0x7f45cd427900) 0 + primary-for QImage (0x0x7f45cd42f340) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7f45cd194e38) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16u) + QPaintDevice (0x0x7f45cd195900) 0 + primary-for QPixmap (0x0x7f45cd194e38) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f45cd195c60) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7f45cd230000) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7f45cd230060) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7f45cd22c208) 0 + QGradient (0x0x7f45cd230300) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7f45cd22c270) 0 + QGradient (0x0x7f45cd230360) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7f45cd22c2d8) 0 + QGradient (0x0x7f45cd2303c0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f45cd230420) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f45ccf116c0) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7f45ccf11660) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f45ccf11ae0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f45ccf11f60) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f45cd045068) 0 + QTextFormat (0x0x7f45ccfc17e0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f45cd045208) 0 + QTextFormat (0x0x7f45ccfc1ae0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f45cd045410) 0 + QTextFormat (0x0x7f45ccfc1de0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f45cd0455b0) 0 + QTextCharFormat (0x0x7f45cd045618) 0 + QTextFormat (0x0x7f45ccce9120) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f45cd0457b8) 0 + QTextFormat (0x0x7f45ccce9420) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f45cd045958) 0 + QTextFrameFormat (0x0x7f45cd0459c0) 0 + QTextFormat (0x0x7f45ccce9720) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f45cd045b60) 0 + QTextCharFormat (0x0x7f45cd045bc8) 0 + QTextFormat (0x0x7f45ccce9a80) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7f45ccce9d80) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f45ccce9de0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f45ccd9e3c0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f45ccd9e720) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f45ccd9ea80) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f45ccd9eb40) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f45ccd9eae0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f45ccd9ef00) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f45ccd9ef60) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16u) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f45ccacf060) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f45ccde1618) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16u) + QObject (0x0x7f45ccacf000) 0 + primary-for QTextDocument (0x0x7f45ccde1618) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7f45ccacf240) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f45ccacf1e0) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f45ccbd2360) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f45ccbd23c0) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f45ccbd2420) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f45ccbd1208) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16u) + QObject (0x0x7f45ccbd2300) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f45ccbd1208) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f45ccbd2a80) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16u) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f45ccbd2ba0) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f45ccbd2c00) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16u) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f45ccbd2b40) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f45ccbd2d80) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16u) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f45ccbd2de0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16u) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f45ccbd2e40) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16u) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f45ccbd2ea0) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16u) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f45ccbd2f00) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16u) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f45ccbd2f60) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16u) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f45cc8d5000) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16u) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f45cc8d5060) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16u) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f45cc8d50c0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16u) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f45ccbd1750) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16u) + QAccessibleEvent (0x0x7f45cc8d59c0) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f45ccbd1750) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f45ccbd17b8) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16u) + QAccessibleEvent (0x0x7f45cc8d5a20) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f45ccbd17b8) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f45ccbd1820) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f45ccbd1888) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f45ccbd1820) + QAccessibleEvent (0x0x7f45cc8d5a80) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f45ccbd1888) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7f45ccbd18f0) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f45ccbd1958) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f45ccbd18f0) + QAccessibleEvent (0x0x7f45cc8d5ae0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f45ccbd1958) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7f45ccbd19c0) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f45ccbd1a28) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f45ccbd19c0) + QAccessibleEvent (0x0x7f45cc8d5b40) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f45ccbd1a28) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7f45ccbd1a90) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f45ccbd1af8) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f45ccbd1a90) + QAccessibleEvent (0x0x7f45cc8d5ba0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f45ccbd1af8) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7f45ccbd1b60) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16u) + QAccessibleEvent (0x0x7f45cc8d5c00) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f45ccbd1b60) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f45ccbd1bc8) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16u) + QAccessibleEvent (0x0x7f45cc8d5c60) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f45ccbd1bc8) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f45cc8d5d20) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16u) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f45cc8d5de0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f45ccbd1c30) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16u) + QObject (0x0x7f45cc8d5d80) 0 + primary-for QAccessibleBridgePlugin (0x0x7f45ccbd1c30) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0u +24 0u +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f45ccbd1c98) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16u) + QAccessibleInterface (0x0x7f45cc8d5e40) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f45ccbd1c98) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f45ccbd1d00) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16u) + QAccessibleObject (0x0x7f45ccbd1d68) 0 + primary-for QAccessibleApplication (0x0x7f45ccbd1d00) + QAccessibleInterface (0x0x7f45cc8d5ea0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f45ccbd1d68) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f45cc8d5f60) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f45ccbd1dd0) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16u) + QObject (0x0x7f45cc8d5f00) 0 + primary-for QAccessiblePlugin (0x0x7f45ccbd1dd0) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f45cc9be000) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f45cc9be180) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16u) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f45cc9be300) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f45ccaa1720) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f45cc72da20) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f45cc73a9a0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16u) + QObject (0x0x7f45cc72d960) 0 + primary-for QWindow (0x0x7f45cc73a9a0) + QSurface (0x0x7f45cc72d9c0) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312u) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f45cc72db40) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7f45cc72f958) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16u) + QPixmap (0x0x7f45cc72f9c0) 0 + primary-for QBitmap (0x0x7f45cc72f958) + QPaintDevice (0x0x7f45cc72dc00) 0 + primary-for QPixmap (0x0x7f45cc72f9c0) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f45cc7b4000) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f45cc72fbc8) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16u) + QObject (0x0x7f45cc72df60) 0 + primary-for QClipboard (0x0x7f45cc72fbc8) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f45cc7b4060) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f45cc7b4120) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f45cc72fc30) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16u) + QObject (0x0x7f45cc7b40c0) 0 + primary-for QDrag (0x0x7f45cc72fc30) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f45cc7b4180) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f45cc7b4480) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f45cc7b47e0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f45cc8c2a20) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f45cc81d208) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16u) + QObject (0x0x7f45cc8c29c0) 0 + primary-for QGenericPlugin (0x0x7f45cc81d208) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f45cc8c2a80) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f45cc8c2b40) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f45cc81d270) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16u) + QObject (0x0x7f45cc8c2ae0) 0 + primary-for QInputMethod (0x0x7f45cc81d270) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f45cc8c2c00) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f45cc81d2d8) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16u) + QCoreApplication (0x0x7f45cc81d340) 0 + primary-for QGuiApplication (0x0x7f45cc81d2d8) + QObject (0x0x7f45cc8c2ba0) 0 + primary-for QCoreApplication (0x0x7f45cc81d340) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7f45cc8c2e40) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f45cc8c2de0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16u) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f45cc5e0060) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f45cc81d548) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16u) + QObject (0x0x7f45cc5e0000) 0 + primary-for QIconEnginePlugin (0x0x7f45cc81d548) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0u +24 0u +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f45cc5e00c0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16u) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f45cc5e0240) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f45cc81d5b0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16u) + QObject (0x0x7f45cc5e01e0) 0 + primary-for QImageIOPlugin (0x0x7f45cc81d5b0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f45cc5e03c0) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f45cc5e0420) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f45cc5e0480) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f45cc5e0840) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f45cc5e0c00) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f45cc5e0f00) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f45cc39b660) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f45cc81ddd0) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16u) + QObject (0x0x7f45cc39b600) 0 + primary-for QMovie (0x0x7f45cc81ddd0) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f45cc39b780) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f45cc477e00) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16u) + QObject (0x0x7f45cc39b6c0) 0 + primary-for QOffscreenSurface (0x0x7f45cc477e00) + QSurface (0x0x7f45cc39b720) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160u) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f45cc39b840) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f45cc39b9c0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f45cbdce8a0) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f45cbdce900) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f45cbdce960) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f45cbdce9c0) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16u) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f45cbdcea80) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f45cbdd91a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbdcea20) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f45cbdceba0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f45cbdd9208) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbdceb40) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f45cbdcecc0) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f45cbdd9270) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbdcec60) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f45cbdcede0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f45cbdd92d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbdced80) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f45cbdcef60) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f45cbdd9340) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbdcef00) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f45cbe3f0c0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f45cbdd93a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f060) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f45cbe3f1e0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f45cbdd9410) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f180) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f45cbe3f300) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f45cbdd9478) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f2a0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f45cbe3f420) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f45cbdd94e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f3c0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f45cbe3f540) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f45cbdd9548) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f4e0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f45cbe3f660) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f45cbdd95b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f600) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f45cbe3f780) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f45cbdd9618) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f720) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f45cbe3f8a0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f45cbdd9680) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f840) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f45cbe3f9c0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f45cbdd96e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3f960) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f45cbe3fae0) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f45cbdd9750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3fa80) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f45cbe3fc00) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f45cbdd97b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3fba0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f45cbe3fd20) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f45cbdd9820) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3fcc0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f45cbe3fea0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f45cbdd9888) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3fe40) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f45cbb5a000) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f45cbdd98f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbe3ff60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f45cbb5a120) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f45cbdd9958) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a0c0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f45cbb5a240) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f45cbdd99c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a1e0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f45cbb5a360) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f45cbdd9a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a300) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f45cbb5a480) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f45cbdd9a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a420) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f45cbb5a5a0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f45cbdd9af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a540) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f45cbb5a6c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f45cbdd9b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a660) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f45cbb5a7e0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f45cbdd9bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a780) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f45cbb5a900) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f45cbdd9c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7f45cbb5a8a0) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f45cbb5a9c0) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f45cbb5ac00) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f45cbdd9d68) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16u) + QObject (0x0x7f45cbb5aba0) 0 + primary-for QOpenGLContextGroup (0x0x7f45cbdd9d68) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f45cbb5acc0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f45cbdd9dd0) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16u) + QObject (0x0x7f45cbb5ac60) 0 + primary-for QOpenGLContext (0x0x7f45cbdd9dd0) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f45cbb5ad20) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f45cbc74480) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f45cbc7c208) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16u) + QObject (0x0x7f45cbc74420) 0 + primary-for QOpenGLDebugLogger (0x0x7f45cbc7c208) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f45cbc74600) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f45cbc747e0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f45cbc74780) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f45cba7bea0) 0 + QOpenGLFunctions (0x0x7f45cbc74900) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1376 align=8 + base size=1376 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f45cbc749c0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2528 align=8 + base size=2528 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f45cba7bf08) 0 + QOpenGLFunctionsPrivate (0x0x7f45cbc74960) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f45cbc74d20) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16u) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f45cbc74e40) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7f45cb8677b8) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16u) + QPaintDevice (0x0x7f45cbc74ea0) 0 + primary-for QOpenGLPaintDevice (0x0x7f45cb8677b8) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f45cb8c4000) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f45cb8c43c0) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f45cb867958) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16u) + QObject (0x0x7f45cb8c4360) 0 + primary-for QOpenGLShader (0x0x7f45cb867958) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f45cb8c45a0) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f45cb867a90) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16u) + QObject (0x0x7f45cb8c4540) 0 + primary-for QOpenGLShaderProgram (0x0x7f45cb867a90) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f45cb8c4600) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f45cb8c4840) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f45cb8c49c0) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f45cb867bc8) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16u) + QObject (0x0x7f45cb8c4960) 0 + primary-for QOpenGLTimerQuery (0x0x7f45cb867bc8) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f45cb8c4a80) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f45cb867c30) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16u) + QObject (0x0x7f45cb8c4a20) 0 + primary-for QOpenGLTimeMonitor (0x0x7f45cb867c30) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f45cb8c4b40) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f45cb8c4ba0) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f45cb867c98) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16u) + QObject (0x0x7f45cb8c4ae0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f45cb867c98) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f45cb8c4d20) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7f45cb6518c0) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16u) + QWindow (0x0x7f45cb651930) 0 + primary-for QPaintDeviceWindow (0x0x7f45cb6518c0) + QObject (0x0x7f45cb8c4c00) 0 + primary-for QWindow (0x0x7f45cb651930) + QSurface (0x0x7f45cb8c4c60) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336u) + QPaintDevice (0x0x7f45cb8c4cc0) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400u) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f45cb8c4ea0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7f45cb867d00) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16u) + QPaintDeviceWindow (0x0x7f45cb66a070) 0 + primary-for QOpenGLWindow (0x0x7f45cb867d00) + QWindow (0x0x7f45cb66a0e0) 0 + primary-for QPaintDeviceWindow (0x0x7f45cb66a070) + QObject (0x0x7f45cb8c4d80) 0 + primary-for QWindow (0x0x7f45cb66a0e0) + QSurface (0x0x7f45cb8c4de0) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384u) + QPaintDevice (0x0x7f45cb8c4e40) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448u) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f45cb8c4f00) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f45cb6ad600) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7f45cb6add20) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7f45cb2cc068) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16u) + QPaintDevice (0x0x7f45cb6adcc0) 0 + primary-for QPagedPaintDevice (0x0x7f45cb2cc068) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f45cb6adde0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f45cb6add80) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f45cb37a720) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f45cb37aa20) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16u) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f45cb37ac60) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f45cb159120) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7f45cb1a8070) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16u) + QObject (0x0x7f45cb159060) 0 + primary-for QPdfWriter (0x0x7f45cb1a8070) + QPagedPaintDevice (0x0x7f45cb2ccaf8) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176u) + QPaintDevice (0x0x7f45cb1590c0) 16 + primary-for QPagedPaintDevice (0x0x7f45cb2ccaf8) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7f45cb2ccb60) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16u) + QPaintDevice (0x0x7f45cb1592a0) 0 + primary-for QPicture (0x0x7f45cb2ccb60) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7f45cb159600) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7f45cb1596c0) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7f45cb2ccd00) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16u) + QObject (0x0x7f45cb159660) 0 + primary-for QPictureFormatPlugin (0x0x7f45cb2ccd00) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f45cb159780) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f45cb159720) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f45cb271960) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7f45cb27b3a8) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16u) + QPaintDeviceWindow (0x0x7f45cb279a10) 0 + primary-for QRasterWindow (0x0x7f45cb27b3a8) + QWindow (0x0x7f45cb279a80) 0 + primary-for QPaintDeviceWindow (0x0x7f45cb279a10) + QObject (0x0x7f45cb271840) 0 + primary-for QWindow (0x0x7f45cb279a80) + QSurface (0x0x7f45cb2718a0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344u) + QPaintDevice (0x0x7f45cb271900) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408u) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f45cb271a20) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f45cb27b478) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16u) + QObject (0x0x7f45cb2719c0) 0 + primary-for QScreen (0x0x7f45cb27b478) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f45cb271ae0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f45cb27b4e0) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16u) + QObject (0x0x7f45cb271a80) 0 + primary-for QSessionManager (0x0x7f45cb27b4e0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f45cb271b40) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16u) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f45cb271de0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f45cb27b680) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16u) + QAbstractItemModel (0x0x7f45cb27b6e8) 0 + primary-for QStandardItemModel (0x0x7f45cb27b680) + QObject (0x0x7f45cb271d80) 0 + primary-for QAbstractItemModel (0x0x7f45cb27b6e8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f45cb271e40) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f45cafc8360) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f45cb27b888) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16u) + QObject (0x0x7f45cafc8300) 0 + primary-for QStyleHints (0x0x7f45cb27b888) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f45cafc8420) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f45cb27b8f0) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16u) + QObject (0x0x7f45cafc83c0) 0 + primary-for QTextObject (0x0x7f45cb27b8f0) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f45cafc84e0) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f45cb27b958) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16u) + QTextObject (0x0x7f45cb27b9c0) 0 + primary-for QTextBlockGroup (0x0x7f45cb27b958) + QObject (0x0x7f45cafc8480) 0 + primary-for QTextObject (0x0x7f45cb27b9c0) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f45cafc8540) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16u) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f45cafc8600) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f45cafc8660) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f45cb27ba28) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16u) + QTextObject (0x0x7f45cb27ba90) 0 + primary-for QTextFrame (0x0x7f45cb27ba28) + QObject (0x0x7f45cafc85a0) 0 + primary-for QTextObject (0x0x7f45cb27ba90) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f45cafc8960) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16u) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f45cafc8a20) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f45cafc89c0) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f45cb073000) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f45cb073360) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f45cb088000) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16u) + QObject (0x0x7f45cb073300) 0 + primary-for QSyntaxHighlighter (0x0x7f45cb088000) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f45cb0733c0) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f45cb073420) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f45cb0734e0) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f45cb088068) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16u) + QTextBlockGroup (0x0x7f45cb0880d0) 0 + primary-for QTextList (0x0x7f45cb088068) + QTextObject (0x0x7f45cb088138) 0 + primary-for QTextBlockGroup (0x0x7f45cb0880d0) + QObject (0x0x7f45cb073480) 0 + primary-for QTextObject (0x0x7f45cb088138) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f45cb073540) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f45cb073600) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f45cb0881a0) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16u) + QTextFrame (0x0x7f45cb088208) 0 + primary-for QTextTable (0x0x7f45cb0881a0) + QTextObject (0x0x7f45cb088270) 0 + primary-for QTextFrame (0x0x7f45cb088208) + QObject (0x0x7f45cb0735a0) 0 + primary-for QTextObject (0x0x7f45cb088270) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f45cb0736c0) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f45cb0882d8) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16u) + QObject (0x0x7f45cb073660) 0 + primary-for QValidator (0x0x7f45cb0882d8) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f45cb073780) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f45cb088340) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16u) + QValidator (0x0x7f45cb0883a8) 0 + primary-for QIntValidator (0x0x7f45cb088340) + QObject (0x0x7f45cb073720) 0 + primary-for QValidator (0x0x7f45cb0883a8) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f45cb073840) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f45cb088410) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16u) + QValidator (0x0x7f45cb088478) 0 + primary-for QDoubleValidator (0x0x7f45cb088410) + QObject (0x0x7f45cb0737e0) 0 + primary-for QValidator (0x0x7f45cb088478) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7f45cb073960) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7f45cb0884e0) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16u) + QValidator (0x0x7f45cb088548) 0 + primary-for QRegExpValidator (0x0x7f45cb0884e0) + QObject (0x0x7f45cb073900) 0 + primary-for QValidator (0x0x7f45cb088548) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f45cb073a20) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f45cb0885b0) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16u) + QValidator (0x0x7f45cb088618) 0 + primary-for QRegularExpressionValidator (0x0x7f45cb0885b0) + QObject (0x0x7f45cb0739c0) 0 + primary-for QValidator (0x0x7f45cb088618) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f45cb073ae0) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f45cb073a80) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f45cb073cc0) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f45cb073de0) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=48 align=8 + base size=48 base align=8 +QWidget (0x0x7f45cad9bb60) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16u) + QObject (0x0x7f45cb073d20) 0 + primary-for QWidget (0x0x7f45cad9bb60) + QPaintDevice (0x0x7f45cb073d80) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448u) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f45cae612a0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0u +480 0u +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=48 align=8 + base size=48 base align=8 +QAbstractButton (0x0x7f45cb0889c0) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16u) + QWidget (0x0x7f45cae7fe70) 0 + primary-for QAbstractButton (0x0x7f45cb0889c0) + QObject (0x0x7f45cae611e0) 0 + primary-for QWidget (0x0x7f45cae7fe70) + QPaintDevice (0x0x7f45cae61240) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472u) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f45cae613c0) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QAbstractSpinBox) +488 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=48 align=8 + base size=48 base align=8 +QAbstractSpinBox (0x0x7f45cb088a28) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16u) + QWidget (0x0x7f45cae99540) 0 + primary-for QAbstractSpinBox (0x0x7f45cb088a28) + QObject (0x0x7f45cae61300) 0 + primary-for QWidget (0x0x7f45cae99540) + QPaintDevice (0x0x7f45cae61360) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 488u) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f45cae61600) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=48 align=8 + base size=48 base align=8 +QAbstractSlider (0x0x7f45cb088b60) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16u) + QWidget (0x0x7f45cab040e0) 0 + primary-for QAbstractSlider (0x0x7f45cb088b60) + QObject (0x0x7f45cae61540) 0 + primary-for QWidget (0x0x7f45cab040e0) + QPaintDevice (0x0x7f45cae615a0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456u) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f45cae61720) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI7QSlider) +456 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=48 align=8 + base size=48 base align=8 +QSlider (0x0x7f45cb088bc8) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16u) + QAbstractSlider (0x0x7f45cb088c30) 0 + primary-for QSlider (0x0x7f45cb088bc8) + QWidget (0x0x7f45cab04cb0) 0 + primary-for QAbstractSlider (0x0x7f45cb088c30) + QObject (0x0x7f45cae61660) 0 + primary-for QWidget (0x0x7f45cab04cb0) + QPaintDevice (0x0x7f45cae616c0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 456u) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f45cae617e0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f45cb088d00) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16u) + QObject (0x0x7f45cae61780) 0 + primary-for QStyle (0x0x7f45cb088d00) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f45cae61b40) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QTabBar) +488 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=48 align=8 + base size=48 base align=8 +QTabBar (0x0x7f45cb088f08) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16u) + QWidget (0x0x7f45cabe53f0) 0 + primary-for QTabBar (0x0x7f45cb088f08) + QObject (0x0x7f45cae61a80) 0 + primary-for QWidget (0x0x7f45cabe53f0) + QPaintDevice (0x0x7f45cae61ae0) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 488u) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f45cae61c60) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QTabWidget) +464 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=48 align=8 + base size=48 base align=8 +QTabWidget (0x0x7f45cb088f70) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16u) + QWidget (0x0x7f45cac21230) 0 + primary-for QTabWidget (0x0x7f45cb088f70) + QObject (0x0x7f45cae61ba0) 0 + primary-for QWidget (0x0x7f45cac21230) + QPaintDevice (0x0x7f45cae61c00) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 464u) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f45cae61d80) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QRubberBand) +448 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=48 align=8 + base size=48 base align=8 +QRubberBand (0x0x7f45cac4c000) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16u) + QWidget (0x0x7f45cac21f50) 0 + primary-for QRubberBand (0x0x7f45cac4c000) + QObject (0x0x7f45cae61cc0) 0 + primary-for QWidget (0x0x7f45cac21f50) + QPaintDevice (0x0x7f45cae61d20) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 448u) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f45cae61ea0) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QFrame) +448 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=48 align=8 + base size=48 base align=8 +QFrame (0x0x7f45cac4c068) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16u) + QWidget (0x0x7f45cac4db60) 0 + primary-for QFrame (0x0x7f45cac4c068) + QObject (0x0x7f45cae61de0) 0 + primary-for QWidget (0x0x7f45cac4db60) + QPaintDevice (0x0x7f45cae61e40) 16 + vptr=((& QFrame::_ZTV6QFrame) + 448u) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f45cae61f00) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f45cac4c0d0) 0 + QStyleOption (0x0x7f45cae61f60) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f45cac4c138) 0 + QStyleOption (0x0x7f45ca868000) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f45cac4c270) 0 + QStyleOption (0x0x7f45ca868180) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f45cac4c2d8) 0 + QStyleOption (0x0x7f45ca8681e0) 0 + +Class QStyleOptionHeader + size=120 align=8 + base size=116 base align=8 +QStyleOptionHeader (0x0x7f45cac4c340) 0 + QStyleOption (0x0x7f45ca8682a0) 0 + +Class QStyleOptionButton + size=96 align=8 + base size=96 base align=8 +QStyleOptionButton (0x0x7f45cac4c3a8) 0 + QStyleOption (0x0x7f45ca868300) 0 + +Class QStyleOptionTab + size=136 align=8 + base size=136 base align=8 +QStyleOptionTab (0x0x7f45cac4c4e0) 0 + QStyleOption (0x0x7f45ca868480) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f45cac4c6e8) 0 + QStyleOption (0x0x7f45ca868720) 0 + +Class QStyleOptionProgressBar + size=104 align=8 + base size=102 base align=8 +QStyleOptionProgressBar (0x0x7f45cac4c820) 0 + QStyleOption (0x0x7f45ca8688a0) 0 + +Class QStyleOptionMenuItem + size=136 align=8 + base size=136 base align=8 +QStyleOptionMenuItem (0x0x7f45cac4c888) 0 + QStyleOption (0x0x7f45ca868900) 0 + +Class QStyleOptionDockWidget + size=80 align=8 + base size=76 base align=8 +QStyleOptionDockWidget (0x0x7f45cac4c8f0) 0 + QStyleOption (0x0x7f45ca868960) 0 + +Class QStyleOptionViewItem + size=192 align=8 + base size=192 base align=8 +QStyleOptionViewItem (0x0x7f45cac4c9c0) 0 + QStyleOption (0x0x7f45ca8689c0) 0 + +Class QStyleOptionToolBox + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBox (0x0x7f45cac4caf8) 0 + QStyleOption (0x0x7f45ca868b40) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f45cac4cb60) 0 + QStyleOption (0x0x7f45ca868ba0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f45cac4cbc8) 0 + QStyleOption (0x0x7f45ca868c00) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=121 base align=8 +QStyleOptionSlider (0x0x7f45cac4cc30) 0 + QStyleOptionComplex (0x0x7f45cac4cc98) 0 + QStyleOption (0x0x7f45ca868c60) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f45cac4cd00) 0 + QStyleOptionComplex (0x0x7f45cac4cd68) 0 + QStyleOption (0x0x7f45ca868cc0) 0 + +Class QStyleOptionToolButton + size=136 align=8 + base size=136 base align=8 +QStyleOptionToolButton (0x0x7f45cac4cdd0) 0 + QStyleOptionComplex (0x0x7f45cac4ce38) 0 + QStyleOption (0x0x7f45ca868d20) 0 + +Class QStyleOptionComboBox + size=120 align=8 + base size=120 base align=8 +QStyleOptionComboBox (0x0x7f45cac4cf70) 0 + QStyleOptionComplex (0x0x7f45ca67d000) 0 + QStyleOption (0x0x7f45ca868ea0) 0 + +Class QStyleOptionTitleBar + size=96 align=8 + base size=96 base align=8 +QStyleOptionTitleBar (0x0x7f45ca67d068) 0 + QStyleOptionComplex (0x0x7f45ca67d0d0) 0 + QStyleOption (0x0x7f45ca868f00) 0 + +Class QStyleOptionGroupBox + size=120 align=8 + base size=116 base align=8 +QStyleOptionGroupBox (0x0x7f45ca67d138) 0 + QStyleOptionComplex (0x0x7f45ca67d1a0) 0 + QStyleOption (0x0x7f45ca695000) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f45ca67d208) 0 + QStyleOptionComplex (0x0x7f45ca67d270) 0 + QStyleOption (0x0x7f45ca695060) 0 + +Class QStyleOptionGraphicsItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionGraphicsItem (0x0x7f45ca67d2d8) 0 + QStyleOption (0x0x7f45ca6950c0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f45ca6952a0) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f45ca67d478) 0 + QStyleHintReturn (0x0x7f45ca695300) 0 + +Class QStyleHintReturnVariant + size=24 align=8 + base size=24 base align=8 +QStyleHintReturnVariant (0x0x7f45ca67d4e0) 0 + QStyleHintReturn (0x0x7f45ca695360) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f45ca6955a0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f45ca67d618) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16u) + QObject (0x0x7f45ca695540) 0 + primary-for QAbstractItemDelegate (0x0x7f45ca67d618) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f45ca695720) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI19QAbstractScrollArea) +480 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=48 align=8 + base size=48 base align=8 +QAbstractScrollArea (0x0x7f45ca67d680) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16u) + QFrame (0x0x7f45ca67d6e8) 0 + primary-for QAbstractScrollArea (0x0x7f45ca67d680) + QWidget (0x0x7f45ca6cdb60) 0 + primary-for QFrame (0x0x7f45ca67d6e8) + QObject (0x0x7f45ca695660) 0 + primary-for QWidget (0x0x7f45ca6cdb60) + QPaintDevice (0x0x7f45ca6956c0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 480u) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f45ca695840) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QAbstractItemView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI17QAbstractItemView) +784 0u +792 0u +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=48 align=8 + base size=48 base align=8 +QAbstractItemView (0x0x7f45ca67d750) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16u) + QAbstractScrollArea (0x0x7f45ca67d7b8) 0 + primary-for QAbstractItemView (0x0x7f45ca67d750) + QFrame (0x0x7f45ca67d820) 0 + primary-for QAbstractScrollArea (0x0x7f45ca67d7b8) + QWidget (0x0x7f45ca706540) 0 + primary-for QFrame (0x0x7f45ca67d820) + QObject (0x0x7f45ca695780) 0 + primary-for QWidget (0x0x7f45ca706540) + QPaintDevice (0x0x7f45ca6957e0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 784u) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f45ca77c770) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16u) + QAccessibleObject (0x0x7f45ca67d958) 0 + primary-for QAccessibleWidget (0x0x7f45ca77c770) + QAccessibleInterface (0x0x7f45ca6959c0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f45ca67d958) + QAccessibleActionInterface (0x0x7f45ca695a20) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224u) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f45ca695b40) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f45ca67d9c0) 0 + vptr=((& QAction::_ZTV7QAction) + 16u) + QObject (0x0x7f45ca695ae0) 0 + primary-for QAction (0x0x7f45ca67d9c0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f45ca695c00) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f45ca67da28) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16u) + QObject (0x0x7f45ca695ba0) 0 + primary-for QActionGroup (0x0x7f45ca67da28) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f45ca695cc0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f45ca67da90) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16u) + QGuiApplication (0x0x7f45ca67daf8) 0 + primary-for QApplication (0x0x7f45ca67da90) + QCoreApplication (0x0x7f45ca67db60) 0 + primary-for QGuiApplication (0x0x7f45ca67daf8) + QObject (0x0x7f45ca695c60) 0 + primary-for QCoreApplication (0x0x7f45ca67db60) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f45ca695d20) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16u) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f45ca67dbc8) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16u) + QLayoutItem (0x0x7f45ca695d80) 0 + primary-for QSpacerItem (0x0x7f45ca67dbc8) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f45ca67dc30) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16u) + QLayoutItem (0x0x7f45ca695de0) 0 + primary-for QWidgetItem (0x0x7f45ca67dc30) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f45ca67dc98) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16u) + QWidgetItem (0x0x7f45ca67dd00) 0 + primary-for QWidgetItemV2 (0x0x7f45ca67dc98) + QLayoutItem (0x0x7f45ca695e40) 0 + primary-for QWidgetItem (0x0x7f45ca67dd00) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f45ca695f60) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 47u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QLayout::setGeometry +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))-16 +232 (int (*)(...))(& _ZTI7QLayout) +240 0u +248 0u +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +272 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +280 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +288 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +312 (int (*)(...))QLayoutItem::hasHeightForWidth +320 (int (*)(...))QLayoutItem::heightForWidth +328 (int (*)(...))QLayoutItem::minimumHeightForWidth +336 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +344 (int (*)(...))QLayoutItem::widget +352 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +360 (int (*)(...))QLayoutItem::spacerItem +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f45ca801c40) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16u) + QObject (0x0x7f45ca695ea0) 0 + primary-for QLayout (0x0x7f45ca801c40) + QLayoutItem (0x0x7f45ca695f00) 16 + vptr=((& QLayout::_ZTV7QLayout) + 240u) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f45ca8490c0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QGridLayout::addItem +136 (int (*)(...))QGridLayout::expandingDirections +144 (int (*)(...))QGridLayout::minimumSize +152 (int (*)(...))QGridLayout::maximumSize +160 (int (*)(...))QGridLayout::setGeometry +168 (int (*)(...))QGridLayout::itemAt +176 (int (*)(...))QGridLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QGridLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QGridLayout::sizeHint +232 (int (*)(...))QGridLayout::hasHeightForWidth +240 (int (*)(...))QGridLayout::heightForWidth +248 (int (*)(...))QGridLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QGridLayout) +272 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +280 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +288 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +296 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +304 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +312 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +320 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +352 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +360 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +368 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f45ca67dd68) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16u) + QLayout (0x0x7f45ca8288c0) 0 + primary-for QGridLayout (0x0x7f45ca67dd68) + QObject (0x0x7f45ca849000) 0 + primary-for QLayout (0x0x7f45ca8288c0) + QLayoutItem (0x0x7f45ca849060) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 272u) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f45ca8491e0) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI10QBoxLayout) +272 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +280 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f45ca67ddd0) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16u) + QLayout (0x0x7f45ca4682a0) 0 + primary-for QBoxLayout (0x0x7f45ca67ddd0) + QObject (0x0x7f45ca849120) 0 + primary-for QLayout (0x0x7f45ca4682a0) + QLayoutItem (0x0x7f45ca849180) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 272u) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f45ca849300) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QHBoxLayout) +272 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +280 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f45ca67dea0) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16u) + QBoxLayout (0x0x7f45ca67df08) 0 + primary-for QHBoxLayout (0x0x7f45ca67dea0) + QLayout (0x0x7f45ca468cb0) 0 + primary-for QBoxLayout (0x0x7f45ca67df08) + QObject (0x0x7f45ca849240) 0 + primary-for QLayout (0x0x7f45ca468cb0) + QLayoutItem (0x0x7f45ca8492a0) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 272u) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f45ca849420) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QVBoxLayout) +272 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +280 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f45ca67df70) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16u) + QBoxLayout (0x0x7f45ca495000) 0 + primary-for QVBoxLayout (0x0x7f45ca67df70) + QLayout (0x0x7f45ca4931c0) 0 + primary-for QBoxLayout (0x0x7f45ca495000) + QObject (0x0x7f45ca849360) 0 + primary-for QLayout (0x0x7f45ca4931c0) + QLayoutItem (0x0x7f45ca8493c0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 272u) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f45ca8494e0) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f45ca495068) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16u) + QObject (0x0x7f45ca849480) 0 + primary-for QButtonGroup (0x0x7f45ca495068) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f45ca849600) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=48 align=8 + base size=48 base align=8 +QCalendarWidget (0x0x7f45ca4950d0) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16u) + QWidget (0x0x7f45ca493cb0) 0 + primary-for QCalendarWidget (0x0x7f45ca4950d0) + QObject (0x0x7f45ca849540) 0 + primary-for QWidget (0x0x7f45ca493cb0) + QPaintDevice (0x0x7f45ca8495a0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456u) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f45ca849720) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI9QCheckBox) +472 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=48 align=8 + base size=48 base align=8 +QCheckBox (0x0x7f45ca495138) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16u) + QAbstractButton (0x0x7f45ca4951a0) 0 + primary-for QCheckBox (0x0x7f45ca495138) + QWidget (0x0x7f45ca4bcc40) 0 + primary-for QAbstractButton (0x0x7f45ca4951a0) + QObject (0x0x7f45ca849660) 0 + primary-for QWidget (0x0x7f45ca4bcc40) + QPaintDevice (0x0x7f45ca8496c0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 472u) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f45ca849840) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=48 align=8 + base size=48 base align=8 +QDialog (0x0x7f45ca495208) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16u) + QWidget (0x0x7f45ca4ef310) 0 + primary-for QDialog (0x0x7f45ca495208) + QObject (0x0x7f45ca849780) 0 + primary-for QWidget (0x0x7f45ca4ef310) + QPaintDevice (0x0x7f45ca8497e0) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488u) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f45ca849960) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=48 align=8 + base size=48 base align=8 +QColorDialog (0x0x7f45ca495270) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16u) + QDialog (0x0x7f45ca4952d8) 0 + primary-for QColorDialog (0x0x7f45ca495270) + QWidget (0x0x7f45ca4efb60) 0 + primary-for QDialog (0x0x7f45ca4952d8) + QObject (0x0x7f45ca8498a0) 0 + primary-for QWidget (0x0x7f45ca4efb60) + QPaintDevice (0x0x7f45ca849900) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488u) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f45ca849b40) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f45ca849c60) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 107u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QColumnView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QColumnView::setModel +472 (int (*)(...))QColumnView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QColumnView::visualRect +496 (int (*)(...))QColumnView::scrollTo +504 (int (*)(...))QColumnView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QColumnView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QColumnView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QColumnView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QColumnView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QColumnView::moveCursor +688 (int (*)(...))QColumnView::horizontalOffset +696 (int (*)(...))QColumnView::verticalOffset +704 (int (*)(...))QColumnView::isIndexHidden +712 (int (*)(...))QColumnView::setSelection +720 (int (*)(...))QColumnView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QColumnView::createColumn +776 (int (*)(...))-16 +784 (int (*)(...))(& _ZTI11QColumnView) +792 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +800 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=48 align=8 + base size=48 base align=8 +QColumnView (0x0x7f45ca495410) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16u) + QAbstractItemView (0x0x7f45ca495478) 0 + primary-for QColumnView (0x0x7f45ca495410) + QAbstractScrollArea (0x0x7f45ca4954e0) 0 + primary-for QAbstractItemView (0x0x7f45ca495478) + QFrame (0x0x7f45ca495548) 0 + primary-for QAbstractScrollArea (0x0x7f45ca4954e0) + QWidget (0x0x7f45ca5469a0) 0 + primary-for QFrame (0x0x7f45ca495548) + QObject (0x0x7f45ca849ba0) 0 + primary-for QWidget (0x0x7f45ca5469a0) + QPaintDevice (0x0x7f45ca849c00) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 792u) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f45ca849d80) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QComboBox) +464 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +472 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=48 align=8 + base size=48 base align=8 +QComboBox (0x0x7f45ca4955b0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16u) + QWidget (0x0x7f45ca582070) 0 + primary-for QComboBox (0x0x7f45ca4955b0) + QObject (0x0x7f45ca849cc0) 0 + primary-for QWidget (0x0x7f45ca582070) + QPaintDevice (0x0x7f45ca849d20) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 464u) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f45ca849ea0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QPushButton) +472 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=48 align=8 + base size=48 base align=8 +QPushButton (0x0x7f45ca495618) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16u) + QAbstractButton (0x0x7f45ca495680) 0 + primary-for QPushButton (0x0x7f45ca495618) + QWidget (0x0x7f45ca5b93f0) 0 + primary-for QAbstractButton (0x0x7f45ca495680) + QObject (0x0x7f45ca849de0) 0 + primary-for QWidget (0x0x7f45ca5b93f0) + QPaintDevice (0x0x7f45ca849e40) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 472u) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f45ca5d9000) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI18QCommandLinkButton) +472 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=48 align=8 + base size=48 base align=8 +QCommandLinkButton (0x0x7f45ca4956e8) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16u) + QPushButton (0x0x7f45ca495750) 0 + primary-for QCommandLinkButton (0x0x7f45ca4956e8) + QAbstractButton (0x0x7f45ca4957b8) 0 + primary-for QPushButton (0x0x7f45ca495750) + QWidget (0x0x7f45ca5b9a80) 0 + primary-for QAbstractButton (0x0x7f45ca4957b8) + QObject (0x0x7f45ca849f00) 0 + primary-for QWidget (0x0x7f45ca5b9a80) + QPaintDevice (0x0x7f45ca849f60) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 472u) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f45ca5d90c0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f45ca495820) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16u) + QStyle (0x0x7f45ca495888) 0 + primary-for QCommonStyle (0x0x7f45ca495820) + QObject (0x0x7f45ca5d9060) 0 + primary-for QStyle (0x0x7f45ca495888) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f45ca5d9180) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f45ca4958f0) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16u) + QObject (0x0x7f45ca5d9120) 0 + primary-for QCompleter (0x0x7f45ca4958f0) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f45ca5d9240) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f45ca495958) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16u) + QObject (0x0x7f45ca5d91e0) 0 + primary-for QDataWidgetMapper (0x0x7f45ca495958) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f45ca5d9360) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QDateTimeEdit) +504 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=48 align=8 + base size=48 base align=8 +QDateTimeEdit (0x0x7f45ca4959c0) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16u) + QAbstractSpinBox (0x0x7f45ca495a28) 0 + primary-for QDateTimeEdit (0x0x7f45ca4959c0) + QWidget (0x0x7f45ca61d9a0) 0 + primary-for QAbstractSpinBox (0x0x7f45ca495a28) + QObject (0x0x7f45ca5d92a0) 0 + primary-for QWidget (0x0x7f45ca61d9a0) + QPaintDevice (0x0x7f45ca5d9300) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 504u) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f45ca5d9480) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QTimeEdit) +504 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=48 align=8 + base size=48 base align=8 +QTimeEdit (0x0x7f45ca495a90) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16u) + QDateTimeEdit (0x0x7f45ca495af8) 0 + primary-for QTimeEdit (0x0x7f45ca495a90) + QAbstractSpinBox (0x0x7f45ca495b60) 0 + primary-for QDateTimeEdit (0x0x7f45ca495af8) + QWidget (0x0x7f45ca63d700) 0 + primary-for QAbstractSpinBox (0x0x7f45ca495b60) + QObject (0x0x7f45ca5d93c0) 0 + primary-for QWidget (0x0x7f45ca63d700) + QPaintDevice (0x0x7f45ca5d9420) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 504u) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f45ca5d95a0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QDateEdit) +504 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=48 align=8 + base size=48 base align=8 +QDateEdit (0x0x7f45ca495bc8) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16u) + QDateTimeEdit (0x0x7f45ca495c30) 0 + primary-for QDateEdit (0x0x7f45ca495bc8) + QAbstractSpinBox (0x0x7f45ca495c98) 0 + primary-for QDateTimeEdit (0x0x7f45ca495c30) + QWidget (0x0x7f45ca63dbd0) 0 + primary-for QAbstractSpinBox (0x0x7f45ca495c98) + QObject (0x0x7f45ca5d94e0) 0 + primary-for QWidget (0x0x7f45ca63dbd0) + QPaintDevice (0x0x7f45ca5d9540) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 504u) + +Class QDesktopWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesktopWidget::QPrivateSignal (0x0x7f45ca5d97e0) 0 empty + +Vtable for QDesktopWidget +QDesktopWidget::_ZTV14QDesktopWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDesktopWidget) +16 (int (*)(...))QDesktopWidget::metaObject +24 (int (*)(...))QDesktopWidget::qt_metacast +32 (int (*)(...))QDesktopWidget::qt_metacall +40 (int (*)(...))QDesktopWidget::~QDesktopWidget +48 (int (*)(...))QDesktopWidget::~QDesktopWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDesktopWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QDesktopWidget) +448 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD1Ev +456 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesktopWidget + size=48 align=8 + base size=48 base align=8 +QDesktopWidget (0x0x7f45ca495dd0) 0 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 16u) + QWidget (0x0x7f45ca283e70) 0 + primary-for QDesktopWidget (0x0x7f45ca495dd0) + QObject (0x0x7f45ca5d9720) 0 + primary-for QWidget (0x0x7f45ca283e70) + QPaintDevice (0x0x7f45ca5d9780) 16 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 448u) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f45ca5d9900) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QDial) +456 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +464 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=48 align=8 + base size=48 base align=8 +QDial (0x0x7f45ca495e38) 0 + vptr=((& QDial::_ZTV5QDial) + 16u) + QAbstractSlider (0x0x7f45ca495ea0) 0 + primary-for QDial (0x0x7f45ca495e38) + QWidget (0x0x7f45ca2b67e0) 0 + primary-for QAbstractSlider (0x0x7f45ca495ea0) + QObject (0x0x7f45ca5d9840) 0 + primary-for QWidget (0x0x7f45ca2b67e0) + QPaintDevice (0x0x7f45ca5d98a0) 16 + vptr=((& QDial::_ZTV5QDial) + 456u) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f45ca5d9a20) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=48 align=8 + base size=48 base align=8 +QDialogButtonBox (0x0x7f45ca495f08) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16u) + QWidget (0x0x7f45ca2b6e70) 0 + primary-for QDialogButtonBox (0x0x7f45ca495f08) + QObject (0x0x7f45ca5d9960) 0 + primary-for QWidget (0x0x7f45ca2b6e70) + QPaintDevice (0x0x7f45ca5d99c0) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448u) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QFileIconProvider::type + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f45ca5d9ba0) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16u) + +Class QDirModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDirModel::QPrivateSignal (0x0x7f45ca5d9e40) 0 empty + +Vtable for QDirModel +QDirModel::_ZTV9QDirModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDirModel) +16 (int (*)(...))QDirModel::metaObject +24 (int (*)(...))QDirModel::qt_metacast +32 (int (*)(...))QDirModel::qt_metacall +40 (int (*)(...))QDirModel::~QDirModel +48 (int (*)(...))QDirModel::~QDirModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDirModel::index +120 (int (*)(...))QDirModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QDirModel::rowCount +144 (int (*)(...))QDirModel::columnCount +152 (int (*)(...))QDirModel::hasChildren +160 (int (*)(...))QDirModel::data +168 (int (*)(...))QDirModel::setData +176 (int (*)(...))QDirModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QDirModel::mimeTypes +216 (int (*)(...))QDirModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QDirModel::dropMimeData +240 (int (*)(...))QDirModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QDirModel::flags +328 (int (*)(...))QDirModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QDirModel + size=16 align=8 + base size=16 base align=8 +QDirModel (0x0x7f45ca302138) 0 + vptr=((& QDirModel::_ZTV9QDirModel) + 16u) + QAbstractItemModel (0x0x7f45ca3021a0) 0 + primary-for QDirModel (0x0x7f45ca302138) + QObject (0x0x7f45ca5d9de0) 0 + primary-for QAbstractItemModel (0x0x7f45ca3021a0) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f45ca5d9f60) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QDockWidget) +448 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=48 align=8 + base size=48 base align=8 +QDockWidget (0x0x7f45ca302208) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16u) + QWidget (0x0x7f45ca361ee0) 0 + primary-for QDockWidget (0x0x7f45ca302208) + QObject (0x0x7f45ca5d9ea0) 0 + primary-for QWidget (0x0x7f45ca361ee0) + QPaintDevice (0x0x7f45ca5d9f00) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 448u) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f45ca3bc120) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f45ca3bc360) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=48 align=8 + base size=48 base align=8 +QErrorMessage (0x0x7f45ca302410) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16u) + QDialog (0x0x7f45ca302478) 0 + primary-for QErrorMessage (0x0x7f45ca302410) + QWidget (0x0x7f45ca418070) 0 + primary-for QDialog (0x0x7f45ca302478) + QObject (0x0x7f45ca3bc2a0) 0 + primary-for QWidget (0x0x7f45ca418070) + QPaintDevice (0x0x7f45ca3bc300) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488u) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f45ca3bc480) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=48 align=8 + base size=48 base align=8 +QFileDialog (0x0x7f45ca3024e0) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16u) + QDialog (0x0x7f45ca302548) 0 + primary-for QFileDialog (0x0x7f45ca3024e0) + QWidget (0x0x7f45ca418700) 0 + primary-for QDialog (0x0x7f45ca302548) + QObject (0x0x7f45ca3bc3c0) 0 + primary-for QWidget (0x0x7f45ca418700) + QPaintDevice (0x0x7f45ca3bc420) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488u) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f45ca3bc660) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QFileSystemModel::mimeTypes +216 (int (*)(...))QFileSystemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QFileSystemModel::dropMimeData +240 (int (*)(...))QFileSystemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QFileSystemModel::fetchMore +312 (int (*)(...))QFileSystemModel::canFetchMore +320 (int (*)(...))QFileSystemModel::flags +328 (int (*)(...))QFileSystemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f45ca302680) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16u) + QAbstractItemModel (0x0x7f45ca3026e8) 0 + primary-for QFileSystemModel (0x0x7f45ca302680) + QObject (0x0x7f45ca3bc600) 0 + primary-for QAbstractItemModel (0x0x7f45ca3026e8) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f45ca3bc7e0) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QFocusFrame) +448 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=48 align=8 + base size=48 base align=8 +QFocusFrame (0x0x7f45ca302750) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16u) + QWidget (0x0x7f45ca093e00) 0 + primary-for QFocusFrame (0x0x7f45ca302750) + QObject (0x0x7f45ca3bc720) 0 + primary-for QWidget (0x0x7f45ca093e00) + QPaintDevice (0x0x7f45ca3bc780) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 448u) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f45ca3bc900) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI13QFontComboBox) +464 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +472 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=48 align=8 + base size=48 base align=8 +QFontComboBox (0x0x7f45ca3027b8) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16u) + QComboBox (0x0x7f45ca302820) 0 + primary-for QFontComboBox (0x0x7f45ca3027b8) + QWidget (0x0x7f45ca0dc4d0) 0 + primary-for QComboBox (0x0x7f45ca302820) + QObject (0x0x7f45ca3bc840) 0 + primary-for QWidget (0x0x7f45ca0dc4d0) + QPaintDevice (0x0x7f45ca3bc8a0) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 464u) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f45ca3bcb40) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=48 align=8 + base size=48 base align=8 +QFontDialog (0x0x7f45ca3029c0) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16u) + QDialog (0x0x7f45ca302a28) 0 + primary-for QFontDialog (0x0x7f45ca3029c0) + QWidget (0x0x7f45ca10ab60) 0 + primary-for QDialog (0x0x7f45ca302a28) + QObject (0x0x7f45ca3bca80) 0 + primary-for QWidget (0x0x7f45ca10ab60) + QPaintDevice (0x0x7f45ca3bcae0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488u) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f45ca3bcd80) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f45ca3bcde0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 50u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QFormLayout::addItem +136 (int (*)(...))QFormLayout::expandingDirections +144 (int (*)(...))QFormLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QFormLayout::setGeometry +168 (int (*)(...))QFormLayout::itemAt +176 (int (*)(...))QFormLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QFormLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QFormLayout::sizeHint +232 (int (*)(...))QFormLayout::hasHeightForWidth +240 (int (*)(...))QFormLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI11QFormLayout) +264 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +272 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +280 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +288 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +312 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +344 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f45ca302b60) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16u) + QLayout (0x0x7f45ca15c930) 0 + primary-for QFormLayout (0x0x7f45ca302b60) + QObject (0x0x7f45ca3bccc0) 0 + primary-for QLayout (0x0x7f45ca15c930) + QLayoutItem (0x0x7f45ca3bcd20) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 264u) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f45ca1a43c0) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f45ca302d00) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16u) + QObject (0x0x7f45ca1a4360) 0 + primary-for QGesture (0x0x7f45ca302d00) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f45ca1a4480) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f45ca302d68) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16u) + QGesture (0x0x7f45ca302dd0) 0 + primary-for QPanGesture (0x0x7f45ca302d68) + QObject (0x0x7f45ca1a4420) 0 + primary-for QGesture (0x0x7f45ca302dd0) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f45ca1a4540) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f45ca302e38) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16u) + QGesture (0x0x7f45ca302ea0) 0 + primary-for QPinchGesture (0x0x7f45ca302e38) + QObject (0x0x7f45ca1a44e0) 0 + primary-for QGesture (0x0x7f45ca302ea0) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f45ca1a4840) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f45ca228000) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16u) + QGesture (0x0x7f45ca228068) 0 + primary-for QSwipeGesture (0x0x7f45ca228000) + QObject (0x0x7f45ca1a47e0) 0 + primary-for QGesture (0x0x7f45ca228068) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f45ca1a4960) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f45ca2280d0) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16u) + QGesture (0x0x7f45ca228138) 0 + primary-for QTapGesture (0x0x7f45ca2280d0) + QObject (0x0x7f45ca1a4900) 0 + primary-for QGesture (0x0x7f45ca228138) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f45ca1a4a20) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f45ca2281a0) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16u) + QGesture (0x0x7f45ca228208) 0 + primary-for QTapAndHoldGesture (0x0x7f45ca2281a0) + QObject (0x0x7f45ca1a49c0) 0 + primary-for QGesture (0x0x7f45ca228208) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent + +Class QGestureEvent + size=56 align=8 + base size=56 base align=8 +QGestureEvent (0x0x7f45ca228270) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16u) + QEvent (0x0x7f45ca1a4a80) 0 + primary-for QGestureEvent (0x0x7f45ca228270) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0u +24 0u +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f45ca1a4e40) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16u) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f45c9f00000) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16u) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f45c9f00360) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0u +136 0u +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f45c9fbe150) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16u) + QObject (0x0x7f45c9f002a0) 0 + primary-for QGraphicsObject (0x0x7f45c9fbe150) + QGraphicsItem (0x0x7f45c9f00300) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128u) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f45ca228548) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16u) + QGraphicsItem (0x0x7f45c9f003c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca228548) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f45ca2285b0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f45ca228618) 0 + primary-for QGraphicsPathItem (0x0x7f45ca2285b0) + QGraphicsItem (0x0x7f45c9f00420) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca228618) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f45ca228680) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f45ca2286e8) 0 + primary-for QGraphicsRectItem (0x0x7f45ca228680) + QGraphicsItem (0x0x7f45c9f00480) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca2286e8) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f45ca228750) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f45ca2287b8) 0 + primary-for QGraphicsEllipseItem (0x0x7f45ca228750) + QGraphicsItem (0x0x7f45c9f004e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca2287b8) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f45ca228820) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f45ca228888) 0 + primary-for QGraphicsPolygonItem (0x0x7f45ca228820) + QGraphicsItem (0x0x7f45c9f00540) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca228888) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f45ca2288f0) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16u) + QGraphicsItem (0x0x7f45c9f005a0) 0 + primary-for QGraphicsLineItem (0x0x7f45ca2288f0) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f45ca228958) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16u) + QGraphicsItem (0x0x7f45c9f00600) 0 + primary-for QGraphicsPixmapItem (0x0x7f45ca228958) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f45c9f00720) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f45ca2289c0) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16u) + QGraphicsObject (0x0x7f45c9fffe70) 0 + primary-for QGraphicsTextItem (0x0x7f45ca2289c0) + QObject (0x0x7f45c9f00660) 0 + primary-for QGraphicsObject (0x0x7f45c9fffe70) + QGraphicsItem (0x0x7f45c9f006c0) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360u) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f45ca228af8) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f45ca228b60) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f45ca228af8) + QGraphicsItem (0x0x7f45c9f00960) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f45ca228b60) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f45ca228bc8) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16u) + QGraphicsItem (0x0x7f45c9f009c0) 0 + primary-for QGraphicsItemGroup (0x0x7f45ca228bc8) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f45c9f00b40) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16u) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0u +24 0u +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QGraphicsLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f45ca228c30) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16u) + QGraphicsLayoutItem (0x0x7f45c9f00cc0) 0 + primary-for QGraphicsLayout (0x0x7f45ca228c30) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f45c9f00de0) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f45ca228c98) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16u) + QObject (0x0x7f45c9f00d80) 0 + primary-for QGraphicsAnchor (0x0x7f45ca228c98) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsAnchorLayout::sizeHint +64 (int (*)(...))QGraphicsAnchorLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsAnchorLayout::count +88 (int (*)(...))QGraphicsAnchorLayout::itemAt +96 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f45ca228d00) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16u) + QGraphicsLayout (0x0x7f45ca228d68) 0 + primary-for QGraphicsAnchorLayout (0x0x7f45ca228d00) + QGraphicsLayoutItem (0x0x7f45c9f00e40) 0 + primary-for QGraphicsLayout (0x0x7f45ca228d68) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f45c9f00f00) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f45ca228dd0) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16u) + QObject (0x0x7f45c9f00ea0) 0 + primary-for QGraphicsEffect (0x0x7f45ca228dd0) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f45c9cfa120) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f45ca228f08) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16u) + QGraphicsEffect (0x0x7f45ca228f70) 0 + primary-for QGraphicsColorizeEffect (0x0x7f45ca228f08) + QObject (0x0x7f45c9cfa0c0) 0 + primary-for QGraphicsEffect (0x0x7f45ca228f70) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f45c9cfa1e0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f45c9d3a000) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16u) + QGraphicsEffect (0x0x7f45c9d3a068) 0 + primary-for QGraphicsBlurEffect (0x0x7f45c9d3a000) + QObject (0x0x7f45c9cfa180) 0 + primary-for QGraphicsEffect (0x0x7f45c9d3a068) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f45c9cfa3c0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f45c9d3a1a0) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16u) + QGraphicsEffect (0x0x7f45c9d3a208) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f45c9d3a1a0) + QObject (0x0x7f45c9cfa360) 0 + primary-for QGraphicsEffect (0x0x7f45c9d3a208) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f45c9cfa480) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f45c9d3a270) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16u) + QGraphicsEffect (0x0x7f45c9d3a2d8) 0 + primary-for QGraphicsOpacityEffect (0x0x7f45c9d3a270) + QObject (0x0x7f45c9cfa420) 0 + primary-for QGraphicsEffect (0x0x7f45c9d3a2d8) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsGridLayout::sizeHint +64 (int (*)(...))QGraphicsGridLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsGridLayout::count +88 (int (*)(...))QGraphicsGridLayout::itemAt +96 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f45c9d3a340) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16u) + QGraphicsLayout (0x0x7f45c9d3a3a8) 0 + primary-for QGraphicsGridLayout (0x0x7f45c9d3a340) + QGraphicsLayoutItem (0x0x7f45c9cfa4e0) 0 + primary-for QGraphicsLayout (0x0x7f45c9d3a3a8) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f45c9cfa5a0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f45c9d3a478) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16u) + QObject (0x0x7f45c9cfa540) 0 + primary-for QGraphicsItemAnimation (0x0x7f45c9d3a478) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLinearLayout::sizeHint +64 (int (*)(...))QGraphicsLinearLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsLinearLayout::count +88 (int (*)(...))QGraphicsLinearLayout::itemAt +96 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f45c9d3a4e0) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16u) + QGraphicsLayout (0x0x7f45c9d3a548) 0 + primary-for QGraphicsLinearLayout (0x0x7f45c9d3a4e0) + QGraphicsLayoutItem (0x0x7f45c9cfa600) 0 + primary-for QGraphicsLayout (0x0x7f45c9d3a548) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f45c9cfa780) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 92u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f45c9dd5700) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16u) + QGraphicsObject (0x0x7f45c9dd5770) 0 + primary-for QGraphicsWidget (0x0x7f45c9dd5700) + QObject (0x0x7f45c9cfa660) 0 + primary-for QGraphicsObject (0x0x7f45c9dd5770) + QGraphicsItem (0x0x7f45c9cfa6c0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376u) + QGraphicsLayoutItem (0x0x7f45c9cfa720) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688u) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f45c9cfa9c0) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 107u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f45c9d3a680) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16u) + QGraphicsWidget (0x0x7f45c9e1c2a0) 0 + primary-for QGraphicsProxyWidget (0x0x7f45c9d3a680) + QGraphicsObject (0x0x7f45c9e1c310) 0 + primary-for QGraphicsWidget (0x0x7f45c9e1c2a0) + QObject (0x0x7f45c9cfa8a0) 0 + primary-for QGraphicsObject (0x0x7f45c9e1c310) + QGraphicsItem (0x0x7f45c9cfa900) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496u) + QGraphicsLayoutItem (0x0x7f45c9cfa960) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808u) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f45c9cfac00) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f45c9d3a888) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16u) + QObject (0x0x7f45c9cfaba0) 0 + primary-for QGraphicsScene (0x0x7f45c9d3a888) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent + +Class QGraphicsSceneEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneEvent (0x0x7f45c9d3aa90) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16u) + QEvent (0x0x7f45c9cfaf00) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3aa90) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent + +Class QGraphicsSceneMouseEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMouseEvent (0x0x7f45c9d3aaf8) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3ab60) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f45c9d3aaf8) + QEvent (0x0x7f45c9af8060) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3ab60) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent + +Class QGraphicsSceneWheelEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneWheelEvent (0x0x7f45c9d3abc8) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3ac30) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f45c9d3abc8) + QEvent (0x0x7f45c9af80c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3ac30) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent + +Class QGraphicsSceneContextMenuEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f45c9d3ac98) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3ad00) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f45c9d3ac98) + QEvent (0x0x7f45c9af8120) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3ad00) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent + +Class QGraphicsSceneHoverEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHoverEvent (0x0x7f45c9d3ad68) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3add0) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f45c9d3ad68) + QEvent (0x0x7f45c9af8180) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3add0) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent + +Class QGraphicsSceneHelpEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHelpEvent (0x0x7f45c9d3ae38) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3aea0) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f45c9d3ae38) + QEvent (0x0x7f45c9af81e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3aea0) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent + +Class QGraphicsSceneDragDropEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f45c9d3af08) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9d3af70) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f45c9d3af08) + QEvent (0x0x7f45c9af8240) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9d3af70) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent + +Class QGraphicsSceneResizeEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneResizeEvent (0x0x7f45c9b3c000) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9b3c068) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f45c9b3c000) + QEvent (0x0x7f45c9af82a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9b3c068) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent + +Class QGraphicsSceneMoveEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMoveEvent (0x0x7f45c9b3c0d0) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16u) + QGraphicsSceneEvent (0x0x7f45c9b3c138) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f45c9b3c0d0) + QEvent (0x0x7f45c9af8300) 0 + primary-for QGraphicsSceneEvent (0x0x7f45c9b3c138) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f45c9af83c0) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f45c9b3c1a0) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16u) + QObject (0x0x7f45c9af8360) 0 + primary-for QGraphicsTransform (0x0x7f45c9b3c1a0) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f45c9af8480) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f45c9b3c208) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16u) + QGraphicsTransform (0x0x7f45c9b3c270) 0 + primary-for QGraphicsScale (0x0x7f45c9b3c208) + QObject (0x0x7f45c9af8420) 0 + primary-for QGraphicsTransform (0x0x7f45c9b3c270) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f45c9af8540) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f45c9b3c2d8) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16u) + QGraphicsTransform (0x0x7f45c9b3c340) 0 + primary-for QGraphicsRotation (0x0x7f45c9b3c2d8) + QObject (0x0x7f45c9af84e0) 0 + primary-for QGraphicsTransform (0x0x7f45c9b3c340) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f45c9af8660) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QScrollArea::scrollContentsBy +456 (int (*)(...))QScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QScrollArea) +480 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=48 align=8 + base size=48 base align=8 +QScrollArea (0x0x7f45c9b3c3a8) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16u) + QAbstractScrollArea (0x0x7f45c9b3c410) 0 + primary-for QScrollArea (0x0x7f45c9b3c3a8) + QFrame (0x0x7f45c9b3c478) 0 + primary-for QAbstractScrollArea (0x0x7f45c9b3c410) + QWidget (0x0x7f45c9b5abd0) 0 + primary-for QFrame (0x0x7f45c9b3c478) + QObject (0x0x7f45c9af85a0) 0 + primary-for QWidget (0x0x7f45c9b5abd0) + QPaintDevice (0x0x7f45c9af8600) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 480u) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f45c9af8780) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QGraphicsView::setupViewport +440 (int (*)(...))QGraphicsView::viewportEvent +448 (int (*)(...))QGraphicsView::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QGraphicsView::drawBackground +472 (int (*)(...))QGraphicsView::drawForeground +480 (int (*)(...))QGraphicsView::drawItems +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QGraphicsView) +504 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=48 align=8 + base size=48 base align=8 +QGraphicsView (0x0x7f45c9b3c4e0) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16u) + QAbstractScrollArea (0x0x7f45c9b3c548) 0 + primary-for QGraphicsView (0x0x7f45c9b3c4e0) + QFrame (0x0x7f45c9b3c5b0) 0 + primary-for QAbstractScrollArea (0x0x7f45c9b3c548) + QWidget (0x0x7f45c9b8d2a0) 0 + primary-for QFrame (0x0x7f45c9b3c5b0) + QObject (0x0x7f45c9af86c0) 0 + primary-for QWidget (0x0x7f45c9b8d2a0) + QPaintDevice (0x0x7f45c9af8720) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 504u) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f45c9af8ae0) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QGroupBox) +448 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=48 align=8 + base size=48 base align=8 +QGroupBox (0x0x7f45c9b3c7b8) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16u) + QWidget (0x0x7f45c9c30bd0) 0 + primary-for QGroupBox (0x0x7f45c9b3c7b8) + QObject (0x0x7f45c9af8a20) 0 + primary-for QWidget (0x0x7f45c9c30bd0) + QPaintDevice (0x0x7f45c9af8a80) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 448u) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f45c9af8c00) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 108u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QHeaderView::viewportEvent +448 (int (*)(...))QHeaderView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QHeaderView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QHeaderView::visualRect +496 (int (*)(...))QHeaderView::scrollTo +504 (int (*)(...))QHeaderView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QHeaderView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QHeaderView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QHeaderView::dataChanged +568 (int (*)(...))QHeaderView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QHeaderView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QHeaderView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QHeaderView::moveCursor +688 (int (*)(...))QHeaderView::horizontalOffset +696 (int (*)(...))QHeaderView::verticalOffset +704 (int (*)(...))QHeaderView::isIndexHidden +712 (int (*)(...))QHeaderView::setSelection +720 (int (*)(...))QHeaderView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QHeaderView::paintSection +776 (int (*)(...))QHeaderView::sectionSizeFromContents +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI11QHeaderView) +800 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +808 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=48 align=8 + base size=48 base align=8 +QHeaderView (0x0x7f45c9b3c820) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16u) + QAbstractItemView (0x0x7f45c9b3c888) 0 + primary-for QHeaderView (0x0x7f45c9b3c820) + QAbstractScrollArea (0x0x7f45c9b3c8f0) 0 + primary-for QAbstractItemView (0x0x7f45c9b3c888) + QFrame (0x0x7f45c9b3c958) 0 + primary-for QAbstractScrollArea (0x0x7f45c9b3c8f0) + QWidget (0x0x7f45c98622a0) 0 + primary-for QFrame (0x0x7f45c9b3c958) + QObject (0x0x7f45c9af8b40) 0 + primary-for QWidget (0x0x7f45c98622a0) + QPaintDevice (0x0x7f45c9af8ba0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 800u) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f45c9af8f00) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QLineEdit) +448 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=48 align=8 + base size=48 base align=8 +QLineEdit (0x0x7f45c9b3caf8) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16u) + QWidget (0x0x7f45c98a02a0) 0 + primary-for QLineEdit (0x0x7f45c9b3caf8) + QObject (0x0x7f45c9af8e40) 0 + primary-for QWidget (0x0x7f45c98a02a0) + QPaintDevice (0x0x7f45c9af8ea0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 448u) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f45c98d3060) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=48 align=8 + base size=48 base align=8 +QInputDialog (0x0x7f45c9b3cb60) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16u) + QDialog (0x0x7f45c9b3cbc8) 0 + primary-for QInputDialog (0x0x7f45c9b3cb60) + QWidget (0x0x7f45c98a0f50) 0 + primary-for QDialog (0x0x7f45c9b3cbc8) + QObject (0x0x7f45c9af8f60) 0 + primary-for QWidget (0x0x7f45c98a0f50) + QPaintDevice (0x0x7f45c98d3000) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488u) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f45c98d3240) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f45c9b3cd00) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16u) + QAbstractItemDelegate (0x0x7f45c9b3cd68) 0 + primary-for QItemDelegate (0x0x7f45c9b3cd00) + QObject (0x0x7f45c98d31e0) 0 + primary-for QAbstractItemDelegate (0x0x7f45c9b3cd68) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f45c98d32a0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16u) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f45c98d33c0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16u) + +Class QKeyEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeyEventTransition::QPrivateSignal (0x0x7f45c98d3540) 0 empty + +Vtable for QKeyEventTransition +QKeyEventTransition::_ZTV19QKeyEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QKeyEventTransition) +16 (int (*)(...))QKeyEventTransition::metaObject +24 (int (*)(...))QKeyEventTransition::qt_metacast +32 (int (*)(...))QKeyEventTransition::qt_metacall +40 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +48 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QKeyEventTransition::eventTest +120 (int (*)(...))QKeyEventTransition::onTransition + +Class QKeyEventTransition + size=16 align=8 + base size=16 base align=8 +QKeyEventTransition (0x0x7f45c9b3cea0) 0 + vptr=((& QKeyEventTransition::_ZTV19QKeyEventTransition) + 16u) + QEventTransition (0x0x7f45c9b3cf08) 0 + primary-for QKeyEventTransition (0x0x7f45c9b3cea0) + QAbstractTransition (0x0x7f45c9b3cf70) 0 + primary-for QEventTransition (0x0x7f45c9b3cf08) + QObject (0x0x7f45c98d34e0) 0 + primary-for QAbstractTransition (0x0x7f45c9b3cf70) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f45c98d3660) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=48 align=8 + base size=48 base align=8 +QKeySequenceEdit (0x0x7f45c9987000) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16u) + QWidget (0x0x7f45c99843f0) 0 + primary-for QKeySequenceEdit (0x0x7f45c9987000) + QObject (0x0x7f45c98d35a0) 0 + primary-for QWidget (0x0x7f45c99843f0) + QPaintDevice (0x0x7f45c98d3600) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448u) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f45c98d3780) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QLabel) +448 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=48 align=8 + base size=48 base align=8 +QLabel (0x0x7f45c9987068) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16u) + QFrame (0x0x7f45c99870d0) 0 + primary-for QLabel (0x0x7f45c9987068) + QWidget (0x0x7f45c9984a80) 0 + primary-for QFrame (0x0x7f45c99870d0) + QObject (0x0x7f45c98d36c0) 0 + primary-for QWidget (0x0x7f45c9984a80) + QPaintDevice (0x0x7f45c98d3720) 16 + vptr=((& QLabel::_ZTV6QLabel) + 448u) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f45c98d38a0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QLCDNumber) +448 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=48 align=8 + base size=48 base align=8 +QLCDNumber (0x0x7f45c9987138) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16u) + QFrame (0x0x7f45c99871a0) 0 + primary-for QLCDNumber (0x0x7f45c9987138) + QWidget (0x0x7f45c99b9230) 0 + primary-for QFrame (0x0x7f45c99871a0) + QObject (0x0x7f45c98d37e0) 0 + primary-for QWidget (0x0x7f45c99b9230) + QPaintDevice (0x0x7f45c98d3840) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 448u) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f45c98d39c0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QListView) +784 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +792 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=48 align=8 + base size=48 base align=8 +QListView (0x0x7f45c9987208) 0 + vptr=((& QListView::_ZTV9QListView) + 16u) + QAbstractItemView (0x0x7f45c9987270) 0 + primary-for QListView (0x0x7f45c9987208) + QAbstractScrollArea (0x0x7f45c99872d8) 0 + primary-for QAbstractItemView (0x0x7f45c9987270) + QFrame (0x0x7f45c9987340) 0 + primary-for QAbstractScrollArea (0x0x7f45c99872d8) + QWidget (0x0x7f45c99b9f50) 0 + primary-for QFrame (0x0x7f45c9987340) + QObject (0x0x7f45c98d3900) 0 + primary-for QWidget (0x0x7f45c99b9f50) + QPaintDevice (0x0x7f45c98d3960) 16 + vptr=((& QListView::_ZTV9QListView) + 784u) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::setBackgroundColor +48 (int (*)(...))QListWidgetItem::data +56 (int (*)(...))QListWidgetItem::setData +64 (int (*)(...))QListWidgetItem::operator< +72 (int (*)(...))QListWidgetItem::read +80 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=48 align=8 + base size=44 base align=8 +QListWidgetItem (0x0x7f45c98d3a20) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16u) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f45c98d3c60) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 110u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QListWidget::setModel +472 (int (*)(...))QListWidget::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))QListWidget::mimeTypes +776 (int (*)(...))QListWidget::mimeData +784 (int (*)(...))QListWidget::dropMimeData +792 (int (*)(...))QListWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI11QListWidget) +816 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +824 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=48 align=8 + base size=48 base align=8 +QListWidget (0x0x7f45c9987478) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16u) + QListView (0x0x7f45c99874e0) 0 + primary-for QListWidget (0x0x7f45c9987478) + QAbstractItemView (0x0x7f45c9987548) 0 + primary-for QListView (0x0x7f45c99874e0) + QAbstractScrollArea (0x0x7f45c99875b0) 0 + primary-for QAbstractItemView (0x0x7f45c9987548) + QFrame (0x0x7f45c9987618) 0 + primary-for QAbstractScrollArea (0x0x7f45c99875b0) + QWidget (0x0x7f45c9673000) 0 + primary-for QFrame (0x0x7f45c9987618) + QObject (0x0x7f45c98d3ba0) 0 + primary-for QWidget (0x0x7f45c9673000) + QPaintDevice (0x0x7f45c98d3c00) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 816u) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f45c98d3d80) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=48 align=8 + base size=48 base align=8 +QMainWindow (0x0x7f45c9987680) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16u) + QWidget (0x0x7f45c969e0e0) 0 + primary-for QMainWindow (0x0x7f45c9987680) + QObject (0x0x7f45c98d3cc0) 0 + primary-for QWidget (0x0x7f45c969e0e0) + QPaintDevice (0x0x7f45c98d3d20) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456u) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f45c96fc000) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMdiArea::setupViewport +440 (int (*)(...))QMdiArea::viewportEvent +448 (int (*)(...))QMdiArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI8QMdiArea) +480 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=48 align=8 + base size=48 base align=8 +QMdiArea (0x0x7f45c99877b8) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16u) + QAbstractScrollArea (0x0x7f45c9987820) 0 + primary-for QMdiArea (0x0x7f45c99877b8) + QFrame (0x0x7f45c9987888) 0 + primary-for QAbstractScrollArea (0x0x7f45c9987820) + QWidget (0x0x7f45c96dba80) 0 + primary-for QFrame (0x0x7f45c9987888) + QObject (0x0x7f45c98d3f00) 0 + primary-for QWidget (0x0x7f45c96dba80) + QPaintDevice (0x0x7f45c98d3f60) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 480u) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f45c96fc240) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=48 align=8 + base size=48 base align=8 +QMdiSubWindow (0x0x7f45c99879c0) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16u) + QWidget (0x0x7f45c9742620) 0 + primary-for QMdiSubWindow (0x0x7f45c99879c0) + QObject (0x0x7f45c96fc180) 0 + primary-for QWidget (0x0x7f45c9742620) + QPaintDevice (0x0x7f45c96fc1e0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448u) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f45c96fc4e0) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI5QMenu) +448 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=48 align=8 + base size=48 base align=8 +QMenu (0x0x7f45c9987af8) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16u) + QWidget (0x0x7f45c9782cb0) 0 + primary-for QMenu (0x0x7f45c9987af8) + QObject (0x0x7f45c96fc420) 0 + primary-for QWidget (0x0x7f45c9782cb0) + QPaintDevice (0x0x7f45c96fc480) 16 + vptr=((& QMenu::_ZTV5QMenu) + 448u) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f45c96fc600) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QMenuBar) +448 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=48 align=8 + base size=48 base align=8 +QMenuBar (0x0x7f45c9987b60) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16u) + QWidget (0x0x7f45c97b2a80) 0 + primary-for QMenuBar (0x0x7f45c9987b60) + QObject (0x0x7f45c96fc540) 0 + primary-for QWidget (0x0x7f45c97b2a80) + QPaintDevice (0x0x7f45c96fc5a0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 448u) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f45c96fc720) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=48 align=8 + base size=48 base align=8 +QMessageBox (0x0x7f45c9987bc8) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16u) + QDialog (0x0x7f45c9987c30) 0 + primary-for QMessageBox (0x0x7f45c9987bc8) + QWidget (0x0x7f45c97f5150) 0 + primary-for QDialog (0x0x7f45c9987c30) + QObject (0x0x7f45c96fc660) 0 + primary-for QWidget (0x0x7f45c97f5150) + QPaintDevice (0x0x7f45c96fc6c0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488u) + +Class QMouseEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMouseEventTransition::QPrivateSignal (0x0x7f45c96fc900) 0 empty + +Vtable for QMouseEventTransition +QMouseEventTransition::_ZTV21QMouseEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QMouseEventTransition) +16 (int (*)(...))QMouseEventTransition::metaObject +24 (int (*)(...))QMouseEventTransition::qt_metacast +32 (int (*)(...))QMouseEventTransition::qt_metacall +40 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +48 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMouseEventTransition::eventTest +120 (int (*)(...))QMouseEventTransition::onTransition + +Class QMouseEventTransition + size=16 align=8 + base size=16 base align=8 +QMouseEventTransition (0x0x7f45c9987dd0) 0 + vptr=((& QMouseEventTransition::_ZTV21QMouseEventTransition) + 16u) + QEventTransition (0x0x7f45c9987e38) 0 + primary-for QMouseEventTransition (0x0x7f45c9987dd0) + QAbstractTransition (0x0x7f45c9987ea0) 0 + primary-for QEventTransition (0x0x7f45c9987e38) + QObject (0x0x7f45c96fc8a0) 0 + primary-for QAbstractTransition (0x0x7f45c9987ea0) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f45c96fca20) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=48 align=8 + base size=48 base align=8 +QOpenGLWidget (0x0x7f45c9987f08) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16u) + QWidget (0x0x7f45c944c620) 0 + primary-for QOpenGLWidget (0x0x7f45c9987f08) + QObject (0x0x7f45c96fc960) 0 + primary-for QWidget (0x0x7f45c944c620) + QPaintDevice (0x0x7f45c96fc9c0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472u) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f45c96fcb40) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f45c96fcba0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextEdit::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI9QTextEdit) +520 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=48 align=8 + base size=48 base align=8 +QTextEdit (0x0x7f45c9987d68) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16u) + QAbstractScrollArea (0x0x7f45c9474000) 0 + primary-for QTextEdit (0x0x7f45c9987d68) + QFrame (0x0x7f45c9474068) 0 + primary-for QAbstractScrollArea (0x0x7f45c9474000) + QWidget (0x0x7f45c944ce00) 0 + primary-for QFrame (0x0x7f45c9474068) + QObject (0x0x7f45c96fca80) 0 + primary-for QWidget (0x0x7f45c944ce00) + QPaintDevice (0x0x7f45c96fcae0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 520u) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f45c96fcde0) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QPlainTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QPlainTextEdit::loadResource +472 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +480 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +488 (int (*)(...))QPlainTextEdit::insertFromMimeData +496 (int (*)(...))QPlainTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI14QPlainTextEdit) +520 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=48 align=8 + base size=48 base align=8 +QPlainTextEdit (0x0x7f45c94741a0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16u) + QAbstractScrollArea (0x0x7f45c9474208) 0 + primary-for QPlainTextEdit (0x0x7f45c94741a0) + QFrame (0x0x7f45c9474270) 0 + primary-for QAbstractScrollArea (0x0x7f45c9474208) + QWidget (0x0x7f45c94c7c40) 0 + primary-for QFrame (0x0x7f45c9474270) + QObject (0x0x7f45c96fcd20) 0 + primary-for QWidget (0x0x7f45c94c7c40) + QPaintDevice (0x0x7f45c96fcd80) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 520u) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f45c96fcea0) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f45c94742d8) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16u) + QAbstractTextDocumentLayout (0x0x7f45c9474340) 0 + primary-for QPlainTextDocumentLayout (0x0x7f45c94742d8) + QObject (0x0x7f45c96fce40) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f45c9474340) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f45c953a000) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI12QProgressBar) +456 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=48 align=8 + base size=48 base align=8 +QProgressBar (0x0x7f45c94743a8) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16u) + QWidget (0x0x7f45c9532310) 0 + primary-for QProgressBar (0x0x7f45c94743a8) + QObject (0x0x7f45c96fcf00) 0 + primary-for QWidget (0x0x7f45c9532310) + QPaintDevice (0x0x7f45c96fcf60) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 456u) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f45c953a120) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=48 align=8 + base size=48 base align=8 +QProgressDialog (0x0x7f45c9474410) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16u) + QDialog (0x0x7f45c9474478) 0 + primary-for QProgressDialog (0x0x7f45c9474410) + QWidget (0x0x7f45c9532c40) 0 + primary-for QDialog (0x0x7f45c9474478) + QObject (0x0x7f45c953a060) 0 + primary-for QWidget (0x0x7f45c9532c40) + QPaintDevice (0x0x7f45c953a0c0) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488u) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f45c953a1e0) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f45c94744e0) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16u) + QCommonStyle (0x0x7f45c9474548) 0 + primary-for QProxyStyle (0x0x7f45c94744e0) + QStyle (0x0x7f45c94745b0) 0 + primary-for QCommonStyle (0x0x7f45c9474548) + QObject (0x0x7f45c953a180) 0 + primary-for QStyle (0x0x7f45c94745b0) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f45c953a300) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI12QRadioButton) +472 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=48 align=8 + base size=48 base align=8 +QRadioButton (0x0x7f45c9474618) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16u) + QAbstractButton (0x0x7f45c9474680) 0 + primary-for QRadioButton (0x0x7f45c9474618) + QWidget (0x0x7f45c9569a10) 0 + primary-for QAbstractButton (0x0x7f45c9474680) + QObject (0x0x7f45c953a240) 0 + primary-for QWidget (0x0x7f45c9569a10) + QPaintDevice (0x0x7f45c953a2a0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 472u) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f45c953a420) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QScrollBar) +456 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=48 align=8 + base size=48 base align=8 +QScrollBar (0x0x7f45c94746e8) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16u) + QAbstractSlider (0x0x7f45c9474750) 0 + primary-for QScrollBar (0x0x7f45c94746e8) + QWidget (0x0x7f45c959b0e0) 0 + primary-for QAbstractSlider (0x0x7f45c9474750) + QObject (0x0x7f45c953a360) 0 + primary-for QWidget (0x0x7f45c959b0e0) + QPaintDevice (0x0x7f45c953a3c0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 456u) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f45c953a480) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16u) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f45c953a7e0) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f45c94747b8) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16u) + QObject (0x0x7f45c953a780) 0 + primary-for QScroller (0x0x7f45c94747b8) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f45c953a8a0) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f45c9474820) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16u) + QObject (0x0x7f45c953a840) 0 + primary-for QShortcut (0x0x7f45c9474820) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f45c953a9c0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=48 align=8 + base size=48 base align=8 +QSizeGrip (0x0x7f45c9474888) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16u) + QWidget (0x0x7f45c96022a0) 0 + primary-for QSizeGrip (0x0x7f45c9474888) + QObject (0x0x7f45c953a900) 0 + primary-for QWidget (0x0x7f45c96022a0) + QPaintDevice (0x0x7f45c953a960) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448u) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f45c953aae0) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QSpinBox::valueFromText +480 (int (*)(...))QSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI8QSpinBox) +504 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=48 align=8 + base size=48 base align=8 +QSpinBox (0x0x7f45c94748f0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16u) + QAbstractSpinBox (0x0x7f45c9474958) 0 + primary-for QSpinBox (0x0x7f45c94748f0) + QWidget (0x0x7f45c9602930) 0 + primary-for QAbstractSpinBox (0x0x7f45c9474958) + QObject (0x0x7f45c953aa20) 0 + primary-for QWidget (0x0x7f45c9602930) + QPaintDevice (0x0x7f45c953aa80) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 504u) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f45c953ac00) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QDoubleSpinBox::valueFromText +480 (int (*)(...))QDoubleSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI14QDoubleSpinBox) +504 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=48 align=8 + base size=48 base align=8 +QDoubleSpinBox (0x0x7f45c94749c0) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16u) + QAbstractSpinBox (0x0x7f45c9474a28) 0 + primary-for QDoubleSpinBox (0x0x7f45c94749c0) + QWidget (0x0x7f45c962f000) 0 + primary-for QAbstractSpinBox (0x0x7f45c9474a28) + QObject (0x0x7f45c953ab40) 0 + primary-for QWidget (0x0x7f45c962f000) + QPaintDevice (0x0x7f45c953aba0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 504u) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f45c953ad20) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=48 align=8 + base size=48 base align=8 +QSplashScreen (0x0x7f45c9474a90) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16u) + QWidget (0x0x7f45c962f690) 0 + primary-for QSplashScreen (0x0x7f45c9474a90) + QObject (0x0x7f45c953ac60) 0 + primary-for QWidget (0x0x7f45c962f690) + QPaintDevice (0x0x7f45c953acc0) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456u) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f45c953ae40) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplitter::createHandle +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QSplitter) +456 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=48 align=8 + base size=48 base align=8 +QSplitter (0x0x7f45c9474af8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16u) + QFrame (0x0x7f45c9474b60) 0 + primary-for QSplitter (0x0x7f45c9474af8) + QWidget (0x0x7f45c962fe00) 0 + primary-for QFrame (0x0x7f45c9474b60) + QObject (0x0x7f45c953ad80) 0 + primary-for QWidget (0x0x7f45c962fe00) + QPaintDevice (0x0x7f45c953ade0) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 456u) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f45c953af60) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=48 align=8 + base size=48 base align=8 +QSplitterHandle (0x0x7f45c9474bc8) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16u) + QWidget (0x0x7f45c92754d0) 0 + primary-for QSplitterHandle (0x0x7f45c9474bc8) + QObject (0x0x7f45c953aea0) 0 + primary-for QWidget (0x0x7f45c92754d0) + QPaintDevice (0x0x7f45c953af00) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448u) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f45c928f0c0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 50u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QStackedLayout::addItem +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QStackedLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QStackedLayout::setGeometry +168 (int (*)(...))QStackedLayout::itemAt +176 (int (*)(...))QStackedLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QStackedLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QStackedLayout::sizeHint +232 (int (*)(...))QStackedLayout::hasHeightForWidth +240 (int (*)(...))QStackedLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI14QStackedLayout) +264 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +272 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +280 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +288 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +312 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +344 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f45c9474c30) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16u) + QLayout (0x0x7f45c9275b60) 0 + primary-for QStackedLayout (0x0x7f45c9474c30) + QObject (0x0x7f45c928f000) 0 + primary-for QLayout (0x0x7f45c9275b60) + QLayoutItem (0x0x7f45c928f060) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 264u) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f45c928f1e0) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QStackedWidget) +448 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=48 align=8 + base size=48 base align=8 +QStackedWidget (0x0x7f45c9474c98) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16u) + QFrame (0x0x7f45c9474d00) 0 + primary-for QStackedWidget (0x0x7f45c9474c98) + QWidget (0x0x7f45c92a44d0) 0 + primary-for QFrame (0x0x7f45c9474d00) + QObject (0x0x7f45c928f120) 0 + primary-for QWidget (0x0x7f45c92a44d0) + QPaintDevice (0x0x7f45c928f180) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 448u) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f45c928f300) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=48 align=8 + base size=48 base align=8 +QStatusBar (0x0x7f45c9474d68) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16u) + QWidget (0x0x7f45c92a4b60) 0 + primary-for QStatusBar (0x0x7f45c9474d68) + QObject (0x0x7f45c928f240) 0 + primary-for QWidget (0x0x7f45c92a4b60) + QPaintDevice (0x0x7f45c928f2a0) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448u) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f45c928f3c0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f45c9474dd0) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16u) + QAbstractItemDelegate (0x0x7f45c9474e38) 0 + primary-for QStyledItemDelegate (0x0x7f45c9474dd0) + QObject (0x0x7f45c928f360) 0 + primary-for QAbstractItemDelegate (0x0x7f45c9474e38) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f45c928f420) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f45c9474ea0) 0 + QPainter (0x0x7f45c928f480) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f45c928f540) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f45c9474f70) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16u) + QObject (0x0x7f45c928f4e0) 0 + primary-for QStylePlugin (0x0x7f45c9474f70) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f45c928f600) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f45c930a000) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16u) + QObject (0x0x7f45c928f5a0) 0 + primary-for QSystemTrayIcon (0x0x7f45c930a000) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f45c928f720) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableView::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI10QTableView) +784 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +792 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=48 align=8 + base size=48 base align=8 +QTableView (0x0x7f45c930a068) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16u) + QAbstractItemView (0x0x7f45c930a0d0) 0 + primary-for QTableView (0x0x7f45c930a068) + QAbstractScrollArea (0x0x7f45c930a138) 0 + primary-for QAbstractItemView (0x0x7f45c930a0d0) + QFrame (0x0x7f45c930a1a0) 0 + primary-for QAbstractScrollArea (0x0x7f45c930a138) + QWidget (0x0x7f45c9310a10) 0 + primary-for QFrame (0x0x7f45c930a1a0) + QObject (0x0x7f45c928f660) 0 + primary-for QWidget (0x0x7f45c9310a10) + QPaintDevice (0x0x7f45c928f6c0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 784u) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f45c928f780) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=48 align=8 + base size=44 base align=8 +QTableWidgetItem (0x0x7f45c928f7e0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16u) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f45c928fa20) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 110u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableWidget::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))QTableWidget::mimeTypes +776 (int (*)(...))QTableWidget::mimeData +784 (int (*)(...))QTableWidget::dropMimeData +792 (int (*)(...))QTableWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI12QTableWidget) +816 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +824 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=48 align=8 + base size=48 base align=8 +QTableWidget (0x0x7f45c930a2d8) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16u) + QTableView (0x0x7f45c930a340) 0 + primary-for QTableWidget (0x0x7f45c930a2d8) + QAbstractItemView (0x0x7f45c930a3a8) 0 + primary-for QTableView (0x0x7f45c930a340) + QAbstractScrollArea (0x0x7f45c930a410) 0 + primary-for QAbstractItemView (0x0x7f45c930a3a8) + QFrame (0x0x7f45c930a478) 0 + primary-for QAbstractScrollArea (0x0x7f45c930a410) + QWidget (0x0x7f45c93ad2a0) 0 + primary-for QFrame (0x0x7f45c930a478) + QObject (0x0x7f45c928f960) 0 + primary-for QWidget (0x0x7f45c93ad2a0) + QPaintDevice (0x0x7f45c928f9c0) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 816u) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f45c928fb40) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 78u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextBrowser::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))QTextBrowser::setSource +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))-16 +552 (int (*)(...))(& _ZTI12QTextBrowser) +560 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=48 align=8 + base size=48 base align=8 +QTextBrowser (0x0x7f45c930a4e0) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16u) + QTextEdit (0x0x7f45c930a548) 0 + primary-for QTextBrowser (0x0x7f45c930a4e0) + QAbstractScrollArea (0x0x7f45c930a5b0) 0 + primary-for QTextEdit (0x0x7f45c930a548) + QFrame (0x0x7f45c930a618) 0 + primary-for QAbstractScrollArea (0x0x7f45c930a5b0) + QWidget (0x0x7f45c93e2000) 0 + primary-for QFrame (0x0x7f45c930a618) + QObject (0x0x7f45c928fa80) 0 + primary-for QWidget (0x0x7f45c93e2000) + QPaintDevice (0x0x7f45c928fae0) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 560u) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f45c928fc60) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QToolBar) +448 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=48 align=8 + base size=48 base align=8 +QToolBar (0x0x7f45c930a680) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16u) + QWidget (0x0x7f45c93e2690) 0 + primary-for QToolBar (0x0x7f45c930a680) + QObject (0x0x7f45c928fba0) 0 + primary-for QWidget (0x0x7f45c93e2690) + QPaintDevice (0x0x7f45c928fc00) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 448u) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f45c928fd80) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBox::itemInserted +440 (int (*)(...))QToolBox::itemRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI8QToolBox) +464 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=48 align=8 + base size=48 base align=8 +QToolBox (0x0x7f45c930a6e8) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16u) + QFrame (0x0x7f45c930a750) 0 + primary-for QToolBox (0x0x7f45c930a6e8) + QWidget (0x0x7f45c9420a10) 0 + primary-for QFrame (0x0x7f45c930a750) + QObject (0x0x7f45c928fcc0) 0 + primary-for QWidget (0x0x7f45c9420a10) + QPaintDevice (0x0x7f45c928fd20) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 464u) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f45c928fea0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QToolButton) +472 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=48 align=8 + base size=48 base align=8 +QToolButton (0x0x7f45c930a7b8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16u) + QAbstractButton (0x0x7f45c930a820) 0 + primary-for QToolButton (0x0x7f45c930a7b8) + QWidget (0x0x7f45c90473f0) 0 + primary-for QAbstractButton (0x0x7f45c930a820) + QObject (0x0x7f45c928fde0) 0 + primary-for QWidget (0x0x7f45c90473f0) + QPaintDevice (0x0x7f45c928fe40) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 472u) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f45c928ff00) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f45c906b060) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 108u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeView::setModel +472 (int (*)(...))QTreeView::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QTreeView) +800 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +808 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=48 align=8 + base size=48 base align=8 +QTreeView (0x0x7f45c930a888) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16u) + QAbstractItemView (0x0x7f45c930a8f0) 0 + primary-for QTreeView (0x0x7f45c930a888) + QAbstractScrollArea (0x0x7f45c930a958) 0 + primary-for QAbstractItemView (0x0x7f45c930a8f0) + QFrame (0x0x7f45c930a9c0) 0 + primary-for QAbstractScrollArea (0x0x7f45c930a958) + QWidget (0x0x7f45c9047ee0) 0 + primary-for QFrame (0x0x7f45c930a9c0) + QObject (0x0x7f45c928ff60) 0 + primary-for QWidget (0x0x7f45c9047ee0) + QPaintDevice (0x0x7f45c906b000) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 800u) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f45c906b0c0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=64 align=8 + base size=60 base align=8 +QTreeWidgetItem (0x0x7f45c906b300) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16u) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f45c906b600) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 112u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeWidget::setModel +472 (int (*)(...))QTreeWidget::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))QTreeWidget::mimeTypes +792 (int (*)(...))QTreeWidget::mimeData +800 (int (*)(...))QTreeWidget::dropMimeData +808 (int (*)(...))QTreeWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QTreeWidget) +832 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +840 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=48 align=8 + base size=48 base align=8 +QTreeWidget (0x0x7f45c930ac98) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16u) + QTreeView (0x0x7f45c930ad00) 0 + primary-for QTreeWidget (0x0x7f45c930ac98) + QAbstractItemView (0x0x7f45c930ad68) 0 + primary-for QTreeView (0x0x7f45c930ad00) + QAbstractScrollArea (0x0x7f45c930add0) 0 + primary-for QAbstractItemView (0x0x7f45c930ad68) + QFrame (0x0x7f45c930ae38) 0 + primary-for QAbstractScrollArea (0x0x7f45c930add0) + QWidget (0x0x7f45c9182cb0) 0 + primary-for QFrame (0x0x7f45c930ae38) + QObject (0x0x7f45c906b540) 0 + primary-for QWidget (0x0x7f45c9182cb0) + QPaintDevice (0x0x7f45c906b5a0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 832u) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f45c906b6c0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f45c930af08) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16u) + QObject (0x0x7f45c906b660) 0 + primary-for QUndoGroup (0x0x7f45c930af08) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f45c906b720) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16u) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f45c906b7e0) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f45c930af70) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16u) + QObject (0x0x7f45c906b780) 0 + primary-for QUndoStack (0x0x7f45c930af70) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f45c906b900) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QUndoView) +784 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +792 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=48 align=8 + base size=48 base align=8 +QUndoView (0x0x7f45c9203000) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16u) + QListView (0x0x7f45c9203068) 0 + primary-for QUndoView (0x0x7f45c9203000) + QAbstractItemView (0x0x7f45c92030d0) 0 + primary-for QListView (0x0x7f45c9203068) + QAbstractScrollArea (0x0x7f45c9203138) 0 + primary-for QAbstractItemView (0x0x7f45c92030d0) + QFrame (0x0x7f45c92031a0) 0 + primary-for QAbstractScrollArea (0x0x7f45c9203138) + QWidget (0x0x7f45c91fe460) 0 + primary-for QFrame (0x0x7f45c92031a0) + QObject (0x0x7f45c906b840) 0 + primary-for QWidget (0x0x7f45c91fe460) + QPaintDevice (0x0x7f45c906b8a0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 784u) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f45c906b960) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f45c906ba20) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f45c9203208) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16u) + QAction (0x0x7f45c9203270) 0 + primary-for QWidgetAction (0x0x7f45c9203208) + QObject (0x0x7f45c906b9c0) 0 + primary-for QAction (0x0x7f45c9203270) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f45c906bb40) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=48 align=8 + base size=48 base align=8 +QWizard (0x0x7f45c92032d8) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16u) + QDialog (0x0x7f45c9203340) 0 + primary-for QWizard (0x0x7f45c92032d8) + QWidget (0x0x7f45c922c1c0) 0 + primary-for QDialog (0x0x7f45c9203340) + QObject (0x0x7f45c906ba80) 0 + primary-for QWidget (0x0x7f45c922c1c0) + QPaintDevice (0x0x7f45c906bae0) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520u) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f45c906bd80) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=48 align=8 + base size=48 base align=8 +QWizardPage (0x0x7f45c9203478) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16u) + QWidget (0x0x7f45c8e6abd0) 0 + primary-for QWizardPage (0x0x7f45c9203478) + QObject (0x0x7f45c906bcc0) 0 + primary-for QWidget (0x0x7f45c8e6abd0) + QPaintDevice (0x0x7f45c906bd20) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488u) + diff --git a/tests/auto/bic/data/QtQuickWidgets.5.8.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtQuickWidgets.5.8.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..e0aadf4cbb --- /dev/null +++ b/tests/auto/bic/data/QtQuickWidgets.5.8.0.linux-gcc-amd64.txt @@ -0,0 +1,21485 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f6384a3c960) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f6384afd120) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f6384afd360) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f6384afd5a0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f6384afd7e0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f6384afd960) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f6384afdd20) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f6384bb74e0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f6384bb75a0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f6384bb7900) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f6384bb79c0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f6384bb7a80) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f6384bb7b40) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f6384bb7de0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f6384707000) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f6384707480) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f63847074e0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f638479e180) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f638479e1e0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f6384b8a958) 0 empty + std::input_iterator_tag (0x0x7f638479e240) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f6384b8a9c0) 0 empty + std::forward_iterator_tag (0x0x7f6384b8aa28) 0 empty + std::input_iterator_tag (0x0x7f638479e2a0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f6384b8aa90) 0 empty + std::bidirectional_iterator_tag (0x0x7f6384b8aaf8) 0 empty + std::forward_iterator_tag (0x0x7f6384b8ab60) 0 empty + std::input_iterator_tag (0x0x7f638479e300) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f638479ef60) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f638484f000) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f638484f060) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f638484f0c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f638484f120) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7f638484fc00) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f638484fe40) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f638484ff00) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f638484ff60) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f6384511060) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f63845110c0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f6384511540) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f63845115a0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f6384511600) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f63848930d0) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7f6384511660) 0 nearly-empty + primary-for std::bad_exception (0x0x7f63848930d0) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f63845116c0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f6384511720) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f63848932d8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7f6384511b40) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f63848932d8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f6384893340) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7f63848933a8) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f6384893340) + std::exception (0x0x7f6384511ba0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f63848933a8) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f6384511c00) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7f6384674840) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f6384483540) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f63844835a0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f638412b480) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7f638412b4e0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f638412b5a0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f638412b600) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f638412b660) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f638412b6c0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f638412b7e0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f638412b840) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f638412bc60) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f638412bcc0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f638406c4e0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f638406c540) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f6383d264e0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f6383eda300) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f6384062c98) 0 + std::iterator (0x0x7f6383eda3c0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f6383b86000) 0 + std::_Bit_iterator_base (0x0x7f6383b86068) 0 + std::iterator (0x0x7f6383eda420) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f6383b860d0) 0 + std::_Bit_iterator_base (0x0x7f6383b86138) 0 + std::iterator (0x0x7f6383eda480) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f6383cdb2a0) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f6383a30060) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f6383a30000) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f6383806000) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f6382617a80) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f6382617ae0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f638234ad20) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f638234ad80) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f638234ade0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f63823a28a0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f63823a2ba0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f63823e8180) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f63823b1548) 0 + std::__atomic_flag_base (0x0x7f63823e81e0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f63823b1c98) 0 + QAtomicInteger (0x0x7f63823b1d00) 0 + QBasicAtomicInteger (0x0x7f6382257900) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f6381b4c1e0) 0 empty + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f6381bdc240) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f6381bcd138) 0 + QGenericArgument (0x0x7f6381bdc2a0) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f6381bdc420) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f6381bdc4e0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f6381c9a540) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f6381c9a5a0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f6381c9aa20) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f6381c9aae0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f6381c9af00) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f6381c9af60) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f638198a000) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f638198a060) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f638198a0c0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f638198a480) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f63819626e8) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7f638198a540) 0 nearly-empty + primary-for std::logic_error (0x0x7f63819626e8) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f6381962750) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7f63819627b8) 0 + primary-for std::domain_error (0x0x7f6381962750) + std::exception (0x0x7f638198a5a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f63819627b8) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f6381962820) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7f6381962888) 0 + primary-for std::invalid_argument (0x0x7f6381962820) + std::exception (0x0x7f638198a600) 0 nearly-empty + primary-for std::logic_error (0x0x7f6381962888) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f63819628f0) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7f6381962958) 0 + primary-for std::length_error (0x0x7f63819628f0) + std::exception (0x0x7f638198a660) 0 nearly-empty + primary-for std::logic_error (0x0x7f6381962958) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f63819629c0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7f6381962a28) 0 + primary-for std::out_of_range (0x0x7f63819629c0) + std::exception (0x0x7f638198a6c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f6381962a28) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f6381962a90) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7f638198a720) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381962a90) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f6381962af8) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7f6381962b60) 0 + primary-for std::range_error (0x0x7f6381962af8) + std::exception (0x0x7f638198a780) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381962b60) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f6381962bc8) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7f6381962c30) 0 + primary-for std::overflow_error (0x0x7f6381962bc8) + std::exception (0x0x7f638198a7e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381962c30) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f6381962c98) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7f6381962d00) 0 + primary-for std::underflow_error (0x0x7f6381962c98) + std::exception (0x0x7f638198a840) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381962d00) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f638198a9c0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f638198ac00) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f638198ad80) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f6381a63138) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7f6381a631a0) 0 + primary-for std::system_error (0x0x7f6381a63138) + std::exception (0x0x7f6381a70000) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381a631a0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f6381a63d68) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7f6381a63dd0) 0 + primary-for std::ios_base::failure (0x0x7f6381a63d68) + std::runtime_error (0x0x7f6381a63e38) 0 + primary-for std::system_error (0x0x7f6381a63dd0) + std::exception (0x0x7f6381a70300) 0 nearly-empty + primary-for std::runtime_error (0x0x7f6381a63e38) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f6381a70360) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f6381a703c0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f6381a70420) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f6381a702a0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f6381a70ba0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f638180b2a0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7f6381315750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f6381315820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7f6381315bc8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f6381315c98 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f63815c5b40) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f63815c5ba0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f6381101000) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f6381101360) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f6381101720) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f63811017e0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f6381101780) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f6380ee0780) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f638106b600) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f638106bcc0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f638106bd20) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f638106bd80) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f6380e36180) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f6380e361e0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f6380dee208) 0 empty + QListData::NotIndirectLayout (0x0x7f6380e36240) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f6380acd380) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f6380e362a0) 0 empty + QListData::NotIndirectLayout (0x0x7f6380e36300) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f6380dee270) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f6380e36360) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f6380e363c0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f6380e36120) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f6380e36f60) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f6380c87240) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f6380c871e0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f6380c77c30) 0 + QList (0x0x7f6380c77c98) 0 + QListSpecialMethods (0x0x7f6380c87420) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f6380c878a0) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f6380c87cc0) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f6380a4f360) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f6380a4f4e0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f6380a4f5a0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f6380921d00) 0 + std::__uses_alloc_base (0x0x7f6380a4f540) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f63807fe600) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f63807fe840) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f63807fe900) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f63807fea20) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f63807feba0) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f63807fef60) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f63805500c0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f6380550a20) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f6380550f60) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f638063c360) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f63803e1420) 0 + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f63803e15a0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f63803e1780) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f63803e1720) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f63803e1d20) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f63803e1d80) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f63803e1e40) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f638068fc98) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7f63803e1de0) 0 + primary-for QAbstractAnimation (0x0x7f638068fc98) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f63803e1f00) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f638068fd00) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7f63803e1ea0) 0 + primary-for QAnimationDriver (0x0x7f638068fd00) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f63800fb000) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f638068fd68) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7f63803e1f60) 0 + primary-for QEventLoop (0x0x7f638068fd68) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f63800fb180) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f63800fb240) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f63800fb2a0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f638068fea0) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7f63800fb1e0) 0 + primary-for QAbstractEventDispatcher (0x0x7f638068fea0) + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f63800fb300) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f63800fb540) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f63800fb900) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f63800fb8a0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f63800fb960) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f637ff07540) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f637ff07600) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f637ff075a0) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f637ff07660) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f637ff074e0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f6380015ae0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f6380015e40) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f6380015de0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f6380015f00) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f6380015ea0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f637fe2b960) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f637fe2bc60) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f637fb09cc0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f637fb22750) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7f637fb09c60) 0 + primary-for QAbstractItemModel (0x0x7f637fb22750) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f637fbd1060) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f637fb22958) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7f637fb229c0) 0 + primary-for QAbstractTableModel (0x0x7f637fb22958) + QObject (0x0x7f637fbd1000) 0 + primary-for QAbstractItemModel (0x0x7f637fb229c0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f637fbd1120) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f637fb22a28) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7f637fb22a90) 0 + primary-for QAbstractListModel (0x0x7f637fb22a28) + QObject (0x0x7f637fbd10c0) 0 + primary-for QAbstractItemModel (0x0x7f637fb22a90) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f637fbd13c0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f637fbd1480) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f637fb22bc8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7f637fb22c30) 0 + primary-for QAbstractProxyModel (0x0x7f637fb22bc8) + QObject (0x0x7f637fbd1420) 0 + primary-for QAbstractItemModel (0x0x7f637fb22c30) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f637fbd1540) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f637fb22c98) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7f637fbd14e0) 0 + primary-for QAbstractState (0x0x7f637fb22c98) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f637fbd1600) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f637fb22d00) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7f637fbd15a0) 0 + primary-for QAbstractTransition (0x0x7f637fb22d00) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f637fbd16c0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f637fb22d68) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7f637fb22dd0) 0 + primary-for QAnimationGroup (0x0x7f637fb22d68) + QObject (0x0x7f637fbd1660) 0 + primary-for QAbstractAnimation (0x0x7f637fb22dd0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f637fbd1ba0) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f637fbd1ea0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f637f927120) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f637f9274e0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f637f8abdd0) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7f637f927480) 0 + primary-for QIODevice (0x0x7f637f8abdd0) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f637f9276c0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f637f8abf08) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7f637f8abf70) 0 + primary-for QBuffer (0x0x7f637f8abf08) + QObject (0x0x7f637f927660) 0 + primary-for QIODevice (0x0x7f637f8abf70) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f637f927780) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f637f927720) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f637f927900) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f637f927ae0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f637f927f60) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f637f690060) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f637f726120) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f637f7265a0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f637f74c0d0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7f637f726600) 0 + primary-for QTimerEvent (0x0x7f637f74c0d0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f637f74c138) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7f637f726660) 0 + primary-for QChildEvent (0x0x7f637f74c138) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f637f74c270) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7f637f726840) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f637f74c270) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f637f74c2d8) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7f637f7268a0) 0 + primary-for QDeferredDeleteEvent (0x0x7f637f74c2d8) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f637f726960) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f637f74c340) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7f637f726900) 0 + primary-for QCoreApplication (0x0x7f637f74c340) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f637f7269c0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f637f726a20) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f637f726cc0) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f637f726d20) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f637f726de0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f637f490000) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f637f490300) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f637f4907e0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f637f490840) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f637f490780) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f637f56f660) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f637f5c9a20) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f637f3368a0) 0 empty + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f637f336900) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f637f070780) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f637f0709c0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f637f070c00) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f637f070d80) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f637f1d6240) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f637f1d61e0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f637eee9480) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f637eee9540) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f637eee9600) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f637eedca28) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7f637eedca90) 0 + primary-for QFileDevice (0x0x7f637eedca28) + QObject (0x0x7f637eee95a0) 0 + primary-for QIODevice (0x0x7f637eedca90) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f637eee97e0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f637eedcbc8) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7f637eedcc30) 0 + primary-for QFile (0x0x7f637eedcbc8) + QIODevice (0x0x7f637eedcc98) 0 + primary-for QFileDevice (0x0x7f637eedcc30) + QObject (0x0x7f637eee9780) 0 + primary-for QIODevice (0x0x7f637eedcc98) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f637eee9960) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f637eee9de0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f637f0513c0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f637f0515a0) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f637ed5c840) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f637ed59a90) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7f637ed59af8) 0 + primary-for QEventTransition (0x0x7f637ed59a90) + QObject (0x0x7f637ed5c7e0) 0 + primary-for QAbstractTransition (0x0x7f637ed59af8) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f637ed59b60) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7f637ed5c8a0) 0 nearly-empty + primary-for QException (0x0x7f637ed59b60) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f637ed59bc8) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7f637ed59c30) 0 nearly-empty + primary-for QUnhandledException (0x0x7f637ed59bc8) + std::exception (0x0x7f637ed5c900) 0 nearly-empty + primary-for QException (0x0x7f637ed59c30) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f637ed5c960) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f637ed5ca20) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f637ed5ca80) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f637ed5cba0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f637ed59c98) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7f637ed5cb40) 0 + primary-for QFileSelector (0x0x7f637ed59c98) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f637ed5cc60) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f637ed59d00) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7f637ed5cc00) 0 + primary-for QFileSystemWatcher (0x0x7f637ed59d00) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f637ed5cd20) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f637ed59d68) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7f637ed59dd0) 0 + primary-for QFinalState (0x0x7f637ed59d68) + QObject (0x0x7f637ed5ccc0) 0 + primary-for QAbstractState (0x0x7f637ed59dd0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f637ed5cd80) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f637ed5cde0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f637ed59f08) 0 + QBasicMutex (0x0x7f637ea66060) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f637ea66420) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f637ea664e0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f637ea66540) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f637ea666c0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f637ea66780) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f637ea66ae0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f637ea7faf8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7f637ea66a80) 0 + primary-for QFutureWatcherBase (0x0x7f637ea7faf8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f637ea66c60) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f637ea7ff08) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7f637ea7ff70) 0 + primary-for QHistoryState (0x0x7f637ea7ff08) + QObject (0x0x7f637ea66c00) 0 + primary-for QAbstractState (0x0x7f637ea7ff70) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f637ea66d20) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f637ebce000) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7f637ebce068) 0 + primary-for QIdentityProxyModel (0x0x7f637ebce000) + QAbstractItemModel (0x0x7f637ebce0d0) 0 + primary-for QAbstractProxyModel (0x0x7f637ebce068) + QObject (0x0x7f637ea66cc0) 0 + primary-for QAbstractItemModel (0x0x7f637ebce0d0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f637ea66d80) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f637ec2b180) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f637ebce410) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7f637ec2b120) 0 + primary-for QItemSelectionModel (0x0x7f637ebce410) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f637ebce618) 0 + QList (0x0x7f637ebce680) 0 + QListSpecialMethods (0x0x7f637ec2b420) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f637ec2b960) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f637ec2bba0) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f637ec2bc60) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f637ec2bcc0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f637ec2bd80) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f637ec2bde0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f637ec2bd20) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f637ec2bea0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f637ec2bf00) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f637e9a9000) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f637e9a9060) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f637ec2bf60) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f637e9a9240) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f637ebcea90) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7f637e9a91e0) 0 + primary-for QLibrary (0x0x7f637ebcea90) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f637e9a9420) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f637e9a93c0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f637e7121e0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f637e712240) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f637e712540) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f637e712840) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f637e712b40) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f637e712e40) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f637e823600) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f637e823780) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f637e823720) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f637e823900) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f637e823c00) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f637e823f60) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f637e5b3000) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f637e5b3300) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f637e5b3660) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f637e5b36c0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f637e5b3a20) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f637e7e17b8) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7f637e5b39c0) 0 + primary-for QMimeData (0x0x7f637e7e17b8) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f637e5b3a80) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f637e5b3de0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f637e5b3ea0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f637e7e1958) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7f637e5b3e40) 0 + primary-for QObjectCleanupHandler (0x0x7f637e7e1958) + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f637e5b3f60) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f637e7e19c0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7f637e7e1a28) 0 + primary-for QParallelAnimationGroup (0x0x7f637e7e19c0) + QAbstractAnimation (0x0x7f637e7e1a90) 0 + primary-for QAnimationGroup (0x0x7f637e7e1a28) + QObject (0x0x7f637e5b3f00) 0 + primary-for QAbstractAnimation (0x0x7f637e7e1a90) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f637e25e060) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f637e7e1af8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7f637e7e1b60) 0 + primary-for QPauseAnimation (0x0x7f637e7e1af8) + QObject (0x0x7f637e25e000) 0 + primary-for QAbstractAnimation (0x0x7f637e7e1b60) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f637e25e240) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f637e25e5a0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f637e7e1d00) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7f637e25e540) 0 + primary-for QPluginLoader (0x0x7f637e7e1d00) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f637e25e600) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f637e7e1d68) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7f637e25e660) 0 nearly-empty + primary-for std::bad_cast (0x0x7f637e7e1d68) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f637e7e1dd0) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7f637e25e6c0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f637e7e1dd0) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f637e438068) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7f637e3ed780) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f637e438068) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f637e3ed840) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f637e3ed8a0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f637e3ed9c0) 0 + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f637e3edea0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f637e0d42a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f637e438958) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7f637e4389c0) 0 + primary-for QProcess (0x0x7f637e438958) + QObject (0x0x7f637e0d4240) 0 + primary-for QIODevice (0x0x7f637e4389c0) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f637e0d4360) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f637e438a28) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7f637e438a90) 0 + primary-for QVariantAnimation (0x0x7f637e438a28) + QObject (0x0x7f637e0d4300) 0 + primary-for QAbstractAnimation (0x0x7f637e438a90) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f637e0d4420) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f637e438b60) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7f637e438bc8) 0 + primary-for QPropertyAnimation (0x0x7f637e438b60) + QAbstractAnimation (0x0x7f637e438c30) 0 + primary-for QVariantAnimation (0x0x7f637e438bc8) + QObject (0x0x7f637e0d43c0) 0 + primary-for QAbstractAnimation (0x0x7f637e438c30) + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f637e0d44e0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f637e0d4780) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f637e0d47e0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f637e0d4840) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f637e0d4c00) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f637e247000) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f637e247300) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f637e247600) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f637e247ba0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f637e247f00) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f637e00f2a0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f637e00f420) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f637e1dec30) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7f637e1dec98) 0 + primary-for QSaveFile (0x0x7f637e1dec30) + QIODevice (0x0x7f637e1ded00) 0 + primary-for QFileDevice (0x0x7f637e1dec98) + QObject (0x0x7f637e00f3c0) 0 + primary-for QIODevice (0x0x7f637e1ded00) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f637e00f4e0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f637e00f5a0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f637e1ded68) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7f637e1dedd0) 0 + primary-for QSequentialAnimationGroup (0x0x7f637e1ded68) + QAbstractAnimation (0x0x7f637e1dee38) 0 + primary-for QAnimationGroup (0x0x7f637e1dedd0) + QObject (0x0x7f637e00f540) 0 + primary-for QAbstractAnimation (0x0x7f637e1dee38) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f637e00f660) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f637e1deea0) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7f637e00f600) 0 + primary-for QSettings (0x0x7f637e1deea0) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f637e00f720) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f637e1def08) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7f637e00f6c0) 0 + primary-for QSharedMemory (0x0x7f637e1def08) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f637e00f7e0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f637e1def70) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7f637e00f780) 0 + primary-for QSignalMapper (0x0x7f637e1def70) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f637e00f8a0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f637dca5000) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7f637dca5068) 0 + primary-for QSignalTransition (0x0x7f637dca5000) + QObject (0x0x7f637e00f840) 0 + primary-for QAbstractTransition (0x0x7f637dca5068) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f637e00f960) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f637dca50d0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7f637e00f900) 0 + primary-for QSocketNotifier (0x0x7f637dca50d0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f637e00fa20) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f637dca5138) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7f637dca51a0) 0 + primary-for QSortFilterProxyModel (0x0x7f637dca5138) + QAbstractItemModel (0x0x7f637dca5208) 0 + primary-for QAbstractProxyModel (0x0x7f637dca51a0) + QObject (0x0x7f637e00f9c0) 0 + primary-for QAbstractItemModel (0x0x7f637dca5208) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f637e00fc00) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f637e00fde0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f637dca53a8) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7f637dca5410) 0 + primary-for QState (0x0x7f637dca53a8) + QObject (0x0x7f637e00fd80) 0 + primary-for QAbstractState (0x0x7f637dca5410) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f637e00ff00) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f637dca55b0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7f637e00ff60) 0 + primary-for QStateMachine::SignalEvent (0x0x7f637dca55b0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f637dca5618) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7f637dd57000) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f637dca5618) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f637dca5478) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7f637dca54e0) 0 + primary-for QStateMachine (0x0x7f637dca5478) + QAbstractState (0x0x7f637dca5548) 0 + primary-for QState (0x0x7f637dca54e0) + QObject (0x0x7f637e00fea0) 0 + primary-for QAbstractState (0x0x7f637dca5548) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f637dd57060) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f637dd574e0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f637dd57f60) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f637de130d0) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7f637de13138) 0 + primary-for QStringListModel (0x0x7f637de130d0) + QAbstractItemModel (0x0x7f637de131a0) 0 + primary-for QAbstractListModel (0x0x7f637de13138) + QObject (0x0x7f637dd57f00) 0 + primary-for QAbstractItemModel (0x0x7f637de131a0) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f637de3b000) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f637de3b0c0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f637de3b1e0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f637de13208) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7f637de13270) 0 + primary-for QTemporaryFile (0x0x7f637de13208) + QFileDevice (0x0x7f637de132d8) 0 + primary-for QFile (0x0x7f637de13270) + QIODevice (0x0x7f637de13340) 0 + primary-for QFileDevice (0x0x7f637de132d8) + QObject (0x0x7f637de3b180) 0 + primary-for QIODevice (0x0x7f637de13340) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f637de3b240) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f637de3b420) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f637de3b3c0) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f637de3b5a0) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f637de3b600) 0 + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f637de3b6c0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f637de13548) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7f637de3b660) 0 + primary-for QThread (0x0x7f637de13548) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f637de3b780) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f637de135b0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7f637de3b720) 0 + primary-for QThreadPool (0x0x7f637de135b0) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f637de3b7e0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f637de3b900) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f637de13618) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7f637de3b8a0) 0 + primary-for QTimeLine (0x0x7f637de13618) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f637de3b9c0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f637de13680) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7f637de3b960) 0 + primary-for QTimer (0x0x7f637de13680) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f637db7d7e0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f637db7d780) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f637db7de40) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f637db7f820) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7f637db7dde0) 0 + primary-for QTranslator (0x0x7f637db7f820) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f637db7df60) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f637d8d85a0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f637d8d8900) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f637d8d8c00) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f637d8d8c60) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f637da15240) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f637d65b068) 0 + QVector (0x0x7f637da15660) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f637da156c0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f637da159c0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f637da15cc0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f637d6d5000) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f637d6d5060) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f637d6d5480) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f637d6d55a0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f637d6d58a0) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f637d82b000) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f637d6d5f60) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f637d4ae3c0) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f637d553600) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7f637d5539c0) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7f637d551af8) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16u) + QEvent (0x0x7f637d553b40) 0 + primary-for QInputEvent (0x0x7f637d551af8) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7f637d551b60) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16u) + QEvent (0x0x7f637d553ba0) 0 + primary-for QEnterEvent (0x0x7f637d551b60) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7f637d551bc8) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16u) + QInputEvent (0x0x7f637d551c30) 0 + primary-for QMouseEvent (0x0x7f637d551bc8) + QEvent (0x0x7f637d553c00) 0 + primary-for QInputEvent (0x0x7f637d551c30) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7f637d551c98) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16u) + QInputEvent (0x0x7f637d551d00) 0 + primary-for QHoverEvent (0x0x7f637d551c98) + QEvent (0x0x7f637d553c60) 0 + primary-for QInputEvent (0x0x7f637d551d00) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f637d551d68) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16u) + QInputEvent (0x0x7f637d551dd0) 0 + primary-for QWheelEvent (0x0x7f637d551d68) + QEvent (0x0x7f637d553cc0) 0 + primary-for QInputEvent (0x0x7f637d551dd0) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7f637d551e38) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16u) + QInputEvent (0x0x7f637d551ea0) 0 + primary-for QTabletEvent (0x0x7f637d551e38) + QEvent (0x0x7f637d553d20) 0 + primary-for QInputEvent (0x0x7f637d551ea0) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f637d551f08) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16u) + QInputEvent (0x0x7f637d551f70) 0 + primary-for QNativeGestureEvent (0x0x7f637d551f08) + QEvent (0x0x7f637d553d80) 0 + primary-for QInputEvent (0x0x7f637d551f70) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7f637d261000) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16u) + QInputEvent (0x0x7f637d261068) 0 + primary-for QKeyEvent (0x0x7f637d261000) + QEvent (0x0x7f637d553de0) 0 + primary-for QInputEvent (0x0x7f637d261068) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7f637d2610d0) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16u) + QEvent (0x0x7f637d553e40) 0 + primary-for QFocusEvent (0x0x7f637d2610d0) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7f637d261138) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16u) + QEvent (0x0x7f637d553ea0) 0 + primary-for QPaintEvent (0x0x7f637d261138) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7f637d2611a0) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16u) + QEvent (0x0x7f637d553f00) 0 + primary-for QMoveEvent (0x0x7f637d2611a0) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7f637d261208) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16u) + QEvent (0x0x7f637d553f60) 0 + primary-for QExposeEvent (0x0x7f637d261208) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7f637d261270) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16u) + QEvent (0x0x7f637d289000) 0 + primary-for QPlatformSurfaceEvent (0x0x7f637d261270) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7f637d2612d8) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16u) + QEvent (0x0x7f637d289060) 0 + primary-for QResizeEvent (0x0x7f637d2612d8) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7f637d261340) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16u) + QEvent (0x0x7f637d2890c0) 0 + primary-for QCloseEvent (0x0x7f637d261340) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7f637d2613a8) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16u) + QEvent (0x0x7f637d289120) 0 + primary-for QIconDragEvent (0x0x7f637d2613a8) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7f637d261410) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16u) + QEvent (0x0x7f637d289180) 0 + primary-for QShowEvent (0x0x7f637d261410) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7f637d261478) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16u) + QEvent (0x0x7f637d2891e0) 0 + primary-for QHideEvent (0x0x7f637d261478) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7f637d2614e0) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16u) + QInputEvent (0x0x7f637d261548) 0 + primary-for QContextMenuEvent (0x0x7f637d2614e0) + QEvent (0x0x7f637d289240) 0 + primary-for QInputEvent (0x0x7f637d261548) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7f637d289300) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7f637d2615b0) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16u) + QEvent (0x0x7f637d2892a0) 0 + primary-for QInputMethodEvent (0x0x7f637d2615b0) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f637d2897e0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7f637d261888) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16u) + QEvent (0x0x7f637d289780) 0 + primary-for QInputMethodQueryEvent (0x0x7f637d261888) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7f637d261af8) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16u) + QEvent (0x0x7f637d289ba0) 0 + primary-for QDropEvent (0x0x7f637d261af8) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7f637d261b60) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16u) + QDropEvent (0x0x7f637d261bc8) 0 + primary-for QDragMoveEvent (0x0x7f637d261b60) + QEvent (0x0x7f637d289c00) 0 + primary-for QDropEvent (0x0x7f637d261bc8) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7f637d261c30) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16u) + QDragMoveEvent (0x0x7f637d261c98) 0 + primary-for QDragEnterEvent (0x0x7f637d261c30) + QDropEvent (0x0x7f637d261d00) 0 + primary-for QDragMoveEvent (0x0x7f637d261c98) + QEvent (0x0x7f637d289c60) 0 + primary-for QDropEvent (0x0x7f637d261d00) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7f637d261d68) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16u) + QEvent (0x0x7f637d289cc0) 0 + primary-for QDragLeaveEvent (0x0x7f637d261d68) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7f637d261dd0) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16u) + QEvent (0x0x7f637d289d20) 0 + primary-for QHelpEvent (0x0x7f637d261dd0) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7f637d261e38) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16u) + QEvent (0x0x7f637d289d80) 0 + primary-for QStatusTipEvent (0x0x7f637d261e38) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7f637d261ea0) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16u) + QEvent (0x0x7f637d289de0) 0 + primary-for QWhatsThisClickedEvent (0x0x7f637d261ea0) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7f637d261f08) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16u) + QEvent (0x0x7f637d289e40) 0 + primary-for QActionEvent (0x0x7f637d261f08) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7f637d261f70) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16u) + QEvent (0x0x7f637d289ea0) 0 + primary-for QFileOpenEvent (0x0x7f637d261f70) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7f637d369000) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16u) + QEvent (0x0x7f637d289f00) 0 + primary-for QToolBarChangeEvent (0x0x7f637d369000) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7f637d369068) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16u) + QEvent (0x0x7f637d289f60) 0 + primary-for QShortcutEvent (0x0x7f637d369068) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7f637d3690d0) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16u) + QEvent (0x0x7f637d372000) 0 + primary-for QWindowStateChangeEvent (0x0x7f637d3690d0) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f637d372060) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7f637d372420) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7f637d369270) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16u) + QInputEvent (0x0x7f637d3692d8) 0 + primary-for QTouchEvent (0x0x7f637d369270) + QEvent (0x0x7f637d3723c0) 0 + primary-for QInputEvent (0x0x7f637d3692d8) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7f637d443a90) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16u) + QEvent (0x0x7f637d446a80) 0 + primary-for QScrollPrepareEvent (0x0x7f637d443a90) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7f637d443af8) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16u) + QEvent (0x0x7f637d446ae0) 0 + primary-for QScrollEvent (0x0x7f637d443af8) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7f637d443b60) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16u) + QEvent (0x0x7f637d446b40) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f637d443b60) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7f637d443bc8) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16u) + QEvent (0x0x7f637d446ba0) 0 + primary-for QApplicationStateChangeEvent (0x0x7f637d443bc8) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f637d446c00) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7f637d0fb000) 0 + QVector (0x0x7f637d0c81e0) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7f637d0fb340) 0 + QVector (0x0x7f637d0c86c0) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7f637d0c8ae0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f637d0c8e40) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f637d0c8de0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f637d201600) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7f637d201720) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7f637d201ba0) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16u) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f637d201c00) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7f637d0fbea0) 0 + vptr=((& QImage::_ZTV6QImage) + 16u) + QPaintDevice (0x0x7f637cf0c0c0) 0 + primary-for QImage (0x0x7f637d0fbea0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7f637cfd39c0) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16u) + QPaintDevice (0x0x7f637cfec0c0) 0 + primary-for QPixmap (0x0x7f637cfd39c0) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f637cfec420) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7f637cfec780) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7f637cfec7e0) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7f637cfd3d68) 0 + QGradient (0x0x7f637cfeca80) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7f637cfd3dd0) 0 + QGradient (0x0x7f637cfecae0) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7f637cfd3e38) 0 + QGradient (0x0x7f637cfecb40) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f637cfecba0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f637cd32e40) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7f637cd32de0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f637cd722a0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f637cd72720) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f637cd4fd00) 0 + QTextFormat (0x0x7f637cd72f60) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f637cd4fea0) 0 + QTextFormat (0x0x7f637cadf2a0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f637cd4f958) 0 + QTextFormat (0x0x7f637cadf5a0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f637cb1e138) 0 + QTextCharFormat (0x0x7f637cb1e1a0) 0 + QTextFormat (0x0x7f637cadf8a0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f637cb1e340) 0 + QTextFormat (0x0x7f637cadfba0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f637cb1e4e0) 0 + QTextFrameFormat (0x0x7f637cb1e548) 0 + QTextFormat (0x0x7f637cadfea0) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f637cb1e6e8) 0 + QTextCharFormat (0x0x7f637cb1e750) 0 + QTextFormat (0x0x7f637cb78240) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7f637cb78540) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f637cb785a0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f637cb78b40) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f637cb78ea0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f637c886240) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f637c886300) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f637c8862a0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f637c8866c0) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f637c886720) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16u) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f637c8867e0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f637c8ef0d0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16u) + QObject (0x0x7f637c886780) 0 + primary-for QTextDocument (0x0x7f637c8ef0d0) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7f637c8869c0) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f637c886960) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f637c9fdae0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f637c9fdb40) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f637c9fdba0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f637c9fcd68) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16u) + QObject (0x0x7f637c9fda80) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f637c9fcd68) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f637c67a240) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16u) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f637c67a360) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f637c67a3c0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16u) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f637c67a300) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f637c67a540) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16u) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f637c67a5a0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16u) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f637c67a600) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16u) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f637c67a660) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16u) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f637c67a6c0) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16u) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f637c67a720) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16u) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f637c67a780) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16u) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f637c67a7e0) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16u) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f637c67a840) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16u) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f637c67d2d8) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16u) + QAccessibleEvent (0x0x7f637c746180) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f637c67d2d8) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f637c67d340) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16u) + QAccessibleEvent (0x0x7f637c7461e0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f637c67d340) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f637c67d3a8) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f637c67d410) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f637c67d3a8) + QAccessibleEvent (0x0x7f637c746240) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f637c67d410) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7f637c67d478) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f637c67d4e0) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f637c67d478) + QAccessibleEvent (0x0x7f637c7462a0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f637c67d4e0) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7f637c67d548) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f637c67d5b0) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f637c67d548) + QAccessibleEvent (0x0x7f637c746300) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f637c67d5b0) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7f637c67d618) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16u) + QAccessibleTextCursorEvent (0x0x7f637c67d680) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f637c67d618) + QAccessibleEvent (0x0x7f637c746360) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f637c67d680) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7f637c67d6e8) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16u) + QAccessibleEvent (0x0x7f637c7463c0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f637c67d6e8) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f637c67d750) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16u) + QAccessibleEvent (0x0x7f637c746420) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f637c67d750) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f637c7464e0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16u) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f637c7465a0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f637c67d7b8) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16u) + QObject (0x0x7f637c746540) 0 + primary-for QAccessibleBridgePlugin (0x0x7f637c67d7b8) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0u +24 0u +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f637c67d820) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16u) + QAccessibleInterface (0x0x7f637c746600) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f637c67d820) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f637c67d888) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16u) + QAccessibleObject (0x0x7f637c67d8f0) 0 + primary-for QAccessibleApplication (0x0x7f637c67d888) + QAccessibleInterface (0x0x7f637c746660) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f637c67d8f0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f637c746720) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f637c67d958) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16u) + QObject (0x0x7f637c7466c0) 0 + primary-for QAccessiblePlugin (0x0x7f637c67d958) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f637c746780) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f637c746900) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16u) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f637c746a80) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f637c4c5ea0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f637c5711e0) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f637c569cb0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16u) + QObject (0x0x7f637c571120) 0 + primary-for QWindow (0x0x7f637c569cb0) + QSurface (0x0x7f637c571180) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312u) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f637c571300) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7f637c56a4e0) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16u) + QPixmap (0x0x7f637c56a548) 0 + primary-for QBitmap (0x0x7f637c56a4e0) + QPaintDevice (0x0x7f637c5713c0) 0 + primary-for QPixmap (0x0x7f637c56a548) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f637c571780) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f637c56a750) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16u) + QObject (0x0x7f637c571720) 0 + primary-for QClipboard (0x0x7f637c56a750) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f637c5717e0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f637c5718a0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f637c56a7b8) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16u) + QObject (0x0x7f637c571840) 0 + primary-for QDrag (0x0x7f637c56a7b8) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f637c571900) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f637c571c00) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f637c571f60) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f637c37d1e0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f637c56ad68) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16u) + QObject (0x0x7f637c37d180) 0 + primary-for QGenericPlugin (0x0x7f637c56ad68) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f637c37d240) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f637c37d300) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f637c56add0) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16u) + QObject (0x0x7f637c37d2a0) 0 + primary-for QInputMethod (0x0x7f637c56add0) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f637c37d3c0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f637c56ae38) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16u) + QCoreApplication (0x0x7f637c56aea0) 0 + primary-for QGuiApplication (0x0x7f637c56ae38) + QObject (0x0x7f637c37d360) 0 + primary-for QCoreApplication (0x0x7f637c56aea0) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7f637c37d600) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f637c37d5a0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16u) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f637c37d7e0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f637c3ea068) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16u) + QObject (0x0x7f637c37d780) 0 + primary-for QIconEnginePlugin (0x0x7f637c3ea068) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0u +24 0u +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f637c37d840) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16u) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f637c37d9c0) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f637c3ea0d0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16u) + QObject (0x0x7f637c37d960) 0 + primary-for QImageIOPlugin (0x0x7f637c3ea0d0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f637c37db40) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f637c37dba0) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f637c37dc00) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f637c0e4000) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f637c0e43c0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f637c0e46c0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f637c0e4de0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f637c3ea8f0) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16u) + QObject (0x0x7f637c0e4d80) 0 + primary-for QMovie (0x0x7f637c3ea8f0) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f637c0e4f00) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f637bed0150) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16u) + QObject (0x0x7f637c0e4e40) 0 + primary-for QOffscreenSurface (0x0x7f637bed0150) + QSurface (0x0x7f637c0e4ea0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160u) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f637bb9e000) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f637bb9e180) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f637b81f060) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f637b81f0c0) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f637b81f120) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f637b81f180) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16u) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f637b81f240) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f637bc02d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f1e0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f637b81f360) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f637bc02d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f300) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f637b81f480) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f637bc02dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f420) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f637b81f5a0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f637bc02e38) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f540) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f637b81f720) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f637bc02ea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f6c0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f637b81f840) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f637bc02f08) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f7e0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f637b81f960) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f637bc02f70) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81f900) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f637b81fa80) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f637b8a5000) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81fa20) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f637b81fba0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f637b8a5068) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81fb40) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f637b81fcc0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f637b8a50d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81fc60) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f637b81fde0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f637b8a5138) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81fd80) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f637b81ff00) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f637b8a51a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b81fea0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f637b8fb060) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f637b8a5208) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb000) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f637b8fb180) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f637b8a5270) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb120) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f637b8fb2a0) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f637b8a52d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb240) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f637b8fb3c0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f637b8a5340) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb360) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f637b8fb4e0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f637b8a53a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb480) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f637b8fb660) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f637b8a5410) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb600) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f637b8fb780) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f637b8a5478) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb720) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f637b8fb8a0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f637b8a54e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb840) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f637b8fb9c0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f637b8a5548) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fb960) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f637b8fbae0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f637b8a55b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fba80) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f637b8fbc00) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f637b8a5618) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fbba0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f637b8fbd20) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f637b8a5680) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fbcc0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f637b8fbe40) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f637b8a56e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fbde0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f637b8fbf60) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f637b8a5750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b8fbf00) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f637b63e0c0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f637b8a57b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f637b63e060) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f637b63e180) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f637b63e3c0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f637b8a58f0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16u) + QObject (0x0x7f637b63e360) 0 + primary-for QOpenGLContextGroup (0x0x7f637b8a58f0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f637b63e480) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f637b8a5958) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16u) + QObject (0x0x7f637b63e420) 0 + primary-for QOpenGLContext (0x0x7f637b8a5958) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f637b63e4e0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f637b63ec00) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f637b8a5d68) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16u) + QObject (0x0x7f637b63eba0) 0 + primary-for QOpenGLDebugLogger (0x0x7f637b8a5d68) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f637b63ed80) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f637b63ef60) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f637b63ef00) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f637b4c6a28) 0 + QOpenGLFunctions (0x0x7f637b7fb0c0) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1376 align=8 + base size=1376 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f637b7fb180) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2528 align=8 + base size=2528 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f637b4c6a90) 0 + QOpenGLFunctionsPrivate (0x0x7f637b7fb120) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f637b7fb4e0) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16u) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f637b7fb600) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7f637b2b1340) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16u) + QPaintDevice (0x0x7f637b7fb660) 0 + primary-for QOpenGLPaintDevice (0x0x7f637b2b1340) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f637b7fb780) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f637b7fbb40) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f637b2b14e0) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16u) + QObject (0x0x7f637b7fbae0) 0 + primary-for QOpenGLShader (0x0x7f637b2b14e0) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f637b7fbd20) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f637b2b1618) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16u) + QObject (0x0x7f637b7fbcc0) 0 + primary-for QOpenGLShaderProgram (0x0x7f637b2b1618) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f637b7fbd80) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f637b016000) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f637b016180) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f637b2b1750) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16u) + QObject (0x0x7f637b016120) 0 + primary-for QOpenGLTimerQuery (0x0x7f637b2b1750) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f637b016240) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f637b2b17b8) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16u) + QObject (0x0x7f637b0161e0) 0 + primary-for QOpenGLTimeMonitor (0x0x7f637b2b17b8) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f637b016300) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f637b016360) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f637b2b1820) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16u) + QObject (0x0x7f637b0162a0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f637b2b1820) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f637b0164e0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7f637b05bbd0) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16u) + QWindow (0x0x7f637b05bc40) 0 + primary-for QPaintDeviceWindow (0x0x7f637b05bbd0) + QObject (0x0x7f637b0163c0) 0 + primary-for QWindow (0x0x7f637b05bc40) + QSurface (0x0x7f637b016420) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336u) + QPaintDevice (0x0x7f637b016480) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400u) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f637b016660) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7f637b2b1888) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16u) + QPaintDeviceWindow (0x0x7f637b074380) 0 + primary-for QOpenGLWindow (0x0x7f637b2b1888) + QWindow (0x0x7f637b0743f0) 0 + primary-for QPaintDeviceWindow (0x0x7f637b074380) + QObject (0x0x7f637b016540) 0 + primary-for QWindow (0x0x7f637b0743f0) + QSurface (0x0x7f637b0165a0) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384u) + QPaintDevice (0x0x7f637b016600) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448u) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f637b0166c0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f637b016d80) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7f637b1004e0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0u +24 0u +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7f637b2b1bc8) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16u) + QPaintDevice (0x0x7f637b100480) 0 + primary-for QPagedPaintDevice (0x0x7f637b2b1bc8) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f637b1005a0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f637b100540) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f637b100ea0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f637af0f1e0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16u) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f637af0f420) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f637af0f8a0) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7f637afc7380) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16u) + QObject (0x0x7f637af0f7e0) 0 + primary-for QPdfWriter (0x0x7f637afc7380) + QPagedPaintDevice (0x0x7f637ae03680) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176u) + QPaintDevice (0x0x7f637af0f840) 16 + primary-for QPagedPaintDevice (0x0x7f637ae03680) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7f637ae036e8) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16u) + QPaintDevice (0x0x7f637af0fa20) 0 + primary-for QPicture (0x0x7f637ae036e8) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7f637af0fd80) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7f637af0fe40) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7f637ae03888) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16u) + QObject (0x0x7f637af0fde0) 0 + primary-for QPictureFormatPlugin (0x0x7f637ae03888) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f637af0ff00) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f637af0fea0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f637acb8120) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7f637ac93f08) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16u) + QPaintDeviceWindow (0x0x7f637acabd20) 0 + primary-for QRasterWindow (0x0x7f637ac93f08) + QWindow (0x0x7f637acabd90) 0 + primary-for QPaintDeviceWindow (0x0x7f637acabd20) + QObject (0x0x7f637acb8000) 0 + primary-for QWindow (0x0x7f637acabd90) + QSurface (0x0x7f637acb8060) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344u) + QPaintDevice (0x0x7f637acb80c0) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408u) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f637acb81e0) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f637accb000) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16u) + QObject (0x0x7f637acb8180) 0 + primary-for QScreen (0x0x7f637accb000) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f637acb82a0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f637accb068) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16u) + QObject (0x0x7f637acb8240) 0 + primary-for QSessionManager (0x0x7f637accb068) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f637acb8300) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16u) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f637acb85a0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f637accb208) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16u) + QAbstractItemModel (0x0x7f637accb270) 0 + primary-for QStandardItemModel (0x0x7f637accb208) + QObject (0x0x7f637acb8540) 0 + primary-for QAbstractItemModel (0x0x7f637accb270) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f637acb8600) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f637acb8ae0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f637accb410) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16u) + QObject (0x0x7f637acb8a80) 0 + primary-for QStyleHints (0x0x7f637accb410) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f637acb8ba0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f637accb478) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16u) + QObject (0x0x7f637acb8b40) 0 + primary-for QTextObject (0x0x7f637accb478) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f637acb8c60) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f637accb4e0) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16u) + QTextObject (0x0x7f637accb548) 0 + primary-for QTextBlockGroup (0x0x7f637accb4e0) + QObject (0x0x7f637acb8c00) 0 + primary-for QTextObject (0x0x7f637accb548) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f637acb8cc0) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16u) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f637acb8d80) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f637acb8de0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f637accb5b0) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16u) + QTextObject (0x0x7f637accb618) 0 + primary-for QTextFrame (0x0x7f637accb5b0) + QObject (0x0x7f637acb8d20) 0 + primary-for QTextObject (0x0x7f637accb618) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f637aa6d120) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16u) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f637aa6d1e0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f637aa6d180) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f637aa6d780) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f637aa6dae0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f637accbb60) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16u) + QObject (0x0x7f637aa6da80) 0 + primary-for QSyntaxHighlighter (0x0x7f637accbb60) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f637aa6db40) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f637aa6dba0) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f637aa6dc60) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f637accbbc8) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16u) + QTextBlockGroup (0x0x7f637accbc30) 0 + primary-for QTextList (0x0x7f637accbbc8) + QTextObject (0x0x7f637accbc98) 0 + primary-for QTextBlockGroup (0x0x7f637accbc30) + QObject (0x0x7f637aa6dc00) 0 + primary-for QTextObject (0x0x7f637accbc98) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f637aa6dcc0) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f637aa6dd80) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f637accbd00) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16u) + QTextFrame (0x0x7f637accbd68) 0 + primary-for QTextTable (0x0x7f637accbd00) + QTextObject (0x0x7f637accbdd0) 0 + primary-for QTextFrame (0x0x7f637accbd68) + QObject (0x0x7f637aa6dd20) 0 + primary-for QTextObject (0x0x7f637accbdd0) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f637aa6de40) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f637accbe38) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16u) + QObject (0x0x7f637aa6dde0) 0 + primary-for QValidator (0x0x7f637accbe38) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f637aa6df00) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f637accbea0) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16u) + QValidator (0x0x7f637accbf08) 0 + primary-for QIntValidator (0x0x7f637accbea0) + QObject (0x0x7f637aa6dea0) 0 + primary-for QValidator (0x0x7f637accbf08) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f637ab45000) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f637accbf70) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16u) + QValidator (0x0x7f637ab41000) 0 + primary-for QDoubleValidator (0x0x7f637accbf70) + QObject (0x0x7f637aa6df60) 0 + primary-for QValidator (0x0x7f637ab41000) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7f637ab45120) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7f637ab41068) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16u) + QValidator (0x0x7f637ab410d0) 0 + primary-for QRegExpValidator (0x0x7f637ab41068) + QObject (0x0x7f637ab450c0) 0 + primary-for QValidator (0x0x7f637ab410d0) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f637ab451e0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f637ab41138) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16u) + QValidator (0x0x7f637ab411a0) 0 + primary-for QRegularExpressionValidator (0x0x7f637ab41138) + QObject (0x0x7f637ab45180) 0 + primary-for QValidator (0x0x7f637ab411a0) + +Class QNetworkRequest + size=8 align=8 + base size=8 base align=8 +QNetworkRequest (0x0x7f637ab45240) 0 + +Class QNetworkCacheMetaData + size=8 align=8 + base size=8 base align=8 +QNetworkCacheMetaData (0x0x7f637ab456c0) 0 + +Class QAbstractNetworkCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractNetworkCache::QPrivateSignal (0x0x7f637ab45a80) 0 empty + +Vtable for QAbstractNetworkCache +QAbstractNetworkCache::_ZTV21QAbstractNetworkCache: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractNetworkCache) +16 (int (*)(...))QAbstractNetworkCache::metaObject +24 (int (*)(...))QAbstractNetworkCache::qt_metacast +32 (int (*)(...))QAbstractNetworkCache::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNetworkCache + size=16 align=8 + base size=16 base align=8 +QAbstractNetworkCache (0x0x7f637ab41478) 0 + vptr=((& QAbstractNetworkCache::_ZTV21QAbstractNetworkCache) + 16u) + QObject (0x0x7f637ab45a20) 0 + primary-for QAbstractNetworkCache (0x0x7f637ab41478) + +Class QAbstractSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSocket::QPrivateSignal (0x0x7f637ab45b40) 0 empty + +Vtable for QAbstractSocket +QAbstractSocket::_ZTV15QAbstractSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSocket) +16 (int (*)(...))QAbstractSocket::metaObject +24 (int (*)(...))QAbstractSocket::qt_metacast +32 (int (*)(...))QAbstractSocket::qt_metacall +40 (int (*)(...))QAbstractSocket::~QAbstractSocket +48 (int (*)(...))QAbstractSocket::~QAbstractSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QAbstractSocket + size=16 align=8 + base size=16 base align=8 +QAbstractSocket (0x0x7f637ab414e0) 0 + vptr=((& QAbstractSocket::_ZTV15QAbstractSocket) + 16u) + QIODevice (0x0x7f637ab41548) 0 + primary-for QAbstractSocket (0x0x7f637ab414e0) + QObject (0x0x7f637ab45ae0) 0 + primary-for QIODevice (0x0x7f637ab41548) + +Class QAuthenticator + size=8 align=8 + base size=8 base align=8 +QAuthenticator (0x0x7f637a87f060) 0 + +Class QDnsDomainNameRecord + size=8 align=8 + base size=8 base align=8 +QDnsDomainNameRecord (0x0x7f637a87f0c0) 0 + +Class QDnsHostAddressRecord + size=8 align=8 + base size=8 base align=8 +QDnsHostAddressRecord (0x0x7f637a87f420) 0 + +Class QDnsMailExchangeRecord + size=8 align=8 + base size=8 base align=8 +QDnsMailExchangeRecord (0x0x7f637a87f780) 0 + +Class QDnsServiceRecord + size=8 align=8 + base size=8 base align=8 +QDnsServiceRecord (0x0x7f637a87fae0) 0 + +Class QDnsTextRecord + size=8 align=8 + base size=8 base align=8 +QDnsTextRecord (0x0x7f637a87fe40) 0 + +Class QDnsLookup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDnsLookup::QPrivateSignal (0x0x7f637a900240) 0 empty + +Vtable for QDnsLookup +QDnsLookup::_ZTV10QDnsLookup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDnsLookup) +16 (int (*)(...))QDnsLookup::metaObject +24 (int (*)(...))QDnsLookup::qt_metacast +32 (int (*)(...))QDnsLookup::qt_metacall +40 (int (*)(...))QDnsLookup::~QDnsLookup +48 (int (*)(...))QDnsLookup::~QDnsLookup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDnsLookup + size=16 align=8 + base size=16 base align=8 +QDnsLookup (0x0x7f637ab41d68) 0 + vptr=((& QDnsLookup::_ZTV10QDnsLookup) + 16u) + QObject (0x0x7f637a9001e0) 0 + primary-for QDnsLookup (0x0x7f637ab41d68) + +Class QIPv6Address + size=16 align=1 + base size=16 base align=1 +QIPv6Address (0x0x7f637a9002a0) 0 + +Class QHostAddress + size=8 align=8 + base size=8 base align=8 +QHostAddress (0x0x7f637a900300) 0 + +Class QHostInfo + size=8 align=8 + base size=8 base align=8 +QHostInfo (0x0x7f637a900780) 0 + +Class QHttpPart + size=8 align=8 + base size=8 base align=8 +QHttpPart (0x0x7f637a900960) 0 + +Class QHttpMultiPart::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHttpMultiPart::QPrivateSignal (0x0x7f637a900d20) 0 empty + +Vtable for QHttpMultiPart +QHttpMultiPart::_ZTV14QHttpMultiPart: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QHttpMultiPart) +16 (int (*)(...))QHttpMultiPart::metaObject +24 (int (*)(...))QHttpMultiPart::qt_metacast +32 (int (*)(...))QHttpMultiPart::qt_metacall +40 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +48 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHttpMultiPart + size=16 align=8 + base size=16 base align=8 +QHttpMultiPart (0x0x7f637a9aa138) 0 + vptr=((& QHttpMultiPart::_ZTV14QHttpMultiPart) + 16u) + QObject (0x0x7f637a900cc0) 0 + primary-for QHttpMultiPart (0x0x7f637a9aa138) + +Class QLocalServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalServer::QPrivateSignal (0x0x7f637a900de0) 0 empty + +Vtable for QLocalServer +QLocalServer::_ZTV12QLocalServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalServer) +16 (int (*)(...))QLocalServer::metaObject +24 (int (*)(...))QLocalServer::qt_metacast +32 (int (*)(...))QLocalServer::qt_metacall +40 (int (*)(...))QLocalServer::~QLocalServer +48 (int (*)(...))QLocalServer::~QLocalServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalServer::hasPendingConnections +120 (int (*)(...))QLocalServer::nextPendingConnection +128 (int (*)(...))QLocalServer::incomingConnection + +Class QLocalServer + size=16 align=8 + base size=16 base align=8 +QLocalServer (0x0x7f637a9aa1a0) 0 + vptr=((& QLocalServer::_ZTV12QLocalServer) + 16u) + QObject (0x0x7f637a900d80) 0 + primary-for QLocalServer (0x0x7f637a9aa1a0) + +Class QLocalSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalSocket::QPrivateSignal (0x0x7f637a605000) 0 empty + +Vtable for QLocalSocket +QLocalSocket::_ZTV12QLocalSocket: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalSocket) +16 (int (*)(...))QLocalSocket::metaObject +24 (int (*)(...))QLocalSocket::qt_metacast +32 (int (*)(...))QLocalSocket::qt_metacall +40 (int (*)(...))QLocalSocket::~QLocalSocket +48 (int (*)(...))QLocalSocket::~QLocalSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalSocket::isSequential +120 (int (*)(...))QLocalSocket::open +128 (int (*)(...))QLocalSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QLocalSocket::bytesAvailable +184 (int (*)(...))QLocalSocket::bytesToWrite +192 (int (*)(...))QLocalSocket::canReadLine +200 (int (*)(...))QLocalSocket::waitForReadyRead +208 (int (*)(...))QLocalSocket::waitForBytesWritten +216 (int (*)(...))QLocalSocket::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QLocalSocket::writeData + +Class QLocalSocket + size=16 align=8 + base size=16 base align=8 +QLocalSocket (0x0x7f637a9aa340) 0 + vptr=((& QLocalSocket::_ZTV12QLocalSocket) + 16u) + QIODevice (0x0x7f637a9aa3a8) 0 + primary-for QLocalSocket (0x0x7f637a9aa340) + QObject (0x0x7f637a900f60) 0 + primary-for QIODevice (0x0x7f637a9aa3a8) + +Class QTcpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpSocket::QPrivateSignal (0x0x7f637a6050c0) 0 empty + +Vtable for QTcpSocket +QTcpSocket::_ZTV10QTcpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpSocket) +16 (int (*)(...))QTcpSocket::metaObject +24 (int (*)(...))QTcpSocket::qt_metacast +32 (int (*)(...))QTcpSocket::qt_metacall +40 (int (*)(...))QTcpSocket::~QTcpSocket +48 (int (*)(...))QTcpSocket::~QTcpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QTcpSocket + size=16 align=8 + base size=16 base align=8 +QTcpSocket (0x0x7f637a9aa410) 0 + vptr=((& QTcpSocket::_ZTV10QTcpSocket) + 16u) + QAbstractSocket (0x0x7f637a9aa478) 0 + primary-for QTcpSocket (0x0x7f637a9aa410) + QIODevice (0x0x7f637a9aa4e0) 0 + primary-for QAbstractSocket (0x0x7f637a9aa478) + QObject (0x0x7f637a605060) 0 + primary-for QIODevice (0x0x7f637a9aa4e0) + +Class QSslCertificate + size=8 align=8 + base size=8 base align=8 +QSslCertificate (0x0x7f637a605240) 0 + +Class QSslError + size=8 align=8 + base size=8 base align=8 +QSslError (0x0x7f637a6056c0) 0 + +Class QSslSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSslSocket::QPrivateSignal (0x0x7f637a605d20) 0 empty + +Vtable for QSslSocket +QSslSocket::_ZTV10QSslSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSslSocket) +16 (int (*)(...))QSslSocket::metaObject +24 (int (*)(...))QSslSocket::qt_metacast +32 (int (*)(...))QSslSocket::qt_metacall +40 (int (*)(...))QSslSocket::~QSslSocket +48 (int (*)(...))QSslSocket::~QSslSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QSslSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QSslSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QSslSocket::bytesAvailable +184 (int (*)(...))QSslSocket::bytesToWrite +192 (int (*)(...))QSslSocket::canReadLine +200 (int (*)(...))QSslSocket::waitForReadyRead +208 (int (*)(...))QSslSocket::waitForBytesWritten +216 (int (*)(...))QSslSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QSslSocket::writeData +240 (int (*)(...))QSslSocket::resume +248 (int (*)(...))QSslSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QSslSocket::disconnectFromHost +272 (int (*)(...))QSslSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QSslSocket::setSocketDescriptor +296 (int (*)(...))QSslSocket::setSocketOption +304 (int (*)(...))QSslSocket::socketOption +312 (int (*)(...))QSslSocket::waitForConnected +320 (int (*)(...))QSslSocket::waitForDisconnected + +Class QSslSocket + size=16 align=8 + base size=16 base align=8 +QSslSocket (0x0x7f637a9aa958) 0 + vptr=((& QSslSocket::_ZTV10QSslSocket) + 16u) + QTcpSocket (0x0x7f637a9aa9c0) 0 + primary-for QSslSocket (0x0x7f637a9aa958) + QAbstractSocket (0x0x7f637a9aaa28) 0 + primary-for QTcpSocket (0x0x7f637a9aa9c0) + QIODevice (0x0x7f637a9aaa90) 0 + primary-for QAbstractSocket (0x0x7f637a9aaa28) + QObject (0x0x7f637a605cc0) 0 + primary-for QIODevice (0x0x7f637a9aaa90) + +Class QSslConfiguration + size=8 align=8 + base size=8 base align=8 +QSslConfiguration (0x0x7f637a605d80) 0 + +Class QSslPreSharedKeyAuthenticator + size=8 align=8 + base size=8 base align=8 +QSslPreSharedKeyAuthenticator (0x0x7f637a740240) 0 + +Class QNetworkAccessManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkAccessManager::QPrivateSignal (0x0x7f637a740840) 0 empty + +Vtable for QNetworkAccessManager +QNetworkAccessManager::_ZTV21QNetworkAccessManager: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QNetworkAccessManager) +16 (int (*)(...))QNetworkAccessManager::metaObject +24 (int (*)(...))QNetworkAccessManager::qt_metacast +32 (int (*)(...))QNetworkAccessManager::qt_metacall +40 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +48 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkAccessManager::createRequest + +Class QNetworkAccessManager + size=16 align=8 + base size=16 base align=8 +QNetworkAccessManager (0x0x7f637a9aad68) 0 + vptr=((& QNetworkAccessManager::_ZTV21QNetworkAccessManager) + 16u) + QObject (0x0x7f637a7407e0) 0 + primary-for QNetworkAccessManager (0x0x7f637a9aad68) + +Class QNetworkConfiguration + size=8 align=8 + base size=8 base align=8 +QNetworkConfiguration (0x0x7f637a7408a0) 0 + +Class QNetworkConfigurationManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkConfigurationManager::QPrivateSignal (0x0x7f637a740d80) 0 empty + +Vtable for QNetworkConfigurationManager +QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QNetworkConfigurationManager) +16 (int (*)(...))QNetworkConfigurationManager::metaObject +24 (int (*)(...))QNetworkConfigurationManager::qt_metacast +32 (int (*)(...))QNetworkConfigurationManager::qt_metacall +40 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +48 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QNetworkConfigurationManager + size=16 align=8 + base size=16 base align=8 +QNetworkConfigurationManager (0x0x7f637a9aaf08) 0 + vptr=((& QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager) + 16u) + QObject (0x0x7f637a740d20) 0 + primary-for QNetworkConfigurationManager (0x0x7f637a9aaf08) + +Class QNetworkCookie + size=8 align=8 + base size=8 base align=8 +QNetworkCookie (0x0x7f637a3f6060) 0 + +Class QNetworkCookieJar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkCookieJar::QPrivateSignal (0x0x7f637a3f6540) 0 empty + +Vtable for QNetworkCookieJar +QNetworkCookieJar::_ZTV17QNetworkCookieJar: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkCookieJar) +16 (int (*)(...))QNetworkCookieJar::metaObject +24 (int (*)(...))QNetworkCookieJar::qt_metacast +32 (int (*)(...))QNetworkCookieJar::qt_metacall +40 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +48 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkCookieJar::cookiesForUrl +120 (int (*)(...))QNetworkCookieJar::setCookiesFromUrl +128 (int (*)(...))QNetworkCookieJar::insertCookie +136 (int (*)(...))QNetworkCookieJar::updateCookie +144 (int (*)(...))QNetworkCookieJar::deleteCookie +152 (int (*)(...))QNetworkCookieJar::validateCookie + +Class QNetworkCookieJar + size=16 align=8 + base size=16 base align=8 +QNetworkCookieJar (0x0x7f637a7d6270) 0 + vptr=((& QNetworkCookieJar::_ZTV17QNetworkCookieJar) + 16u) + QObject (0x0x7f637a3f64e0) 0 + primary-for QNetworkCookieJar (0x0x7f637a7d6270) + +Class QNetworkDatagram + size=8 align=8 + base size=8 base align=8 +QNetworkDatagram (0x0x7f637a3f65a0) 0 + +Class QNetworkDiskCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkDiskCache::QPrivateSignal (0x0x7f637a4db600) 0 empty + +Vtable for QNetworkDiskCache +QNetworkDiskCache::_ZTV17QNetworkDiskCache: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkDiskCache) +16 (int (*)(...))QNetworkDiskCache::metaObject +24 (int (*)(...))QNetworkDiskCache::qt_metacast +32 (int (*)(...))QNetworkDiskCache::qt_metacall +40 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +48 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkDiskCache::metaData +120 (int (*)(...))QNetworkDiskCache::updateMetaData +128 (int (*)(...))QNetworkDiskCache::data +136 (int (*)(...))QNetworkDiskCache::remove +144 (int (*)(...))QNetworkDiskCache::cacheSize +152 (int (*)(...))QNetworkDiskCache::prepare +160 (int (*)(...))QNetworkDiskCache::insert +168 (int (*)(...))QNetworkDiskCache::clear +176 (int (*)(...))QNetworkDiskCache::expire + +Class QNetworkDiskCache + size=16 align=8 + base size=16 base align=8 +QNetworkDiskCache (0x0x7f637a4d2c30) 0 + vptr=((& QNetworkDiskCache::_ZTV17QNetworkDiskCache) + 16u) + QAbstractNetworkCache (0x0x7f637a4d2c98) 0 + primary-for QNetworkDiskCache (0x0x7f637a4d2c30) + QObject (0x0x7f637a4db5a0) 0 + primary-for QAbstractNetworkCache (0x0x7f637a4d2c98) + +Class QNetworkAddressEntry + size=8 align=8 + base size=8 base align=8 +QNetworkAddressEntry (0x0x7f637a4db660) 0 + +Class QNetworkInterface + size=8 align=8 + base size=8 base align=8 +QNetworkInterface (0x0x7f637a4dba20) 0 + +Class QNetworkProxyQuery + size=8 align=8 + base size=8 base align=8 +QNetworkProxyQuery (0x0x7f637a577180) 0 + +Class QNetworkProxy + size=8 align=8 + base size=8 base align=8 +QNetworkProxy (0x0x7f637a5774e0) 0 + +Vtable for QNetworkProxyFactory +QNetworkProxyFactory::_ZTV20QNetworkProxyFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QNetworkProxyFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QNetworkProxyFactory + size=8 align=8 + base size=8 base align=8 +QNetworkProxyFactory (0x0x7f637a577960) 0 nearly-empty + vptr=((& QNetworkProxyFactory::_ZTV20QNetworkProxyFactory) + 16u) + +Class QNetworkReply::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkReply::QPrivateSignal (0x0x7f637a577b40) 0 empty + +Vtable for QNetworkReply +QNetworkReply::_ZTV13QNetworkReply: 36u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QNetworkReply) +16 (int (*)(...))QNetworkReply::metaObject +24 (int (*)(...))QNetworkReply::qt_metacast +32 (int (*)(...))QNetworkReply::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkReply::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QNetworkReply::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QNetworkReply::writeData +240 (int (*)(...))QNetworkReply::setReadBufferSize +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))QNetworkReply::ignoreSslErrors +264 (int (*)(...))QNetworkReply::sslConfigurationImplementation +272 (int (*)(...))QNetworkReply::setSslConfigurationImplementation +280 (int (*)(...))QNetworkReply::ignoreSslErrorsImplementation + +Class QNetworkReply + size=16 align=8 + base size=16 base align=8 +QNetworkReply (0x0x7f637a5443a8) 0 + vptr=((& QNetworkReply::_ZTV13QNetworkReply) + 16u) + QIODevice (0x0x7f637a544410) 0 + primary-for QNetworkReply (0x0x7f637a5443a8) + QObject (0x0x7f637a577ae0) 0 + primary-for QIODevice (0x0x7f637a544410) + +Class QNetworkSession::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkSession::QPrivateSignal (0x0x7f637a577d20) 0 empty + +Vtable for QNetworkSession +QNetworkSession::_ZTV15QNetworkSession: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QNetworkSession) +16 (int (*)(...))QNetworkSession::metaObject +24 (int (*)(...))QNetworkSession::qt_metacast +32 (int (*)(...))QNetworkSession::qt_metacall +40 (int (*)(...))QNetworkSession::~QNetworkSession +48 (int (*)(...))QNetworkSession::~QNetworkSession +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QNetworkSession::connectNotify +104 (int (*)(...))QNetworkSession::disconnectNotify + +Class QNetworkSession + size=24 align=8 + base size=24 base align=8 +QNetworkSession (0x0x7f637a544478) 0 + vptr=((& QNetworkSession::_ZTV15QNetworkSession) + 16u) + QObject (0x0x7f637a577cc0) 0 + primary-for QNetworkSession (0x0x7f637a544478) + +Class QTcpServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpServer::QPrivateSignal (0x0x7f637a2602a0) 0 empty + +Vtable for QTcpServer +QTcpServer::_ZTV10QTcpServer: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpServer) +16 (int (*)(...))QTcpServer::metaObject +24 (int (*)(...))QTcpServer::qt_metacast +32 (int (*)(...))QTcpServer::qt_metacall +40 (int (*)(...))QTcpServer::~QTcpServer +48 (int (*)(...))QTcpServer::~QTcpServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTcpServer::hasPendingConnections +120 (int (*)(...))QTcpServer::nextPendingConnection +128 (int (*)(...))QTcpServer::incomingConnection + +Class QTcpServer + size=16 align=8 + base size=16 base align=8 +QTcpServer (0x0x7f637a5445b0) 0 + vptr=((& QTcpServer::_ZTV10QTcpServer) + 16u) + QObject (0x0x7f637a260240) 0 + primary-for QTcpServer (0x0x7f637a5445b0) + +Class QSslCertificateExtension + size=8 align=8 + base size=8 base align=8 +QSslCertificateExtension (0x0x7f637a260300) 0 + +Class QSslCipher + size=8 align=8 + base size=8 base align=8 +QSslCipher (0x0x7f637a260660) 0 + +Class QSslDiffieHellmanParameters + size=8 align=8 + base size=8 base align=8 +QSslDiffieHellmanParameters (0x0x7f637a260a20) 0 + +Class QSslEllipticCurve + size=4 align=4 + base size=4 base align=4 +QSslEllipticCurve (0x0x7f637a34f6c0) 0 + +Class QSslKey + size=8 align=8 + base size=8 base align=8 +QSslKey (0x0x7f637a34fae0) 0 + +Class QUdpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUdpSocket::QPrivateSignal (0x0x7f637a34fea0) 0 empty + +Vtable for QUdpSocket +QUdpSocket::_ZTV10QUdpSocket: 41u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUdpSocket) +16 (int (*)(...))QUdpSocket::metaObject +24 (int (*)(...))QUdpSocket::qt_metacast +32 (int (*)(...))QUdpSocket::qt_metacall +40 (int (*)(...))QUdpSocket::~QUdpSocket +48 (int (*)(...))QUdpSocket::~QUdpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QUdpSocket + size=16 align=8 + base size=16 base align=8 +QUdpSocket (0x0x7f637a399068) 0 + vptr=((& QUdpSocket::_ZTV10QUdpSocket) + 16u) + QAbstractSocket (0x0x7f637a3990d0) 0 + primary-for QUdpSocket (0x0x7f637a399068) + QIODevice (0x0x7f637a399138) 0 + primary-for QAbstractSocket (0x0x7f637a3990d0) + QObject (0x0x7f637a34fe40) 0 + primary-for QIODevice (0x0x7f637a399138) + +Class QJSValue + size=8 align=8 + base size=8 base align=8 +QJSValue (0x0x7f637a34ff00) 0 + +Class QJSEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QJSEngine::QPrivateSignal (0x0x7f637a3ca240) 0 empty + +Vtable for QJSEngine +QJSEngine::_ZTV9QJSEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QJSEngine) +16 (int (*)(...))QJSEngine::metaObject +24 (int (*)(...))QJSEngine::qt_metacast +32 (int (*)(...))QJSEngine::qt_metacall +40 (int (*)(...))QJSEngine::~QJSEngine +48 (int (*)(...))QJSEngine::~QJSEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QJSEngine + size=24 align=8 + base size=24 base align=8 +QJSEngine (0x0x7f637a399270) 0 + vptr=((& QJSEngine::_ZTV9QJSEngine) + 16u) + QObject (0x0x7f637a3ca1e0) 0 + primary-for QJSEngine (0x0x7f637a399270) + +Class QJSValueIterator + size=8 align=8 + base size=8 base align=8 +QJSValueIterator (0x0x7f637a3ca3c0) 0 + +Class QQmlPrivate::RegisterType + size=128 align=8 + base size=124 base align=8 +QQmlPrivate::RegisterType (0x0x7f637a3ca8a0) 0 + +Class QQmlPrivate::RegisterInterface + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::RegisterInterface (0x0x7f637a3ca900) 0 + +Class QQmlPrivate::RegisterAutoParent + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterAutoParent (0x0x7f637a3ca960) 0 + +Class QQmlPrivate::RegisterSingletonType + size=64 align=8 + base size=64 base align=8 +QQmlPrivate::RegisterSingletonType (0x0x7f637a3ca9c0) 0 + +Class QQmlPrivate::RegisterCompositeType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeType (0x0x7f637a3caa20) 0 + +Class QQmlPrivate::RegisterCompositeSingletonType + size=32 align=8 + base size=32 base align=8 +QQmlPrivate::RegisterCompositeSingletonType (0x0x7f637a3caa80) 0 + +Class QQmlPrivate::CachedQmlUnit + size=24 align=8 + base size=24 base align=8 +QQmlPrivate::CachedQmlUnit (0x0x7f637a3caae0) 0 + +Class QQmlPrivate::RegisterQmlUnitCacheHook + size=16 align=8 + base size=16 base align=8 +QQmlPrivate::RegisterQmlUnitCacheHook (0x0x7f637a3cab40) 0 + +Vtable for QQmlParserStatus +QQmlParserStatus::_ZTV16QQmlParserStatus: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlParserStatus) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlParserStatus + size=16 align=8 + base size=16 base align=8 +QQmlParserStatus (0x0x7f637a3caba0) 0 + vptr=((& QQmlParserStatus::_ZTV16QQmlParserStatus) + 16u) + +Vtable for QQmlPropertyValueSource +QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QQmlPropertyValueSource) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlPropertyValueSource + size=8 align=8 + base size=8 base align=8 +QQmlPropertyValueSource (0x0x7f637a3cac60) 0 nearly-empty + vptr=((& QQmlPropertyValueSource::_ZTV23QQmlPropertyValueSource) + 16u) + +Class QQmlListReference + size=8 align=8 + base size=8 base align=8 +QQmlListReference (0x0x7f637a3cad80) 0 + +Vtable for QQmlAbstractUrlInterceptor +QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QQmlAbstractUrlInterceptor) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlAbstractUrlInterceptor + size=8 align=8 + base size=8 base align=8 +QQmlAbstractUrlInterceptor (0x0x7f637a0c6420) 0 nearly-empty + vptr=((& QQmlAbstractUrlInterceptor::_ZTV26QQmlAbstractUrlInterceptor) + 16u) + +Class QQmlError + size=8 align=8 + base size=8 base align=8 +QQmlError (0x0x7f637a0c6480) 0 + +Class QQmlDebuggingEnabler + size=1 align=1 + base size=0 base align=1 +QQmlDebuggingEnabler (0x0x7f637a0c6780) 0 empty + +Vtable for QQmlImageProviderBase +QQmlImageProviderBase::_ZTV21QQmlImageProviderBase: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlImageProviderBase) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlImageProviderBase + size=8 align=8 + base size=8 base align=8 +QQmlImageProviderBase (0x0x7f637a0c67e0) 0 nearly-empty + vptr=((& QQmlImageProviderBase::_ZTV21QQmlImageProviderBase) + 16u) + +Class QQmlEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlEngine::QPrivateSignal (0x0x7f637a0c69c0) 0 empty + +Vtable for QQmlEngine +QQmlEngine::_ZTV10QQmlEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQmlEngine) +16 (int (*)(...))QQmlEngine::metaObject +24 (int (*)(...))QQmlEngine::qt_metacast +32 (int (*)(...))QQmlEngine::qt_metacall +40 (int (*)(...))QQmlEngine::~QQmlEngine +48 (int (*)(...))QQmlEngine::~QQmlEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlEngine + size=24 align=8 + base size=24 base align=8 +QQmlEngine (0x0x7f637a399820) 0 + vptr=((& QQmlEngine::_ZTV10QQmlEngine) + 16u) + QJSEngine (0x0x7f637a399888) 0 + primary-for QQmlEngine (0x0x7f637a399820) + QObject (0x0x7f637a0c6960) 0 + primary-for QJSEngine (0x0x7f637a399888) + +Class QQmlApplicationEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlApplicationEngine::QPrivateSignal (0x0x7f637a0c6a80) 0 empty + +Vtable for QQmlApplicationEngine +QQmlApplicationEngine::_ZTV21QQmlApplicationEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QQmlApplicationEngine) +16 (int (*)(...))QQmlApplicationEngine::metaObject +24 (int (*)(...))QQmlApplicationEngine::qt_metacast +32 (int (*)(...))QQmlApplicationEngine::qt_metacall +40 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +48 (int (*)(...))QQmlApplicationEngine::~QQmlApplicationEngine +56 (int (*)(...))QQmlEngine::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlApplicationEngine + size=24 align=8 + base size=24 base align=8 +QQmlApplicationEngine (0x0x7f637a3998f0) 0 + vptr=((& QQmlApplicationEngine::_ZTV21QQmlApplicationEngine) + 16u) + QQmlEngine (0x0x7f637a399958) 0 + primary-for QQmlApplicationEngine (0x0x7f637a3998f0) + QJSEngine (0x0x7f637a3999c0) 0 + primary-for QQmlEngine (0x0x7f637a399958) + QObject (0x0x7f637a0c6a20) 0 + primary-for QJSEngine (0x0x7f637a3999c0) + +Class QQmlComponent::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlComponent::QPrivateSignal (0x0x7f637a0c6b40) 0 empty + +Vtable for QQmlComponent +QQmlComponent::_ZTV13QQmlComponent: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlComponent) +16 (int (*)(...))QQmlComponent::metaObject +24 (int (*)(...))QQmlComponent::qt_metacast +32 (int (*)(...))QQmlComponent::qt_metacall +40 (int (*)(...))QQmlComponent::~QQmlComponent +48 (int (*)(...))QQmlComponent::~QQmlComponent +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlComponent::create +120 (int (*)(...))QQmlComponent::beginCreate +128 (int (*)(...))QQmlComponent::completeCreate + +Class QQmlComponent + size=16 align=8 + base size=16 base align=8 +QQmlComponent (0x0x7f637a399a28) 0 + vptr=((& QQmlComponent::_ZTV13QQmlComponent) + 16u) + QObject (0x0x7f637a0c6ae0) 0 + primary-for QQmlComponent (0x0x7f637a399a28) + +Class QQmlContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlContext::QPrivateSignal (0x0x7f6379e150c0) 0 empty + +Vtable for QQmlContext +QQmlContext::_ZTV11QQmlContext: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QQmlContext) +16 (int (*)(...))QQmlContext::metaObject +24 (int (*)(...))QQmlContext::qt_metacast +32 (int (*)(...))QQmlContext::qt_metacall +40 (int (*)(...))QQmlContext::~QQmlContext +48 (int (*)(...))QQmlContext::~QQmlContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlContext + size=16 align=8 + base size=16 base align=8 +QQmlContext (0x0x7f637a399b60) 0 + vptr=((& QQmlContext::_ZTV11QQmlContext) + 16u) + QObject (0x0x7f6379e15060) 0 + primary-for QQmlContext (0x0x7f637a399b60) + +Class QQmlScriptString + size=8 align=8 + base size=8 base align=8 +QQmlScriptString (0x0x7f6379e15240) 0 + +Class QQmlExpression::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExpression::QPrivateSignal (0x0x7f6379e15480) 0 empty + +Vtable for QQmlExpression +QQmlExpression::_ZTV14QQmlExpression: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QQmlExpression) +16 (int (*)(...))QQmlExpression::metaObject +24 (int (*)(...))QQmlExpression::qt_metacast +32 (int (*)(...))QQmlExpression::qt_metacall +40 (int (*)(...))QQmlExpression::~QQmlExpression +48 (int (*)(...))QQmlExpression::~QQmlExpression +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlExpression + size=16 align=8 + base size=16 base align=8 +QQmlExpression (0x0x7f637a399bc8) 0 + vptr=((& QQmlExpression::_ZTV14QQmlExpression) + 16u) + QObject (0x0x7f6379e15420) 0 + primary-for QQmlExpression (0x0x7f637a399bc8) + +Vtable for QQmlTypesExtensionInterface +QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QQmlTypesExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlTypesExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlTypesExtensionInterface (0x0x7f6379e154e0) 0 nearly-empty + vptr=((& QQmlTypesExtensionInterface::_ZTV27QQmlTypesExtensionInterface) + 16u) + +Vtable for QQmlExtensionInterface +QQmlExtensionInterface::_ZTV22QQmlExtensionInterface: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QQmlExtensionInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QQmlExtensionInterface + size=8 align=8 + base size=8 base align=8 +QQmlExtensionInterface (0x0x7f637a399c30) 0 nearly-empty + vptr=((& QQmlExtensionInterface::_ZTV22QQmlExtensionInterface) + 16u) + QQmlTypesExtensionInterface (0x0x7f6379e15540) 0 nearly-empty + primary-for QQmlExtensionInterface (0x0x7f637a399c30) + +Class QQmlExtensionPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlExtensionPlugin::QPrivateSignal (0x0x7f6379e15720) 0 empty + +Vtable for QQmlExtensionPlugin +QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +16 (int (*)(...))QQmlExtensionPlugin::metaObject +24 (int (*)(...))QQmlExtensionPlugin::qt_metacast +32 (int (*)(...))QQmlExtensionPlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QQmlExtensionPlugin::initializeEngine +128 (int (*)(...))-16 +136 (int (*)(...))(& _ZTI19QQmlExtensionPlugin) +144 0u +152 0u +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QQmlExtensionPlugin::_ZThn16_N19QQmlExtensionPlugin16initializeEngineEP10QQmlEnginePKc + +Class QQmlExtensionPlugin + size=24 align=8 + base size=24 base align=8 +QQmlExtensionPlugin (0x0x7f6379e74620) 0 + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 16u) + QObject (0x0x7f6379e15660) 0 + primary-for QQmlExtensionPlugin (0x0x7f6379e74620) + QQmlExtensionInterface (0x0x7f637a399c98) 16 nearly-empty + vptr=((& QQmlExtensionPlugin::_ZTV19QQmlExtensionPlugin) + 144u) + QQmlTypesExtensionInterface (0x0x7f6379e156c0) 16 nearly-empty + primary-for QQmlExtensionInterface (0x0x7f637a399c98) + +Class QQmlFile + size=8 align=8 + base size=8 base align=8 +QQmlFile (0x0x7f6379e15780) 0 + +Class QQmlFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlFileSelector::QPrivateSignal (0x0x7f6379e15840) 0 empty + +Vtable for QQmlFileSelector +QQmlFileSelector::_ZTV16QQmlFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QQmlFileSelector) +16 (int (*)(...))QQmlFileSelector::metaObject +24 (int (*)(...))QQmlFileSelector::qt_metacast +32 (int (*)(...))QQmlFileSelector::qt_metacall +40 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +48 (int (*)(...))QQmlFileSelector::~QQmlFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQmlFileSelector + size=16 align=8 + base size=16 base align=8 +QQmlFileSelector (0x0x7f637a399d68) 0 + vptr=((& QQmlFileSelector::_ZTV16QQmlFileSelector) + 16u) + QObject (0x0x7f6379e157e0) 0 + primary-for QQmlFileSelector (0x0x7f637a399d68) + +Vtable for QQmlIncubator +QQmlIncubator::_ZTV13QQmlIncubator: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QQmlIncubator) +16 (int (*)(...))QQmlIncubator::~QQmlIncubator +24 (int (*)(...))QQmlIncubator::~QQmlIncubator +32 (int (*)(...))QQmlIncubator::statusChanged +40 (int (*)(...))QQmlIncubator::setInitialState + +Class QQmlIncubator + size=16 align=8 + base size=16 base align=8 +QQmlIncubator (0x0x7f6379e158a0) 0 + vptr=((& QQmlIncubator::_ZTV13QQmlIncubator) + 16u) + +Vtable for QQmlIncubationController +QQmlIncubationController::_ZTV24QQmlIncubationController: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QQmlIncubationController) +16 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +24 (int (*)(...))QQmlIncubationController::~QQmlIncubationController +32 (int (*)(...))QQmlIncubationController::incubatingObjectCountChanged + +Class QQmlIncubationController + size=16 align=8 + base size=16 base align=8 +QQmlIncubationController (0x0x7f6379e15900) 0 + vptr=((& QQmlIncubationController::_ZTV24QQmlIncubationController) + 16u) + +Class QQmlInfo + size=16 align=8 + base size=16 base align=8 +QQmlInfo (0x0x7f637a399dd0) 0 + QDebug (0x0x7f6379e15960) 0 + +Vtable for QQmlNetworkAccessManagerFactory +QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QQmlNetworkAccessManagerFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QQmlNetworkAccessManagerFactory + size=8 align=8 + base size=8 base align=8 +QQmlNetworkAccessManagerFactory (0x0x7f6379e15a20) 0 nearly-empty + vptr=((& QQmlNetworkAccessManagerFactory::_ZTV31QQmlNetworkAccessManagerFactory) + 16u) + +Class QQmlProperty + size=8 align=8 + base size=8 base align=8 +QQmlProperty (0x0x7f6379e15a80) 0 + +Class QQmlPropertyMap::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQmlPropertyMap::QPrivateSignal (0x0x7f6379e15de0) 0 empty + +Vtable for QQmlPropertyMap +QQmlPropertyMap::_ZTV15QQmlPropertyMap: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QQmlPropertyMap) +16 (int (*)(...))QQmlPropertyMap::metaObject +24 (int (*)(...))QQmlPropertyMap::qt_metacast +32 (int (*)(...))QQmlPropertyMap::qt_metacall +40 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +48 (int (*)(...))QQmlPropertyMap::~QQmlPropertyMap +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQmlPropertyMap::updateValue + +Class QQmlPropertyMap + size=16 align=8 + base size=16 base align=8 +QQmlPropertyMap (0x0x7f6379efe000) 0 + vptr=((& QQmlPropertyMap::_ZTV15QQmlPropertyMap) + 16u) + QObject (0x0x7f6379e15d80) 0 + primary-for QQmlPropertyMap (0x0x7f6379efe000) + +Class QQuickTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickTransform::QPrivateSignal (0x0x7f6379e15ea0) 0 empty + +Vtable for QQuickTransform +QQuickTransform::_ZTV15QQuickTransform: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QQuickTransform) +16 (int (*)(...))QQuickTransform::metaObject +24 (int (*)(...))QQuickTransform::qt_metacast +32 (int (*)(...))QQuickTransform::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QQuickTransform + size=16 align=8 + base size=16 base align=8 +QQuickTransform (0x0x7f6379efe0d0) 0 + vptr=((& QQuickTransform::_ZTV15QQuickTransform) + 16u) + QObject (0x0x7f6379e15e40) 0 + primary-for QQuickTransform (0x0x7f6379efe0d0) + +Class QQuickItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickItem::QPrivateSignal (0x0x7f6379f23000) 0 empty + +Class QQuickItem::ItemChangeData + size=8 align=8 + base size=8 base align=8 +QQuickItem::ItemChangeData (0x0x7f6379f23060) 0 + +Class QQuickItem::UpdatePaintNodeData + size=8 align=8 + base size=8 base align=8 +QQuickItem::UpdatePaintNodeData (0x0x7f6379f230c0) 0 + +Vtable for QQuickItem +QQuickItem::_ZTV10QQuickItem: 55u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQuickItem) +16 (int (*)(...))QQuickItem::metaObject +24 (int (*)(...))QQuickItem::qt_metacast +32 (int (*)(...))QQuickItem::qt_metacall +40 (int (*)(...))QQuickItem::~QQuickItem +48 (int (*)(...))QQuickItem::~QQuickItem +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickItem::isTextureProvider +152 (int (*)(...))QQuickItem::textureProvider +160 (int (*)(...))QQuickItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickItem::geometryChanged +368 (int (*)(...))QQuickItem::updatePaintNode +376 (int (*)(...))QQuickItem::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))-16 +400 (int (*)(...))(& _ZTI10QQuickItem) +408 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItemD1Ev +416 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItemD0Ev +424 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickItem + size=32 align=8 + base size=32 base align=8 +QQuickItem (0x0x7f6379f0ea80) 0 + vptr=((& QQuickItem::_ZTV10QQuickItem) + 16u) + QObject (0x0x7f6379e15f00) 0 + primary-for QQuickItem (0x0x7f6379f0ea80) + QQmlParserStatus (0x0x7f6379e15f60) 16 + vptr=((& QQuickItem::_ZTV10QQuickItem) + 408u) + +Class QQuickFramebufferObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickFramebufferObject::QPrivateSignal (0x0x7f6379f23840) 0 empty + +Vtable for QQuickFramebufferObject::Renderer +QQuickFramebufferObject::Renderer::_ZTVN23QQuickFramebufferObject8RendererE: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN23QQuickFramebufferObject8RendererE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QQuickFramebufferObject::Renderer::createFramebufferObject +48 (int (*)(...))QQuickFramebufferObject::Renderer::synchronize + +Class QQuickFramebufferObject::Renderer + size=16 align=8 + base size=16 base align=8 +QQuickFramebufferObject::Renderer (0x0x7f6379f238a0) 0 + vptr=((& QQuickFramebufferObject::Renderer::_ZTVN23QQuickFramebufferObject8RendererE) + 16u) + +Vtable for QQuickFramebufferObject +QQuickFramebufferObject::_ZTV23QQuickFramebufferObject: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QQuickFramebufferObject) +16 (int (*)(...))QQuickFramebufferObject::metaObject +24 (int (*)(...))QQuickFramebufferObject::qt_metacast +32 (int (*)(...))QQuickFramebufferObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickFramebufferObject::isTextureProvider +152 (int (*)(...))QQuickFramebufferObject::textureProvider +160 (int (*)(...))QQuickItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickFramebufferObject::geometryChanged +368 (int (*)(...))QQuickFramebufferObject::updatePaintNode +376 (int (*)(...))QQuickFramebufferObject::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))-16 +408 (int (*)(...))(& _ZTI23QQuickFramebufferObject) +416 0u +424 0u +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +440 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickFramebufferObject + size=32 align=8 + base size=32 base align=8 +QQuickFramebufferObject (0x0x7f6379efe208) 0 + vptr=((& QQuickFramebufferObject::_ZTV23QQuickFramebufferObject) + 16u) + QQuickItem (0x0x7f6379fd51c0) 0 + primary-for QQuickFramebufferObject (0x0x7f6379efe208) + QObject (0x0x7f6379f23780) 0 + primary-for QQuickItem (0x0x7f6379fd51c0) + QQmlParserStatus (0x0x7f6379f237e0) 16 + vptr=((& QQuickFramebufferObject::_ZTV23QQuickFramebufferObject) + 416u) + +Vtable for QQuickTextureFactory +QQuickTextureFactory::_ZTV20QQuickTextureFactory: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QQuickTextureFactory) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QQuickTextureFactory::image + +Class QQuickTextureFactory + size=16 align=8 + base size=16 base align=8 +QQuickTextureFactory (0x0x7f6379efe270) 0 + vptr=((& QQuickTextureFactory::_ZTV20QQuickTextureFactory) + 16u) + QObject (0x0x7f6379f23900) 0 + primary-for QQuickTextureFactory (0x0x7f6379efe270) + +Class QQuickImageResponse::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickImageResponse::QPrivateSignal (0x0x7f6379f239c0) 0 empty + +Vtable for QQuickImageResponse +QQuickImageResponse::_ZTV19QQuickImageResponse: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickImageResponse) +16 (int (*)(...))QQuickImageResponse::metaObject +24 (int (*)(...))QQuickImageResponse::qt_metacast +32 (int (*)(...))QQuickImageResponse::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QQuickImageResponse::errorString +128 (int (*)(...))QQuickImageResponse::cancel + +Class QQuickImageResponse + size=16 align=8 + base size=16 base align=8 +QQuickImageResponse (0x0x7f6379efe2d8) 0 + vptr=((& QQuickImageResponse::_ZTV19QQuickImageResponse) + 16u) + QObject (0x0x7f6379f23960) 0 + primary-for QQuickImageResponse (0x0x7f6379efe2d8) + +Vtable for QQuickImageProvider +QQuickImageProvider::_ZTV19QQuickImageProvider: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickImageProvider) +16 (int (*)(...))QQuickImageProvider::~QQuickImageProvider +24 (int (*)(...))QQuickImageProvider::~QQuickImageProvider +32 (int (*)(...))QQuickImageProvider::imageType +40 (int (*)(...))QQuickImageProvider::flags +48 (int (*)(...))QQuickImageProvider::requestImage +56 (int (*)(...))QQuickImageProvider::requestPixmap +64 (int (*)(...))QQuickImageProvider::requestTexture + +Class QQuickImageProvider + size=16 align=8 + base size=16 base align=8 +QQuickImageProvider (0x0x7f6379efe340) 0 + vptr=((& QQuickImageProvider::_ZTV19QQuickImageProvider) + 16u) + QQmlImageProviderBase (0x0x7f6379f23a20) 0 nearly-empty + primary-for QQuickImageProvider (0x0x7f6379efe340) + +Vtable for QQuickAsyncImageProvider +QQuickAsyncImageProvider::_ZTV24QQuickAsyncImageProvider: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QQuickAsyncImageProvider) +16 0u +24 0u +32 (int (*)(...))QQuickImageProvider::imageType +40 (int (*)(...))QQuickImageProvider::flags +48 (int (*)(...))QQuickImageProvider::requestImage +56 (int (*)(...))QQuickImageProvider::requestPixmap +64 (int (*)(...))QQuickImageProvider::requestTexture +72 (int (*)(...))__cxa_pure_virtual + +Class QQuickAsyncImageProvider + size=24 align=8 + base size=24 base align=8 +QQuickAsyncImageProvider (0x0x7f6379efe3a8) 0 + vptr=((& QQuickAsyncImageProvider::_ZTV24QQuickAsyncImageProvider) + 16u) + QQuickImageProvider (0x0x7f6379efe410) 0 + primary-for QQuickAsyncImageProvider (0x0x7f6379efe3a8) + QQmlImageProviderBase (0x0x7f6379f23a80) 0 nearly-empty + primary-for QQuickImageProvider (0x0x7f6379efe410) + +Class QQuickItemGrabResult::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickItemGrabResult::QPrivateSignal (0x0x7f6379f23b40) 0 empty + +Vtable for QQuickItemGrabResult +QQuickItemGrabResult::_ZTV20QQuickItemGrabResult: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QQuickItemGrabResult) +16 (int (*)(...))QQuickItemGrabResult::metaObject +24 (int (*)(...))QQuickItemGrabResult::qt_metacast +32 (int (*)(...))QQuickItemGrabResult::qt_metacall +40 (int (*)(...))QQuickItemGrabResult::~QQuickItemGrabResult +48 (int (*)(...))QQuickItemGrabResult::~QQuickItemGrabResult +56 (int (*)(...))QQuickItemGrabResult::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQuickItemGrabResult + size=16 align=8 + base size=16 base align=8 +QQuickItemGrabResult (0x0x7f6379efe478) 0 + vptr=((& QQuickItemGrabResult::_ZTV20QQuickItemGrabResult) + 16u) + QObject (0x0x7f6379f23ae0) 0 + primary-for QQuickItemGrabResult (0x0x7f6379efe478) + +Class QQuickPaintedItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickPaintedItem::QPrivateSignal (0x0x7f6379f23c60) 0 empty + +Vtable for QQuickPaintedItem +QQuickPaintedItem::_ZTV17QQuickPaintedItem: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QQuickPaintedItem) +16 (int (*)(...))QQuickPaintedItem::metaObject +24 (int (*)(...))QQuickPaintedItem::qt_metacast +32 (int (*)(...))QQuickPaintedItem::qt_metacall +40 0u +48 0u +56 (int (*)(...))QQuickItem::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickItem::boundingRect +120 (int (*)(...))QQuickItem::clipRect +128 (int (*)(...))QQuickItem::contains +136 (int (*)(...))QQuickItem::inputMethodQuery +144 (int (*)(...))QQuickPaintedItem::isTextureProvider +152 (int (*)(...))QQuickPaintedItem::textureProvider +160 (int (*)(...))QQuickPaintedItem::itemChange +168 (int (*)(...))QQuickItem::classBegin +176 (int (*)(...))QQuickItem::componentComplete +184 (int (*)(...))QQuickItem::keyPressEvent +192 (int (*)(...))QQuickItem::keyReleaseEvent +200 (int (*)(...))QQuickItem::inputMethodEvent +208 (int (*)(...))QQuickItem::focusInEvent +216 (int (*)(...))QQuickItem::focusOutEvent +224 (int (*)(...))QQuickItem::mousePressEvent +232 (int (*)(...))QQuickItem::mouseMoveEvent +240 (int (*)(...))QQuickItem::mouseReleaseEvent +248 (int (*)(...))QQuickItem::mouseDoubleClickEvent +256 (int (*)(...))QQuickItem::mouseUngrabEvent +264 (int (*)(...))QQuickItem::touchUngrabEvent +272 (int (*)(...))QQuickItem::wheelEvent +280 (int (*)(...))QQuickItem::touchEvent +288 (int (*)(...))QQuickItem::hoverEnterEvent +296 (int (*)(...))QQuickItem::hoverMoveEvent +304 (int (*)(...))QQuickItem::hoverLeaveEvent +312 (int (*)(...))QQuickItem::dragEnterEvent +320 (int (*)(...))QQuickItem::dragMoveEvent +328 (int (*)(...))QQuickItem::dragLeaveEvent +336 (int (*)(...))QQuickItem::dropEvent +344 (int (*)(...))QQuickItem::childMouseEventFilter +352 (int (*)(...))QQuickItem::windowDeactivateEvent +360 (int (*)(...))QQuickItem::geometryChanged +368 (int (*)(...))QQuickPaintedItem::updatePaintNode +376 (int (*)(...))QQuickPaintedItem::releaseResources +384 (int (*)(...))QQuickItem::updatePolish +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))-16 +408 (int (*)(...))(& _ZTI17QQuickPaintedItem) +416 0u +424 0u +432 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem10classBeginEv +440 (int (*)(...))QQuickItem::_ZThn16_N10QQuickItem17componentCompleteEv + +Class QQuickPaintedItem + size=32 align=8 + base size=32 base align=8 +QQuickPaintedItem (0x0x7f6379efe4e0) 0 + vptr=((& QQuickPaintedItem::_ZTV17QQuickPaintedItem) + 16u) + QQuickItem (0x0x7f6379c07930) 0 + primary-for QQuickPaintedItem (0x0x7f6379efe4e0) + QObject (0x0x7f6379f23ba0) 0 + primary-for QQuickItem (0x0x7f6379c07930) + QQmlParserStatus (0x0x7f6379f23c00) 16 + vptr=((& QQuickPaintedItem::_ZTV17QQuickPaintedItem) + 416u) + +Class QQuickRenderControl::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickRenderControl::QPrivateSignal (0x0x7f6379f23e40) 0 empty + +Vtable for QQuickRenderControl +QQuickRenderControl::_ZTV19QQuickRenderControl: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QQuickRenderControl) +16 (int (*)(...))QQuickRenderControl::metaObject +24 (int (*)(...))QQuickRenderControl::qt_metacast +32 (int (*)(...))QQuickRenderControl::qt_metacall +40 (int (*)(...))QQuickRenderControl::~QQuickRenderControl +48 (int (*)(...))QQuickRenderControl::~QQuickRenderControl +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QQuickRenderControl::renderWindow + +Class QQuickRenderControl + size=16 align=8 + base size=16 base align=8 +QQuickRenderControl (0x0x7f6379efe680) 0 + vptr=((& QQuickRenderControl::_ZTV19QQuickRenderControl) + 16u) + QObject (0x0x7f6379f23de0) 0 + primary-for QQuickRenderControl (0x0x7f6379efe680) + +Class QQuickTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickTextDocument::QPrivateSignal (0x0x7f6379f23f00) 0 empty + +Vtable for QQuickTextDocument +QQuickTextDocument::_ZTV18QQuickTextDocument: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QQuickTextDocument) +16 (int (*)(...))QQuickTextDocument::metaObject +24 (int (*)(...))QQuickTextDocument::qt_metacast +32 (int (*)(...))QQuickTextDocument::qt_metacall +40 (int (*)(...))QQuickTextDocument::~QQuickTextDocument +48 (int (*)(...))QQuickTextDocument::~QQuickTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QQuickTextDocument + size=16 align=8 + base size=16 base align=8 +QQuickTextDocument (0x0x7f6379efe6e8) 0 + vptr=((& QQuickTextDocument::_ZTV18QQuickTextDocument) + 16u) + QObject (0x0x7f6379f23ea0) 0 + primary-for QQuickTextDocument (0x0x7f6379efe6e8) + +Class QSGGeometry::Attribute + size=16 align=4 + base size=16 base align=4 +QSGGeometry::Attribute (0x0x7f6379c8b2a0) 0 + +Class QSGGeometry::AttributeSet + size=16 align=8 + base size=16 base align=8 +QSGGeometry::AttributeSet (0x0x7f6379c8b300) 0 + +Class QSGGeometry::Point2D + size=8 align=4 + base size=8 base align=4 +QSGGeometry::Point2D (0x0x7f6379c8b360) 0 + +Class QSGGeometry::TexturedPoint2D + size=16 align=4 + base size=16 base align=4 +QSGGeometry::TexturedPoint2D (0x0x7f6379c8b3c0) 0 + +Class QSGGeometry::ColoredPoint2D + size=12 align=4 + base size=12 base align=4 +QSGGeometry::ColoredPoint2D (0x0x7f6379c8b420) 0 + +Vtable for QSGGeometry +QSGGeometry::_ZTV11QSGGeometry: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGGeometry) +16 (int (*)(...))QSGGeometry::~QSGGeometry +24 (int (*)(...))QSGGeometry::~QSGGeometry + +Class QSGGeometry + size=128 align=8 + base size=128 base align=8 +QSGGeometry (0x0x7f6379c8b240) 0 + vptr=((& QSGGeometry::_ZTV11QSGGeometry) + 16u) + +Vtable for QSGNode +QSGNode::_ZTV7QSGNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSGNode) +16 (int (*)(...))QSGNode::~QSGNode +24 (int (*)(...))QSGNode::~QSGNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGNode + size=80 align=8 + base size=80 base align=8 +QSGNode (0x0x7f6379cef780) 0 + vptr=((& QSGNode::_ZTV7QSGNode) + 16u) + +Vtable for QSGBasicGeometryNode +QSGBasicGeometryNode::_ZTV20QSGBasicGeometryNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGBasicGeometryNode) +16 (int (*)(...))QSGBasicGeometryNode::~QSGBasicGeometryNode +24 (int (*)(...))QSGBasicGeometryNode::~QSGBasicGeometryNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGBasicGeometryNode + size=112 align=8 + base size=112 base align=8 +QSGBasicGeometryNode (0x0x7f6379efeb60) 0 + vptr=((& QSGBasicGeometryNode::_ZTV20QSGBasicGeometryNode) + 16u) + QSGNode (0x0x7f6379cefa80) 0 + primary-for QSGBasicGeometryNode (0x0x7f6379efeb60) + +Vtable for QSGGeometryNode +QSGGeometryNode::_ZTV15QSGGeometryNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSGGeometryNode) +16 (int (*)(...))QSGGeometryNode::~QSGGeometryNode +24 (int (*)(...))QSGGeometryNode::~QSGGeometryNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGGeometryNode + size=144 align=8 + base size=144 base align=8 +QSGGeometryNode (0x0x7f6379efebc8) 0 + vptr=((& QSGGeometryNode::_ZTV15QSGGeometryNode) + 16u) + QSGBasicGeometryNode (0x0x7f6379efec30) 0 + primary-for QSGGeometryNode (0x0x7f6379efebc8) + QSGNode (0x0x7f6379cefae0) 0 + primary-for QSGBasicGeometryNode (0x0x7f6379efec30) + +Vtable for QSGClipNode +QSGClipNode::_ZTV11QSGClipNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGClipNode) +16 (int (*)(...))QSGClipNode::~QSGClipNode +24 (int (*)(...))QSGClipNode::~QSGClipNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGClipNode + size=152 align=8 + base size=152 base align=8 +QSGClipNode (0x0x7f6379efec98) 0 + vptr=((& QSGClipNode::_ZTV11QSGClipNode) + 16u) + QSGBasicGeometryNode (0x0x7f6379efed00) 0 + primary-for QSGClipNode (0x0x7f6379efec98) + QSGNode (0x0x7f6379cefb40) 0 + primary-for QSGBasicGeometryNode (0x0x7f6379efed00) + +Vtable for QSGTransformNode +QSGTransformNode::_ZTV16QSGTransformNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGTransformNode) +16 (int (*)(...))QSGTransformNode::~QSGTransformNode +24 (int (*)(...))QSGTransformNode::~QSGTransformNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGTransformNode + size=216 align=8 + base size=216 base align=8 +QSGTransformNode (0x0x7f6379efed68) 0 + vptr=((& QSGTransformNode::_ZTV16QSGTransformNode) + 16u) + QSGNode (0x0x7f6379cefba0) 0 + primary-for QSGTransformNode (0x0x7f6379efed68) + +Vtable for QSGRootNode +QSGRootNode::_ZTV11QSGRootNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGRootNode) +16 (int (*)(...))QSGRootNode::~QSGRootNode +24 (int (*)(...))QSGRootNode::~QSGRootNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGRootNode + size=88 align=8 + base size=88 base align=8 +QSGRootNode (0x0x7f6379efedd0) 0 + vptr=((& QSGRootNode::_ZTV11QSGRootNode) + 16u) + QSGNode (0x0x7f6379cefc00) 0 + primary-for QSGRootNode (0x0x7f6379efedd0) + +Vtable for QSGOpacityNode +QSGOpacityNode::_ZTV14QSGOpacityNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSGOpacityNode) +16 (int (*)(...))QSGOpacityNode::~QSGOpacityNode +24 (int (*)(...))QSGOpacityNode::~QSGOpacityNode +32 (int (*)(...))QSGOpacityNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGOpacityNode + size=96 align=8 + base size=96 base align=8 +QSGOpacityNode (0x0x7f6379efef70) 0 + vptr=((& QSGOpacityNode::_ZTV14QSGOpacityNode) + 16u) + QSGNode (0x0x7f6379cefd80) 0 + primary-for QSGOpacityNode (0x0x7f6379efef70) + +Vtable for QSGNodeVisitor +QSGNodeVisitor::_ZTV14QSGNodeVisitor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSGNodeVisitor) +16 (int (*)(...))QSGNodeVisitor::~QSGNodeVisitor +24 (int (*)(...))QSGNodeVisitor::~QSGNodeVisitor +32 (int (*)(...))QSGNodeVisitor::enterTransformNode +40 (int (*)(...))QSGNodeVisitor::leaveTransformNode +48 (int (*)(...))QSGNodeVisitor::enterClipNode +56 (int (*)(...))QSGNodeVisitor::leaveClipNode +64 (int (*)(...))QSGNodeVisitor::enterGeometryNode +72 (int (*)(...))QSGNodeVisitor::leaveGeometryNode +80 (int (*)(...))QSGNodeVisitor::enterOpacityNode +88 (int (*)(...))QSGNodeVisitor::leaveOpacityNode +96 (int (*)(...))QSGNodeVisitor::visitNode +104 (int (*)(...))QSGNodeVisitor::visitChildren + +Class QSGNodeVisitor + size=8 align=8 + base size=8 base align=8 +QSGNodeVisitor (0x0x7f6379cefde0) 0 nearly-empty + vptr=((& QSGNodeVisitor::_ZTV14QSGNodeVisitor) + 16u) + +Vtable for QSGRendererInterface +QSGRendererInterface::_ZTV20QSGRendererInterface: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGRendererInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QSGRendererInterface::getResource +48 (int (*)(...))QSGRendererInterface::getResource +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QSGRendererInterface + size=8 align=8 + base size=8 base align=8 +QSGRendererInterface (0x0x7f6379cefe40) 0 nearly-empty + vptr=((& QSGRendererInterface::_ZTV20QSGRendererInterface) + 16u) + +Class QQuickWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickWindow::QPrivateSignal (0x0x7f6379a2b1e0) 0 empty + +Vtable for QQuickWindow +QQuickWindow::_ZTV12QQuickWindow: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QQuickWindow) +16 (int (*)(...))QQuickWindow::metaObject +24 (int (*)(...))QQuickWindow::qt_metacast +32 (int (*)(...))QQuickWindow::qt_metacall +40 (int (*)(...))QQuickWindow::~QQuickWindow +48 (int (*)(...))QQuickWindow::~QQuickWindow +56 (int (*)(...))QQuickWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QQuickWindow::accessibleRoot +144 (int (*)(...))QQuickWindow::focusObject +152 (int (*)(...))QQuickWindow::exposeEvent +160 (int (*)(...))QQuickWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QQuickWindow::focusInEvent +184 (int (*)(...))QQuickWindow::focusOutEvent +192 (int (*)(...))QQuickWindow::showEvent +200 (int (*)(...))QQuickWindow::hideEvent +208 (int (*)(...))QQuickWindow::keyPressEvent +216 (int (*)(...))QQuickWindow::keyReleaseEvent +224 (int (*)(...))QQuickWindow::mousePressEvent +232 (int (*)(...))QQuickWindow::mouseReleaseEvent +240 (int (*)(...))QQuickWindow::mouseDoubleClickEvent +248 (int (*)(...))QQuickWindow::mouseMoveEvent +256 (int (*)(...))QQuickWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI12QQuickWindow) +312 (int (*)(...))QQuickWindow::_ZThn16_N12QQuickWindowD1Ev +320 (int (*)(...))QQuickWindow::_ZThn16_N12QQuickWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QQuickWindow + size=40 align=8 + base size=40 base align=8 +QQuickWindow (0x0x7f63799fc138) 0 + vptr=((& QQuickWindow::_ZTV12QQuickWindow) + 16u) + QWindow (0x0x7f6379a43850) 0 + primary-for QQuickWindow (0x0x7f63799fc138) + QObject (0x0x7f6379a2b120) 0 + primary-for QWindow (0x0x7f6379a43850) + QSurface (0x0x7f6379a2b180) 16 + vptr=((& QQuickWindow::_ZTV12QQuickWindow) + 312u) + +Class QQuickView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickView::QPrivateSignal (0x0x7f6379a2b540) 0 empty + +Vtable for QQuickView +QQuickView::_ZTV10QQuickView: 45u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QQuickView) +16 (int (*)(...))QQuickView::metaObject +24 (int (*)(...))QQuickView::qt_metacast +32 (int (*)(...))QQuickView::qt_metacall +40 (int (*)(...))QQuickView::~QQuickView +48 (int (*)(...))QQuickView::~QQuickView +56 (int (*)(...))QQuickWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QQuickView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QQuickWindow::accessibleRoot +144 (int (*)(...))QQuickWindow::focusObject +152 (int (*)(...))QQuickWindow::exposeEvent +160 (int (*)(...))QQuickView::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QQuickWindow::focusInEvent +184 (int (*)(...))QQuickWindow::focusOutEvent +192 (int (*)(...))QQuickWindow::showEvent +200 (int (*)(...))QQuickWindow::hideEvent +208 (int (*)(...))QQuickView::keyPressEvent +216 (int (*)(...))QQuickView::keyReleaseEvent +224 (int (*)(...))QQuickView::mousePressEvent +232 (int (*)(...))QQuickView::mouseReleaseEvent +240 (int (*)(...))QQuickWindow::mouseDoubleClickEvent +248 (int (*)(...))QQuickView::mouseMoveEvent +256 (int (*)(...))QQuickWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI10QQuickView) +312 (int (*)(...))QQuickView::_ZThn16_N10QQuickViewD1Ev +320 (int (*)(...))QQuickView::_ZThn16_N10QQuickViewD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QQuickView + size=40 align=8 + base size=40 base align=8 +QQuickView (0x0x7f63799fc270) 0 + vptr=((& QQuickView::_ZTV10QQuickView) + 16u) + QQuickWindow (0x0x7f63799fc2d8) 0 + primary-for QQuickView (0x0x7f63799fc270) + QWindow (0x0x7f6379a8ed90) 0 + primary-for QQuickWindow (0x0x7f63799fc2d8) + QObject (0x0x7f6379a2b480) 0 + primary-for QWindow (0x0x7f6379a8ed90) + QSurface (0x0x7f6379a2b4e0) 16 + vptr=((& QQuickView::_ZTV10QQuickView) + 312u) + +Class QSGAbstractRenderer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGAbstractRenderer::QPrivateSignal (0x0x7f6379a2b600) 0 empty + +Vtable for QSGAbstractRenderer +QSGAbstractRenderer::_ZTV19QSGAbstractRenderer: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QSGAbstractRenderer) +16 (int (*)(...))QSGAbstractRenderer::metaObject +24 (int (*)(...))QSGAbstractRenderer::qt_metacast +32 (int (*)(...))QSGAbstractRenderer::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QSGAbstractRenderer + size=16 align=8 + base size=16 base align=8 +QSGAbstractRenderer (0x0x7f63799fc340) 0 + vptr=((& QSGAbstractRenderer::_ZTV19QSGAbstractRenderer) + 16u) + QObject (0x0x7f6379a2b5a0) 0 + primary-for QSGAbstractRenderer (0x0x7f63799fc340) + +Class QSGEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGEngine::QPrivateSignal (0x0x7f6379a2b7e0) 0 empty + +Vtable for QSGEngine +QSGEngine::_ZTV9QSGEngine: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSGEngine) +16 (int (*)(...))QSGEngine::metaObject +24 (int (*)(...))QSGEngine::qt_metacast +32 (int (*)(...))QSGEngine::qt_metacall +40 (int (*)(...))QSGEngine::~QSGEngine +48 (int (*)(...))QSGEngine::~QSGEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSGEngine + size=16 align=8 + base size=16 base align=8 +QSGEngine (0x0x7f63799fc478) 0 + vptr=((& QSGEngine::_ZTV9QSGEngine) + 16u) + QObject (0x0x7f6379a2b780) 0 + primary-for QSGEngine (0x0x7f63799fc478) + +Class QSGMaterialShader::RenderState + size=16 align=8 + base size=16 base align=8 +QSGMaterialShader::RenderState (0x0x7f6379a2ba20) 0 + +Vtable for QSGMaterialShader +QSGMaterialShader::_ZTV17QSGMaterialShader: 12u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGMaterialShader) +16 0u +24 0u +32 (int (*)(...))QSGMaterialShader::activate +40 (int (*)(...))QSGMaterialShader::deactivate +48 (int (*)(...))QSGMaterialShader::updateState +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QSGMaterialShader::compile +72 (int (*)(...))QSGMaterialShader::initialize +80 (int (*)(...))QSGMaterialShader::vertexShader +88 (int (*)(...))QSGMaterialShader::fragmentShader + +Class QSGMaterialShader + size=32 align=8 + base size=32 base align=8 +QSGMaterialShader (0x0x7f6379a2b9c0) 0 + vptr=((& QSGMaterialShader::_ZTV17QSGMaterialShader) + 16u) + +Class QSGMaterialType + size=1 align=1 + base size=0 base align=1 +QSGMaterialType (0x0x7f6379a2bc60) 0 empty + +Vtable for QSGMaterial +QSGMaterial::_ZTV11QSGMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSGMaterial) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QSGMaterial::compare + +Class QSGMaterial + size=24 align=8 + base size=24 base align=8 +QSGMaterial (0x0x7f6379a2bcc0) 0 + vptr=((& QSGMaterial::_ZTV11QSGMaterial) + 16u) + +Vtable for QSGFlatColorMaterial +QSGFlatColorMaterial::_ZTV20QSGFlatColorMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGFlatColorMaterial) +16 (int (*)(...))QSGFlatColorMaterial::~QSGFlatColorMaterial +24 (int (*)(...))QSGFlatColorMaterial::~QSGFlatColorMaterial +32 (int (*)(...))QSGFlatColorMaterial::type +40 (int (*)(...))QSGFlatColorMaterial::createShader +48 (int (*)(...))QSGFlatColorMaterial::compare + +Class QSGFlatColorMaterial + size=40 align=8 + base size=40 base align=8 +QSGFlatColorMaterial (0x0x7f63799fc7b8) 0 + vptr=((& QSGFlatColorMaterial::_ZTV20QSGFlatColorMaterial) + 16u) + QSGMaterial (0x0x7f6379a2be40) 0 + primary-for QSGFlatColorMaterial (0x0x7f63799fc7b8) + +Class QSGTexture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGTexture::QPrivateSignal (0x0x7f6379a2bf00) 0 empty + +Vtable for QSGTexture +QSGTexture::_ZTV10QSGTexture: 22u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSGTexture) +16 (int (*)(...))QSGTexture::metaObject +24 (int (*)(...))QSGTexture::qt_metacast +32 (int (*)(...))QSGTexture::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QSGTexture::normalizedTextureSubRect +152 (int (*)(...))QSGTexture::isAtlasTexture +160 (int (*)(...))QSGTexture::removedFromAtlas +168 (int (*)(...))__cxa_pure_virtual + +Class QSGTexture + size=16 align=8 + base size=16 base align=8 +QSGTexture (0x0x7f63799fc820) 0 + vptr=((& QSGTexture::_ZTV10QSGTexture) + 16u) + QObject (0x0x7f6379a2bea0) 0 + primary-for QSGTexture (0x0x7f63799fc820) + +Class QSGDynamicTexture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGDynamicTexture::QPrivateSignal (0x0x7f6379bd7000) 0 empty + +Vtable for QSGDynamicTexture +QSGDynamicTexture::_ZTV17QSGDynamicTexture: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGDynamicTexture) +16 (int (*)(...))QSGDynamicTexture::metaObject +24 (int (*)(...))QSGDynamicTexture::qt_metacast +32 (int (*)(...))QSGDynamicTexture::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QSGTexture::normalizedTextureSubRect +152 (int (*)(...))QSGTexture::isAtlasTexture +160 (int (*)(...))QSGTexture::removedFromAtlas +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QSGDynamicTexture + size=16 align=8 + base size=16 base align=8 +QSGDynamicTexture (0x0x7f63799fc8f0) 0 + vptr=((& QSGDynamicTexture::_ZTV17QSGDynamicTexture) + 16u) + QSGTexture (0x0x7f63799fc958) 0 + primary-for QSGDynamicTexture (0x0x7f63799fc8f0) + QObject (0x0x7f6379a2bf60) 0 + primary-for QSGTexture (0x0x7f63799fc958) + +Vtable for QSGImageNode +QSGImageNode::_ZTV12QSGImageNode: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QSGImageNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QSGImageNode + size=144 align=8 + base size=144 base align=8 +QSGImageNode (0x0x7f63799fc9c0) 0 + vptr=((& QSGImageNode::_ZTV12QSGImageNode) + 16u) + QSGGeometryNode (0x0x7f63799fca28) 0 + primary-for QSGImageNode (0x0x7f63799fc9c0) + QSGBasicGeometryNode (0x0x7f63799fca90) 0 + primary-for QSGGeometryNode (0x0x7f63799fca28) + QSGNode (0x0x7f6379bd7060) 0 + primary-for QSGBasicGeometryNode (0x0x7f63799fca90) + +Vtable for QSGNinePatchNode +QSGNinePatchNode::_ZTV16QSGNinePatchNode: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGNinePatchNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual + +Class QSGNinePatchNode + size=144 align=8 + base size=144 base align=8 +QSGNinePatchNode (0x0x7f63799fcbc8) 0 + vptr=((& QSGNinePatchNode::_ZTV16QSGNinePatchNode) + 16u) + QSGGeometryNode (0x0x7f63799fcc30) 0 + primary-for QSGNinePatchNode (0x0x7f63799fcbc8) + QSGBasicGeometryNode (0x0x7f63799fcc98) 0 + primary-for QSGGeometryNode (0x0x7f63799fcc30) + QSGNode (0x0x7f6379bd71e0) 0 + primary-for QSGBasicGeometryNode (0x0x7f63799fcc98) + +Vtable for QSGRectangleNode +QSGRectangleNode::_ZTV16QSGRectangleNode: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSGRectangleNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QSGRectangleNode + size=144 align=8 + base size=144 base align=8 +QSGRectangleNode (0x0x7f63799fcd00) 0 + vptr=((& QSGRectangleNode::_ZTV16QSGRectangleNode) + 16u) + QSGGeometryNode (0x0x7f63799fcd68) 0 + primary-for QSGRectangleNode (0x0x7f63799fcd00) + QSGBasicGeometryNode (0x0x7f63799fcdd0) 0 + primary-for QSGGeometryNode (0x0x7f63799fcd68) + QSGNode (0x0x7f6379bd7240) 0 + primary-for QSGBasicGeometryNode (0x0x7f63799fcdd0) + +Vtable for QSGRenderNode::RenderState +QSGRenderNode::RenderState::_ZTVN13QSGRenderNode11RenderStateE: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QSGRenderNode11RenderStateE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))QSGRenderNode::RenderState::get + +Class QSGRenderNode::RenderState + size=8 align=8 + base size=8 base align=8 +QSGRenderNode::RenderState (0x0x7f6379bd7300) 0 nearly-empty + vptr=((& QSGRenderNode::RenderState::_ZTVN13QSGRenderNode11RenderStateE) + 16u) + +Vtable for QSGRenderNode +QSGRenderNode::_ZTV13QSGRenderNode: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSGRenderNode) +16 0u +24 0u +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess +48 (int (*)(...))QSGRenderNode::changedStates +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QSGRenderNode::releaseResources +72 (int (*)(...))QSGRenderNode::flags +80 (int (*)(...))QSGRenderNode::rect + +Class QSGRenderNode + size=88 align=8 + base size=88 base align=8 +QSGRenderNode (0x0x7f63799fce38) 0 + vptr=((& QSGRenderNode::_ZTV13QSGRenderNode) + 16u) + QSGNode (0x0x7f6379bd72a0) 0 + primary-for QSGRenderNode (0x0x7f63799fce38) + +Vtable for QSGSimpleRectNode +QSGSimpleRectNode::_ZTV17QSGSimpleRectNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSGSimpleRectNode) +16 (int (*)(...))QSGSimpleRectNode::~QSGSimpleRectNode +24 (int (*)(...))QSGSimpleRectNode::~QSGSimpleRectNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGSimpleRectNode + size=320 align=8 + base size=320 base align=8 +QSGSimpleRectNode (0x0x7f63798753a8) 0 + vptr=((& QSGSimpleRectNode::_ZTV17QSGSimpleRectNode) + 16u) + QSGGeometryNode (0x0x7f6379875410) 0 + primary-for QSGSimpleRectNode (0x0x7f63798753a8) + QSGBasicGeometryNode (0x0x7f6379875478) 0 + primary-for QSGGeometryNode (0x0x7f6379875410) + QSGNode (0x0x7f6379bd7780) 0 + primary-for QSGBasicGeometryNode (0x0x7f6379875478) + +Vtable for QSGOpaqueTextureMaterial +QSGOpaqueTextureMaterial::_ZTV24QSGOpaqueTextureMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSGOpaqueTextureMaterial) +16 (int (*)(...))QSGOpaqueTextureMaterial::~QSGOpaqueTextureMaterial +24 (int (*)(...))QSGOpaqueTextureMaterial::~QSGOpaqueTextureMaterial +32 (int (*)(...))QSGOpaqueTextureMaterial::type +40 (int (*)(...))QSGOpaqueTextureMaterial::createShader +48 (int (*)(...))QSGOpaqueTextureMaterial::compare + +Class QSGOpaqueTextureMaterial + size=40 align=8 + base size=36 base align=8 +QSGOpaqueTextureMaterial (0x0x7f63798754e0) 0 + vptr=((& QSGOpaqueTextureMaterial::_ZTV24QSGOpaqueTextureMaterial) + 16u) + QSGMaterial (0x0x7f6379bd77e0) 0 + primary-for QSGOpaqueTextureMaterial (0x0x7f63798754e0) + +Vtable for QSGTextureMaterial +QSGTextureMaterial::_ZTV18QSGTextureMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSGTextureMaterial) +16 (int (*)(...))QSGTextureMaterial::~QSGTextureMaterial +24 (int (*)(...))QSGTextureMaterial::~QSGTextureMaterial +32 (int (*)(...))QSGTextureMaterial::type +40 (int (*)(...))QSGTextureMaterial::createShader +48 (int (*)(...))QSGOpaqueTextureMaterial::compare + +Class QSGTextureMaterial + size=40 align=8 + base size=36 base align=8 +QSGTextureMaterial (0x0x7f6379875548) 0 + vptr=((& QSGTextureMaterial::_ZTV18QSGTextureMaterial) + 16u) + QSGOpaqueTextureMaterial (0x0x7f63798755b0) 0 + primary-for QSGTextureMaterial (0x0x7f6379875548) + QSGMaterial (0x0x7f6379bd7840) 0 + primary-for QSGOpaqueTextureMaterial (0x0x7f63798755b0) + +Vtable for QSGSimpleTextureNode +QSGSimpleTextureNode::_ZTV20QSGSimpleTextureNode: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QSGSimpleTextureNode) +16 (int (*)(...))QSGSimpleTextureNode::~QSGSimpleTextureNode +24 (int (*)(...))QSGSimpleTextureNode::~QSGSimpleTextureNode +32 (int (*)(...))QSGNode::isSubtreeBlocked +40 (int (*)(...))QSGNode::preprocess + +Class QSGSimpleTextureNode + size=384 align=8 + base size=384 base align=8 +QSGSimpleTextureNode (0x0x7f6379875618) 0 + vptr=((& QSGSimpleTextureNode::_ZTV20QSGSimpleTextureNode) + 16u) + QSGGeometryNode (0x0x7f6379875680) 0 + primary-for QSGSimpleTextureNode (0x0x7f6379875618) + QSGBasicGeometryNode (0x0x7f63798756e8) 0 + primary-for QSGGeometryNode (0x0x7f6379875680) + QSGNode (0x0x7f6379bd78a0) 0 + primary-for QSGBasicGeometryNode (0x0x7f63798756e8) + +Class QSGTextureProvider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSGTextureProvider::QPrivateSignal (0x0x7f6379bd7ae0) 0 empty + +Vtable for QSGTextureProvider +QSGTextureProvider::_ZTV18QSGTextureProvider: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSGTextureProvider) +16 (int (*)(...))QSGTextureProvider::metaObject +24 (int (*)(...))QSGTextureProvider::qt_metacast +32 (int (*)(...))QSGTextureProvider::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSGTextureProvider + size=16 align=8 + base size=16 base align=8 +QSGTextureProvider (0x0x7f6379875888) 0 + vptr=((& QSGTextureProvider::_ZTV18QSGTextureProvider) + 16u) + QObject (0x0x7f6379bd7a80) 0 + primary-for QSGTextureProvider (0x0x7f6379875888) + +Vtable for QSGVertexColorMaterial +QSGVertexColorMaterial::_ZTV22QSGVertexColorMaterial: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QSGVertexColorMaterial) +16 (int (*)(...))QSGVertexColorMaterial::~QSGVertexColorMaterial +24 (int (*)(...))QSGVertexColorMaterial::~QSGVertexColorMaterial +32 (int (*)(...))QSGVertexColorMaterial::type +40 (int (*)(...))QSGVertexColorMaterial::createShader +48 (int (*)(...))QSGVertexColorMaterial::compare + +Class QSGVertexColorMaterial + size=24 align=8 + base size=24 base align=8 +QSGVertexColorMaterial (0x0x7f63798758f0) 0 + vptr=((& QSGVertexColorMaterial::_ZTV22QSGVertexColorMaterial) + 16u) + QSGMaterial (0x0x7f6379bd7b40) 0 + primary-for QSGVertexColorMaterial (0x0x7f63798758f0) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f6379bd7c00) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f6379bd7ba0) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f6379bd7de0) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f6379bd7f00) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=48 align=8 + base size=48 base align=8 +QWidget (0x0x7f63799c24d0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16u) + QObject (0x0x7f6379bd7e40) 0 + primary-for QWidget (0x0x7f63799c24d0) + QPaintDevice (0x0x7f6379bd7ea0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448u) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f637963f3c0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0u +480 0u +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=48 align=8 + base size=48 base align=8 +QAbstractButton (0x0x7f6379875c98) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16u) + QWidget (0x0x7f63796a97e0) 0 + primary-for QAbstractButton (0x0x7f6379875c98) + QObject (0x0x7f637963f300) 0 + primary-for QWidget (0x0x7f63796a97e0) + QPaintDevice (0x0x7f637963f360) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472u) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f637963f4e0) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QAbstractSpinBox) +488 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=48 align=8 + base size=48 base align=8 +QAbstractSpinBox (0x0x7f6379875d00) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16u) + QWidget (0x0x7f63796a9e70) 0 + primary-for QAbstractSpinBox (0x0x7f6379875d00) + QObject (0x0x7f637963f420) 0 + primary-for QWidget (0x0x7f63796a9e70) + QPaintDevice (0x0x7f637963f480) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 488u) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f637963f720) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=48 align=8 + base size=48 base align=8 +QAbstractSlider (0x0x7f6379875e38) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16u) + QWidget (0x0x7f6379714a10) 0 + primary-for QAbstractSlider (0x0x7f6379875e38) + QObject (0x0x7f637963f660) 0 + primary-for QWidget (0x0x7f6379714a10) + QPaintDevice (0x0x7f637963f6c0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456u) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f637963f840) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI7QSlider) +456 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=48 align=8 + base size=48 base align=8 +QSlider (0x0x7f6379875ea0) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16u) + QAbstractSlider (0x0x7f6379875f08) 0 + primary-for QSlider (0x0x7f6379875ea0) + QWidget (0x0x7f6379741620) 0 + primary-for QAbstractSlider (0x0x7f6379875f08) + QObject (0x0x7f637963f780) 0 + primary-for QWidget (0x0x7f6379741620) + QPaintDevice (0x0x7f637963f7e0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 456u) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f637963f900) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f637976a000) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16u) + QObject (0x0x7f637963f8a0) 0 + primary-for QStyle (0x0x7f637976a000) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f637963fc60) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QTabBar) +488 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=48 align=8 + base size=48 base align=8 +QTabBar (0x0x7f637976a208) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16u) + QWidget (0x0x7f63793d0d20) 0 + primary-for QTabBar (0x0x7f637976a208) + QObject (0x0x7f637963fba0) 0 + primary-for QWidget (0x0x7f63793d0d20) + QPaintDevice (0x0x7f637963fc00) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 488u) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f637963fd80) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QTabWidget) +464 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=48 align=8 + base size=48 base align=8 +QTabWidget (0x0x7f637976a270) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16u) + QWidget (0x0x7f63793fbb60) 0 + primary-for QTabWidget (0x0x7f637976a270) + QObject (0x0x7f637963fcc0) 0 + primary-for QWidget (0x0x7f63793fbb60) + QPaintDevice (0x0x7f637963fd20) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 464u) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f637963fea0) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QRubberBand) +448 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=48 align=8 + base size=48 base align=8 +QRubberBand (0x0x7f637976a2d8) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16u) + QWidget (0x0x7f63794418c0) 0 + primary-for QRubberBand (0x0x7f637976a2d8) + QObject (0x0x7f637963fde0) 0 + primary-for QWidget (0x0x7f63794418c0) + QPaintDevice (0x0x7f637963fe40) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 448u) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f637946a000) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QFrame) +448 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=48 align=8 + base size=48 base align=8 +QFrame (0x0x7f637976a340) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16u) + QWidget (0x0x7f63794604d0) 0 + primary-for QFrame (0x0x7f637976a340) + QObject (0x0x7f637963ff00) 0 + primary-for QWidget (0x0x7f63794604d0) + QPaintDevice (0x0x7f637963ff60) 16 + vptr=((& QFrame::_ZTV6QFrame) + 448u) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f637946a060) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f637976a3a8) 0 + QStyleOption (0x0x7f637946a0c0) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f637976a410) 0 + QStyleOption (0x0x7f637946a120) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f637976a548) 0 + QStyleOption (0x0x7f637946a2a0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f637976a5b0) 0 + QStyleOption (0x0x7f637946a300) 0 + +Class QStyleOptionHeader + size=120 align=8 + base size=116 base align=8 +QStyleOptionHeader (0x0x7f637976a618) 0 + QStyleOption (0x0x7f637946a3c0) 0 + +Class QStyleOptionButton + size=96 align=8 + base size=96 base align=8 +QStyleOptionButton (0x0x7f637976a680) 0 + QStyleOption (0x0x7f637946a420) 0 + +Class QStyleOptionTab + size=136 align=8 + base size=136 base align=8 +QStyleOptionTab (0x0x7f637976a7b8) 0 + QStyleOption (0x0x7f637946a5a0) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f637976a9c0) 0 + QStyleOption (0x0x7f637946a840) 0 + +Class QStyleOptionProgressBar + size=104 align=8 + base size=102 base align=8 +QStyleOptionProgressBar (0x0x7f637976aaf8) 0 + QStyleOption (0x0x7f637946a9c0) 0 + +Class QStyleOptionMenuItem + size=136 align=8 + base size=136 base align=8 +QStyleOptionMenuItem (0x0x7f637976ab60) 0 + QStyleOption (0x0x7f637946aa20) 0 + +Class QStyleOptionDockWidget + size=80 align=8 + base size=76 base align=8 +QStyleOptionDockWidget (0x0x7f637976abc8) 0 + QStyleOption (0x0x7f637946aa80) 0 + +Class QStyleOptionViewItem + size=192 align=8 + base size=192 base align=8 +QStyleOptionViewItem (0x0x7f637976ac98) 0 + QStyleOption (0x0x7f637946aae0) 0 + +Class QStyleOptionToolBox + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBox (0x0x7f637976add0) 0 + QStyleOption (0x0x7f637946ac60) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f637976ae38) 0 + QStyleOption (0x0x7f637946acc0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f637976aea0) 0 + QStyleOption (0x0x7f637946ad20) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=121 base align=8 +QStyleOptionSlider (0x0x7f637976af08) 0 + QStyleOptionComplex (0x0x7f637976af70) 0 + QStyleOption (0x0x7f637946ad80) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f6379276000) 0 + QStyleOptionComplex (0x0x7f6379276068) 0 + QStyleOption (0x0x7f637946ade0) 0 + +Class QStyleOptionToolButton + size=136 align=8 + base size=136 base align=8 +QStyleOptionToolButton (0x0x7f63792760d0) 0 + QStyleOptionComplex (0x0x7f6379276138) 0 + QStyleOption (0x0x7f637946ae40) 0 + +Class QStyleOptionComboBox + size=120 align=8 + base size=120 base align=8 +QStyleOptionComboBox (0x0x7f6379276270) 0 + QStyleOptionComplex (0x0x7f63792762d8) 0 + QStyleOption (0x0x7f63792c9000) 0 + +Class QStyleOptionTitleBar + size=96 align=8 + base size=96 base align=8 +QStyleOptionTitleBar (0x0x7f6379276340) 0 + QStyleOptionComplex (0x0x7f63792763a8) 0 + QStyleOption (0x0x7f63792c9060) 0 + +Class QStyleOptionGroupBox + size=120 align=8 + base size=116 base align=8 +QStyleOptionGroupBox (0x0x7f6379276410) 0 + QStyleOptionComplex (0x0x7f6379276478) 0 + QStyleOption (0x0x7f63792c9120) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f63792764e0) 0 + QStyleOptionComplex (0x0x7f6379276548) 0 + QStyleOption (0x0x7f63792c9180) 0 + +Class QStyleOptionGraphicsItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionGraphicsItem (0x0x7f63792765b0) 0 + QStyleOption (0x0x7f63792c91e0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f63792c93c0) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f6379276750) 0 + QStyleHintReturn (0x0x7f63792c9420) 0 + +Class QStyleHintReturnVariant + size=24 align=8 + base size=24 base align=8 +QStyleHintReturnVariant (0x0x7f63792767b8) 0 + QStyleHintReturn (0x0x7f63792c9480) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f63792c96c0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f63792768f0) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16u) + QObject (0x0x7f63792c9660) 0 + primary-for QAbstractItemDelegate (0x0x7f63792768f0) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f63792c9840) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI19QAbstractScrollArea) +480 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=48 align=8 + base size=48 base align=8 +QAbstractScrollArea (0x0x7f6379276958) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16u) + QFrame (0x0x7f63792769c0) 0 + primary-for QAbstractScrollArea (0x0x7f6379276958) + QWidget (0x0x7f63793334d0) 0 + primary-for QFrame (0x0x7f63792769c0) + QObject (0x0x7f63792c9780) 0 + primary-for QWidget (0x0x7f63793334d0) + QPaintDevice (0x0x7f63792c97e0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 480u) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f63792c9960) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QAbstractItemView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI17QAbstractItemView) +784 0u +792 0u +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=48 align=8 + base size=48 base align=8 +QAbstractItemView (0x0x7f6379276a28) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16u) + QAbstractScrollArea (0x0x7f6379276a90) 0 + primary-for QAbstractItemView (0x0x7f6379276a28) + QFrame (0x0x7f6379276af8) 0 + primary-for QAbstractScrollArea (0x0x7f6379276a90) + QWidget (0x0x7f6379333e70) 0 + primary-for QFrame (0x0x7f6379276af8) + QObject (0x0x7f63792c98a0) 0 + primary-for QWidget (0x0x7f6379333e70) + QPaintDevice (0x0x7f63792c9900) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 784u) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f6378fd90e0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16u) + QAccessibleObject (0x0x7f6379276c30) 0 + primary-for QAccessibleWidget (0x0x7f6378fd90e0) + QAccessibleInterface (0x0x7f63792c9ae0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f6379276c30) + QAccessibleActionInterface (0x0x7f63792c9b40) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224u) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f63792c9c60) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f6379276c98) 0 + vptr=((& QAction::_ZTV7QAction) + 16u) + QObject (0x0x7f63792c9c00) 0 + primary-for QAction (0x0x7f6379276c98) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f63792c9d20) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f6379276d00) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16u) + QObject (0x0x7f63792c9cc0) 0 + primary-for QActionGroup (0x0x7f6379276d00) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f63792c9de0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f6379276d68) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16u) + QGuiApplication (0x0x7f6379276dd0) 0 + primary-for QApplication (0x0x7f6379276d68) + QCoreApplication (0x0x7f6379276e38) 0 + primary-for QGuiApplication (0x0x7f6379276dd0) + QObject (0x0x7f63792c9d80) 0 + primary-for QCoreApplication (0x0x7f6379276e38) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f63792c9e40) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16u) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f6379276ea0) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16u) + QLayoutItem (0x0x7f63792c9ea0) 0 + primary-for QSpacerItem (0x0x7f6379276ea0) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f6379276f08) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16u) + QLayoutItem (0x0x7f63792c9f00) 0 + primary-for QWidgetItem (0x0x7f6379276f08) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f6379276f70) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16u) + QWidgetItem (0x0x7f6379065000) 0 + primary-for QWidgetItemV2 (0x0x7f6379276f70) + QLayoutItem (0x0x7f63792c9f60) 0 + primary-for QWidgetItem (0x0x7f6379065000) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f63790700c0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 47u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QLayout::setGeometry +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))-16 +232 (int (*)(...))(& _ZTI7QLayout) +240 0u +248 0u +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +272 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +280 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +288 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +312 (int (*)(...))QLayoutItem::hasHeightForWidth +320 (int (*)(...))QLayoutItem::heightForWidth +328 (int (*)(...))QLayoutItem::minimumHeightForWidth +336 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +344 (int (*)(...))QLayoutItem::widget +352 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +360 (int (*)(...))QLayoutItem::spacerItem +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f637905d5b0) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16u) + QObject (0x0x7f6379070000) 0 + primary-for QLayout (0x0x7f637905d5b0) + QLayoutItem (0x0x7f6379070060) 16 + vptr=((& QLayout::_ZTV7QLayout) + 240u) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f63790701e0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QGridLayout::addItem +136 (int (*)(...))QGridLayout::expandingDirections +144 (int (*)(...))QGridLayout::minimumSize +152 (int (*)(...))QGridLayout::maximumSize +160 (int (*)(...))QGridLayout::setGeometry +168 (int (*)(...))QGridLayout::itemAt +176 (int (*)(...))QGridLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QGridLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QGridLayout::sizeHint +232 (int (*)(...))QGridLayout::hasHeightForWidth +240 (int (*)(...))QGridLayout::heightForWidth +248 (int (*)(...))QGridLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QGridLayout) +272 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +280 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +288 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +296 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +304 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +312 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +320 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +352 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +360 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +368 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f6379065068) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16u) + QLayout (0x0x7f6379095230) 0 + primary-for QGridLayout (0x0x7f6379065068) + QObject (0x0x7f6379070120) 0 + primary-for QLayout (0x0x7f6379095230) + QLayoutItem (0x0x7f6379070180) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 272u) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f6379070300) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI10QBoxLayout) +272 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +280 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f63790650d0) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16u) + QLayout (0x0x7f6379095bd0) 0 + primary-for QBoxLayout (0x0x7f63790650d0) + QObject (0x0x7f6379070240) 0 + primary-for QLayout (0x0x7f6379095bd0) + QLayoutItem (0x0x7f63790702a0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 272u) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f6379070420) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QHBoxLayout) +272 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +280 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f63790651a0) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16u) + QBoxLayout (0x0x7f6379065208) 0 + primary-for QHBoxLayout (0x0x7f63790651a0) + QLayout (0x0x7f63790c0620) 0 + primary-for QBoxLayout (0x0x7f6379065208) + QObject (0x0x7f6379070360) 0 + primary-for QLayout (0x0x7f63790c0620) + QLayoutItem (0x0x7f63790703c0) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 272u) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f6379070540) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 51u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QVBoxLayout) +272 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +280 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f6379065270) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16u) + QBoxLayout (0x0x7f63790652d8) 0 + primary-for QVBoxLayout (0x0x7f6379065270) + QLayout (0x0x7f63790c0af0) 0 + primary-for QBoxLayout (0x0x7f63790652d8) + QObject (0x0x7f6379070480) 0 + primary-for QLayout (0x0x7f63790c0af0) + QLayoutItem (0x0x7f63790704e0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 272u) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f6379070600) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f6379065340) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16u) + QObject (0x0x7f63790705a0) 0 + primary-for QButtonGroup (0x0x7f6379065340) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f6379070720) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=48 align=8 + base size=48 base align=8 +QCalendarWidget (0x0x7f63790653a8) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16u) + QWidget (0x0x7f63790f5620) 0 + primary-for QCalendarWidget (0x0x7f63790653a8) + QObject (0x0x7f6379070660) 0 + primary-for QWidget (0x0x7f63790f5620) + QPaintDevice (0x0x7f63790706c0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456u) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f6379070840) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI9QCheckBox) +472 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=48 align=8 + base size=48 base align=8 +QCheckBox (0x0x7f6379065410) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16u) + QAbstractButton (0x0x7f6379065478) 0 + primary-for QCheckBox (0x0x7f6379065410) + QWidget (0x0x7f637912a5b0) 0 + primary-for QAbstractButton (0x0x7f6379065478) + QObject (0x0x7f6379070780) 0 + primary-for QWidget (0x0x7f637912a5b0) + QPaintDevice (0x0x7f63790707e0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 472u) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f6379070960) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=48 align=8 + base size=48 base align=8 +QDialog (0x0x7f63790654e0) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16u) + QWidget (0x0x7f637912ac40) 0 + primary-for QDialog (0x0x7f63790654e0) + QObject (0x0x7f63790708a0) 0 + primary-for QWidget (0x0x7f637912ac40) + QPaintDevice (0x0x7f6379070900) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488u) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f6379070a80) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=48 align=8 + base size=48 base align=8 +QColorDialog (0x0x7f6379065548) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16u) + QDialog (0x0x7f63790655b0) 0 + primary-for QColorDialog (0x0x7f6379065548) + QWidget (0x0x7f637915a4d0) 0 + primary-for QDialog (0x0x7f63790655b0) + QObject (0x0x7f63790709c0) 0 + primary-for QWidget (0x0x7f637915a4d0) + QPaintDevice (0x0x7f6379070a20) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488u) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f6379070c60) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f6379070d80) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 107u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QColumnView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QColumnView::setModel +472 (int (*)(...))QColumnView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QColumnView::visualRect +496 (int (*)(...))QColumnView::scrollTo +504 (int (*)(...))QColumnView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QColumnView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QColumnView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QColumnView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QColumnView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QColumnView::moveCursor +688 (int (*)(...))QColumnView::horizontalOffset +696 (int (*)(...))QColumnView::verticalOffset +704 (int (*)(...))QColumnView::isIndexHidden +712 (int (*)(...))QColumnView::setSelection +720 (int (*)(...))QColumnView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QColumnView::createColumn +776 (int (*)(...))-16 +784 (int (*)(...))(& _ZTI11QColumnView) +792 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +800 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=48 align=8 + base size=48 base align=8 +QColumnView (0x0x7f63790656e8) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16u) + QAbstractItemView (0x0x7f6379065750) 0 + primary-for QColumnView (0x0x7f63790656e8) + QAbstractScrollArea (0x0x7f63790657b8) 0 + primary-for QAbstractItemView (0x0x7f6379065750) + QFrame (0x0x7f6379065820) 0 + primary-for QAbstractScrollArea (0x0x7f63790657b8) + QWidget (0x0x7f63791a4310) 0 + primary-for QFrame (0x0x7f6379065820) + QObject (0x0x7f6379070cc0) 0 + primary-for QWidget (0x0x7f63791a4310) + QPaintDevice (0x0x7f6379070d20) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 792u) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f6379070ea0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QComboBox) +464 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +472 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=48 align=8 + base size=48 base align=8 +QComboBox (0x0x7f6379065888) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16u) + QWidget (0x0x7f63791a49a0) 0 + primary-for QComboBox (0x0x7f6379065888) + QObject (0x0x7f6379070de0) 0 + primary-for QWidget (0x0x7f63791a49a0) + QPaintDevice (0x0x7f6379070e40) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 464u) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f6378df8000) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QPushButton) +472 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=48 align=8 + base size=48 base align=8 +QPushButton (0x0x7f63790658f0) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16u) + QAbstractButton (0x0x7f6379065958) 0 + primary-for QPushButton (0x0x7f63790658f0) + QWidget (0x0x7f6378dc0d20) 0 + primary-for QAbstractButton (0x0x7f6379065958) + QObject (0x0x7f6379070f00) 0 + primary-for QWidget (0x0x7f6378dc0d20) + QPaintDevice (0x0x7f6379070f60) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 472u) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f6378df8120) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI18QCommandLinkButton) +472 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=48 align=8 + base size=48 base align=8 +QCommandLinkButton (0x0x7f63790659c0) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16u) + QPushButton (0x0x7f6379065a28) 0 + primary-for QCommandLinkButton (0x0x7f63790659c0) + QAbstractButton (0x0x7f6379065a90) 0 + primary-for QPushButton (0x0x7f6379065a28) + QWidget (0x0x7f6378e073f0) 0 + primary-for QAbstractButton (0x0x7f6379065a90) + QObject (0x0x7f6378df8060) 0 + primary-for QWidget (0x0x7f6378e073f0) + QPaintDevice (0x0x7f6378df80c0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 472u) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f6378df81e0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f6379065af8) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16u) + QStyle (0x0x7f6379065b60) 0 + primary-for QCommonStyle (0x0x7f6379065af8) + QObject (0x0x7f6378df8180) 0 + primary-for QStyle (0x0x7f6379065b60) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f6378df82a0) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f6379065bc8) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16u) + QObject (0x0x7f6378df8240) 0 + primary-for QCompleter (0x0x7f6379065bc8) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f6378df8360) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f6379065c30) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16u) + QObject (0x0x7f6378df8300) 0 + primary-for QDataWidgetMapper (0x0x7f6379065c30) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f6378df8480) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QDateTimeEdit) +504 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=48 align=8 + base size=48 base align=8 +QDateTimeEdit (0x0x7f6379065c98) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16u) + QAbstractSpinBox (0x0x7f6379065d00) 0 + primary-for QDateTimeEdit (0x0x7f6379065c98) + QWidget (0x0x7f6378e69310) 0 + primary-for QAbstractSpinBox (0x0x7f6379065d00) + QObject (0x0x7f6378df83c0) 0 + primary-for QWidget (0x0x7f6378e69310) + QPaintDevice (0x0x7f6378df8420) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 504u) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f6378df85a0) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QTimeEdit) +504 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=48 align=8 + base size=48 base align=8 +QTimeEdit (0x0x7f6379065d68) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16u) + QDateTimeEdit (0x0x7f6379065dd0) 0 + primary-for QTimeEdit (0x0x7f6379065d68) + QAbstractSpinBox (0x0x7f6379065e38) 0 + primary-for QDateTimeEdit (0x0x7f6379065dd0) + QWidget (0x0x7f6378e98070) 0 + primary-for QAbstractSpinBox (0x0x7f6379065e38) + QObject (0x0x7f6378df84e0) 0 + primary-for QWidget (0x0x7f6378e98070) + QPaintDevice (0x0x7f6378df8540) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 504u) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f6378df86c0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QDateEdit) +504 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=48 align=8 + base size=48 base align=8 +QDateEdit (0x0x7f6379065ea0) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16u) + QDateTimeEdit (0x0x7f6379065f08) 0 + primary-for QDateEdit (0x0x7f6379065ea0) + QAbstractSpinBox (0x0x7f6379065f70) 0 + primary-for QDateTimeEdit (0x0x7f6379065f08) + QWidget (0x0x7f6378e98540) 0 + primary-for QAbstractSpinBox (0x0x7f6379065f70) + QObject (0x0x7f6378df8600) 0 + primary-for QWidget (0x0x7f6378e98540) + QPaintDevice (0x0x7f6378df8660) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 504u) + +Class QDesktopWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesktopWidget::QPrivateSignal (0x0x7f6378df8900) 0 empty + +Vtable for QDesktopWidget +QDesktopWidget::_ZTV14QDesktopWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDesktopWidget) +16 (int (*)(...))QDesktopWidget::metaObject +24 (int (*)(...))QDesktopWidget::qt_metacast +32 (int (*)(...))QDesktopWidget::qt_metacall +40 (int (*)(...))QDesktopWidget::~QDesktopWidget +48 (int (*)(...))QDesktopWidget::~QDesktopWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDesktopWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QDesktopWidget) +448 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD1Ev +456 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesktopWidget + size=48 align=8 + base size=48 base align=8 +QDesktopWidget (0x0x7f6378eb80d0) 0 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 16u) + QWidget (0x0x7f6378ece7e0) 0 + primary-for QDesktopWidget (0x0x7f6378eb80d0) + QObject (0x0x7f6378df8840) 0 + primary-for QWidget (0x0x7f6378ece7e0) + QPaintDevice (0x0x7f6378df88a0) 16 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 448u) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f6378df8a20) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QDial) +456 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +464 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=48 align=8 + base size=48 base align=8 +QDial (0x0x7f6378eb8138) 0 + vptr=((& QDial::_ZTV5QDial) + 16u) + QAbstractSlider (0x0x7f6378eb81a0) 0 + primary-for QDial (0x0x7f6378eb8138) + QWidget (0x0x7f6378f02150) 0 + primary-for QAbstractSlider (0x0x7f6378eb81a0) + QObject (0x0x7f6378df8960) 0 + primary-for QWidget (0x0x7f6378f02150) + QPaintDevice (0x0x7f6378df89c0) 16 + vptr=((& QDial::_ZTV5QDial) + 456u) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f6378df8b40) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=48 align=8 + base size=48 base align=8 +QDialogButtonBox (0x0x7f6378eb8208) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16u) + QWidget (0x0x7f6378f027e0) 0 + primary-for QDialogButtonBox (0x0x7f6378eb8208) + QObject (0x0x7f6378df8a80) 0 + primary-for QWidget (0x0x7f6378f027e0) + QPaintDevice (0x0x7f6378df8ae0) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448u) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QFileIconProvider::type + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f6378df8cc0) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16u) + +Class QDirModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDirModel::QPrivateSignal (0x0x7f6378df8f60) 0 empty + +Vtable for QDirModel +QDirModel::_ZTV9QDirModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDirModel) +16 (int (*)(...))QDirModel::metaObject +24 (int (*)(...))QDirModel::qt_metacast +32 (int (*)(...))QDirModel::qt_metacall +40 (int (*)(...))QDirModel::~QDirModel +48 (int (*)(...))QDirModel::~QDirModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDirModel::index +120 (int (*)(...))QDirModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QDirModel::rowCount +144 (int (*)(...))QDirModel::columnCount +152 (int (*)(...))QDirModel::hasChildren +160 (int (*)(...))QDirModel::data +168 (int (*)(...))QDirModel::setData +176 (int (*)(...))QDirModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QDirModel::mimeTypes +216 (int (*)(...))QDirModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QDirModel::dropMimeData +240 (int (*)(...))QDirModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QDirModel::flags +328 (int (*)(...))QDirModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QDirModel + size=16 align=8 + base size=16 base align=8 +QDirModel (0x0x7f6378eb8410) 0 + vptr=((& QDirModel::_ZTV9QDirModel) + 16u) + QAbstractItemModel (0x0x7f6378eb8478) 0 + primary-for QDirModel (0x0x7f6378eb8410) + QObject (0x0x7f6378df8f00) 0 + primary-for QAbstractItemModel (0x0x7f6378eb8478) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f6378bd60c0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QDockWidget) +448 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=48 align=8 + base size=48 base align=8 +QDockWidget (0x0x7f6378eb84e0) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16u) + QWidget (0x0x7f6378bb2850) 0 + primary-for QDockWidget (0x0x7f6378eb84e0) + QObject (0x0x7f6378bd6000) 0 + primary-for QWidget (0x0x7f6378bb2850) + QPaintDevice (0x0x7f6378bd6060) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 448u) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f6378bd6240) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f6378bd6480) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=48 align=8 + base size=48 base align=8 +QErrorMessage (0x0x7f6378eb86e8) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16u) + QDialog (0x0x7f6378eb8750) 0 + primary-for QErrorMessage (0x0x7f6378eb86e8) + QWidget (0x0x7f6378c429a0) 0 + primary-for QDialog (0x0x7f6378eb8750) + QObject (0x0x7f6378bd63c0) 0 + primary-for QWidget (0x0x7f6378c429a0) + QPaintDevice (0x0x7f6378bd6420) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488u) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f6378bd65a0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=48 align=8 + base size=48 base align=8 +QFileDialog (0x0x7f6378eb87b8) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16u) + QDialog (0x0x7f6378eb8820) 0 + primary-for QFileDialog (0x0x7f6378eb87b8) + QWidget (0x0x7f6378c71070) 0 + primary-for QDialog (0x0x7f6378eb8820) + QObject (0x0x7f6378bd64e0) 0 + primary-for QWidget (0x0x7f6378c71070) + QPaintDevice (0x0x7f6378bd6540) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488u) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f6378bd6780) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QFileSystemModel::mimeTypes +216 (int (*)(...))QFileSystemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QFileSystemModel::dropMimeData +240 (int (*)(...))QFileSystemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QFileSystemModel::fetchMore +312 (int (*)(...))QFileSystemModel::canFetchMore +320 (int (*)(...))QFileSystemModel::flags +328 (int (*)(...))QFileSystemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f6378eb8958) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16u) + QAbstractItemModel (0x0x7f6378eb89c0) 0 + primary-for QFileSystemModel (0x0x7f6378eb8958) + QObject (0x0x7f6378bd6720) 0 + primary-for QAbstractItemModel (0x0x7f6378eb89c0) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f6378bd6900) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QFocusFrame) +448 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=48 align=8 + base size=48 base align=8 +QFocusFrame (0x0x7f6378eb8a28) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16u) + QWidget (0x0x7f6378cf5770) 0 + primary-for QFocusFrame (0x0x7f6378eb8a28) + QObject (0x0x7f6378bd6840) 0 + primary-for QWidget (0x0x7f6378cf5770) + QPaintDevice (0x0x7f6378bd68a0) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 448u) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f6378bd6a20) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI13QFontComboBox) +464 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +472 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=48 align=8 + base size=48 base align=8 +QFontComboBox (0x0x7f6378eb8a90) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16u) + QComboBox (0x0x7f6378eb8af8) 0 + primary-for QFontComboBox (0x0x7f6378eb8a90) + QWidget (0x0x7f6378cf5e00) 0 + primary-for QComboBox (0x0x7f6378eb8af8) + QObject (0x0x7f6378bd6960) 0 + primary-for QWidget (0x0x7f6378cf5e00) + QPaintDevice (0x0x7f6378bd69c0) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 464u) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f6378bd6c60) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=48 align=8 + base size=48 base align=8 +QFontDialog (0x0x7f6378eb8c98) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16u) + QDialog (0x0x7f6378eb8d00) 0 + primary-for QFontDialog (0x0x7f6378eb8c98) + QWidget (0x0x7f6378d644d0) 0 + primary-for QDialog (0x0x7f6378eb8d00) + QObject (0x0x7f6378bd6ba0) 0 + primary-for QWidget (0x0x7f6378d644d0) + QPaintDevice (0x0x7f6378bd6c00) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488u) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f6378bd6ea0) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f6378bd6f00) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 50u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QFormLayout::addItem +136 (int (*)(...))QFormLayout::expandingDirections +144 (int (*)(...))QFormLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QFormLayout::setGeometry +168 (int (*)(...))QFormLayout::itemAt +176 (int (*)(...))QFormLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QFormLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QFormLayout::sizeHint +232 (int (*)(...))QFormLayout::hasHeightForWidth +240 (int (*)(...))QFormLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI11QFormLayout) +264 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +272 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +280 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +288 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +312 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +344 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f6378eb8e38) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16u) + QLayout (0x0x7f63789b92a0) 0 + primary-for QFormLayout (0x0x7f6378eb8e38) + QObject (0x0x7f6378bd6de0) 0 + primary-for QLayout (0x0x7f63789b92a0) + QLayoutItem (0x0x7f6378bd6e40) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 264u) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f63789f84e0) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f6378a0c000) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16u) + QObject (0x0x7f63789f8480) 0 + primary-for QGesture (0x0x7f6378a0c000) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f63789f85a0) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f6378a0c068) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16u) + QGesture (0x0x7f6378a0c0d0) 0 + primary-for QPanGesture (0x0x7f6378a0c068) + QObject (0x0x7f63789f8540) 0 + primary-for QGesture (0x0x7f6378a0c0d0) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f63789f8660) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f6378a0c138) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16u) + QGesture (0x0x7f6378a0c1a0) 0 + primary-for QPinchGesture (0x0x7f6378a0c138) + QObject (0x0x7f63789f8600) 0 + primary-for QGesture (0x0x7f6378a0c1a0) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f63789f8960) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f6378a0c2d8) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16u) + QGesture (0x0x7f6378a0c340) 0 + primary-for QSwipeGesture (0x0x7f6378a0c2d8) + QObject (0x0x7f63789f8900) 0 + primary-for QGesture (0x0x7f6378a0c340) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f63789f8a80) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f6378a0c3a8) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16u) + QGesture (0x0x7f6378a0c410) 0 + primary-for QTapGesture (0x0x7f6378a0c3a8) + QObject (0x0x7f63789f8a20) 0 + primary-for QGesture (0x0x7f6378a0c410) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f63789f8b40) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f6378a0c478) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16u) + QGesture (0x0x7f6378a0c4e0) 0 + primary-for QTapAndHoldGesture (0x0x7f6378a0c478) + QObject (0x0x7f63789f8ae0) 0 + primary-for QGesture (0x0x7f6378a0c4e0) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent + +Class QGestureEvent + size=56 align=8 + base size=56 base align=8 +QGestureEvent (0x0x7f6378a0c548) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16u) + QEvent (0x0x7f63789f8ba0) 0 + primary-for QGestureEvent (0x0x7f6378a0c548) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0u +24 0u +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f63789f8f60) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16u) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f6378b25120) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16u) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f6378b25480) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0u +48 0u +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0u +136 0u +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f637880ea80) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16u) + QObject (0x0x7f6378b253c0) 0 + primary-for QGraphicsObject (0x0x7f637880ea80) + QGraphicsItem (0x0x7f6378b25420) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128u) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f6378a0c820) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16u) + QGraphicsItem (0x0x7f6378b254e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0c820) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f6378a0c888) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f6378a0c8f0) 0 + primary-for QGraphicsPathItem (0x0x7f6378a0c888) + QGraphicsItem (0x0x7f6378b25540) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0c8f0) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f6378a0c958) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f6378a0c9c0) 0 + primary-for QGraphicsRectItem (0x0x7f6378a0c958) + QGraphicsItem (0x0x7f6378b255a0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0c9c0) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f6378a0ca28) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f6378a0ca90) 0 + primary-for QGraphicsEllipseItem (0x0x7f6378a0ca28) + QGraphicsItem (0x0x7f6378b25600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0ca90) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f6378a0caf8) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f6378a0cb60) 0 + primary-for QGraphicsPolygonItem (0x0x7f6378a0caf8) + QGraphicsItem (0x0x7f6378b25660) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0cb60) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f6378a0cbc8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16u) + QGraphicsItem (0x0x7f6378b256c0) 0 + primary-for QGraphicsLineItem (0x0x7f6378a0cbc8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f6378a0cc30) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16u) + QGraphicsItem (0x0x7f6378b25720) 0 + primary-for QGraphicsPixmapItem (0x0x7f6378a0cc30) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f6378b25840) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f6378a0cc98) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16u) + QGraphicsObject (0x0x7f63788887e0) 0 + primary-for QGraphicsTextItem (0x0x7f6378a0cc98) + QObject (0x0x7f6378b25780) 0 + primary-for QGraphicsObject (0x0x7f63788887e0) + QGraphicsItem (0x0x7f6378b257e0) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360u) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f6378a0cdd0) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16u) + QAbstractGraphicsShapeItem (0x0x7f6378a0ce38) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f6378a0cdd0) + QGraphicsItem (0x0x7f6378b25a80) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f6378a0ce38) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f6378a0cea0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16u) + QGraphicsItem (0x0x7f6378b25ae0) 0 + primary-for QGraphicsItemGroup (0x0x7f6378a0cea0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0u +24 0u +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f6378b25c60) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16u) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0u +24 0u +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QGraphicsLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f6378a0cf08) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16u) + QGraphicsLayoutItem (0x0x7f6378b25de0) 0 + primary-for QGraphicsLayout (0x0x7f6378a0cf08) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f6378b25f00) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f6378a0cf70) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16u) + QObject (0x0x7f6378b25ea0) 0 + primary-for QGraphicsAnchor (0x0x7f6378a0cf70) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsAnchorLayout::sizeHint +64 (int (*)(...))QGraphicsAnchorLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsAnchorLayout::count +88 (int (*)(...))QGraphicsAnchorLayout::itemAt +96 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f637893c000) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16u) + QGraphicsLayout (0x0x7f637893c068) 0 + primary-for QGraphicsAnchorLayout (0x0x7f637893c000) + QGraphicsLayoutItem (0x0x7f6378b25f60) 0 + primary-for QGraphicsLayout (0x0x7f637893c068) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f637894b060) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f637893c0d0) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16u) + QObject (0x0x7f637894b000) 0 + primary-for QGraphicsEffect (0x0x7f637893c0d0) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f637894b240) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f637893c208) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16u) + QGraphicsEffect (0x0x7f637893c270) 0 + primary-for QGraphicsColorizeEffect (0x0x7f637893c208) + QObject (0x0x7f637894b1e0) 0 + primary-for QGraphicsEffect (0x0x7f637893c270) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f637894b300) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f637893c2d8) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16u) + QGraphicsEffect (0x0x7f637893c340) 0 + primary-for QGraphicsBlurEffect (0x0x7f637893c2d8) + QObject (0x0x7f637894b2a0) 0 + primary-for QGraphicsEffect (0x0x7f637893c340) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f637894b4e0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f637893c478) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16u) + QGraphicsEffect (0x0x7f637893c4e0) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f637893c478) + QObject (0x0x7f637894b480) 0 + primary-for QGraphicsEffect (0x0x7f637893c4e0) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f637894b5a0) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f637893c548) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16u) + QGraphicsEffect (0x0x7f637893c5b0) 0 + primary-for QGraphicsOpacityEffect (0x0x7f637893c548) + QObject (0x0x7f637894b540) 0 + primary-for QGraphicsEffect (0x0x7f637893c5b0) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsGridLayout::sizeHint +64 (int (*)(...))QGraphicsGridLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsGridLayout::count +88 (int (*)(...))QGraphicsGridLayout::itemAt +96 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f637893c618) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16u) + QGraphicsLayout (0x0x7f637893c680) 0 + primary-for QGraphicsGridLayout (0x0x7f637893c618) + QGraphicsLayoutItem (0x0x7f637894b600) 0 + primary-for QGraphicsLayout (0x0x7f637893c680) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f637894b6c0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f637893c750) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16u) + QObject (0x0x7f637894b660) 0 + primary-for QGraphicsItemAnimation (0x0x7f637893c750) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 13u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLinearLayout::sizeHint +64 (int (*)(...))QGraphicsLinearLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsLinearLayout::count +88 (int (*)(...))QGraphicsLinearLayout::itemAt +96 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f637893c7b8) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16u) + QGraphicsLayout (0x0x7f637893c820) 0 + primary-for QGraphicsLinearLayout (0x0x7f637893c7b8) + QGraphicsLayoutItem (0x0x7f637894b720) 0 + primary-for QGraphicsLayout (0x0x7f637893c820) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f637894b8a0) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 92u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f6378652070) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16u) + QGraphicsObject (0x0x7f63786520e0) 0 + primary-for QGraphicsWidget (0x0x7f6378652070) + QObject (0x0x7f637894b780) 0 + primary-for QGraphicsObject (0x0x7f63786520e0) + QGraphicsItem (0x0x7f637894b7e0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376u) + QGraphicsLayoutItem (0x0x7f637894b840) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688u) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f637894bae0) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 107u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f637893c958) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16u) + QGraphicsWidget (0x0x7f6378652bd0) 0 + primary-for QGraphicsProxyWidget (0x0x7f637893c958) + QGraphicsObject (0x0x7f6378652c40) 0 + primary-for QGraphicsWidget (0x0x7f6378652bd0) + QObject (0x0x7f637894b9c0) 0 + primary-for QGraphicsObject (0x0x7f6378652c40) + QGraphicsItem (0x0x7f637894ba20) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496u) + QGraphicsLayoutItem (0x0x7f637894ba80) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808u) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f637894bd20) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f637893cb60) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16u) + QObject (0x0x7f637894bcc0) 0 + primary-for QGraphicsScene (0x0x7f637893cb60) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent + +Class QGraphicsSceneEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneEvent (0x0x7f637893cd68) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16u) + QEvent (0x0x7f6378729060) 0 + primary-for QGraphicsSceneEvent (0x0x7f637893cd68) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent + +Class QGraphicsSceneMouseEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMouseEvent (0x0x7f637893cdd0) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16u) + QGraphicsSceneEvent (0x0x7f637893ce38) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f637893cdd0) + QEvent (0x0x7f6378729180) 0 + primary-for QGraphicsSceneEvent (0x0x7f637893ce38) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent + +Class QGraphicsSceneWheelEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneWheelEvent (0x0x7f637893cea0) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16u) + QGraphicsSceneEvent (0x0x7f637893cf08) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f637893cea0) + QEvent (0x0x7f63787291e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f637893cf08) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent + +Class QGraphicsSceneContextMenuEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f637893cf70) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16u) + QGraphicsSceneEvent (0x0x7f6378781000) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f637893cf70) + QEvent (0x0x7f6378729240) 0 + primary-for QGraphicsSceneEvent (0x0x7f6378781000) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent + +Class QGraphicsSceneHoverEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHoverEvent (0x0x7f6378781068) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16u) + QGraphicsSceneEvent (0x0x7f63787810d0) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f6378781068) + QEvent (0x0x7f63787292a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f63787810d0) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent + +Class QGraphicsSceneHelpEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHelpEvent (0x0x7f6378781138) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16u) + QGraphicsSceneEvent (0x0x7f63787811a0) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f6378781138) + QEvent (0x0x7f6378729300) 0 + primary-for QGraphicsSceneEvent (0x0x7f63787811a0) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent + +Class QGraphicsSceneDragDropEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f6378781208) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16u) + QGraphicsSceneEvent (0x0x7f6378781270) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f6378781208) + QEvent (0x0x7f6378729360) 0 + primary-for QGraphicsSceneEvent (0x0x7f6378781270) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent + +Class QGraphicsSceneResizeEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneResizeEvent (0x0x7f63787812d8) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16u) + QGraphicsSceneEvent (0x0x7f6378781340) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f63787812d8) + QEvent (0x0x7f63787293c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f6378781340) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent + +Class QGraphicsSceneMoveEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMoveEvent (0x0x7f63787813a8) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16u) + QGraphicsSceneEvent (0x0x7f6378781410) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f63787813a8) + QEvent (0x0x7f6378729420) 0 + primary-for QGraphicsSceneEvent (0x0x7f6378781410) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f63787294e0) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f6378781478) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16u) + QObject (0x0x7f6378729480) 0 + primary-for QGraphicsTransform (0x0x7f6378781478) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f63787295a0) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f63787814e0) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16u) + QGraphicsTransform (0x0x7f6378781548) 0 + primary-for QGraphicsScale (0x0x7f63787814e0) + QObject (0x0x7f6378729540) 0 + primary-for QGraphicsTransform (0x0x7f6378781548) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f6378729660) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f63787815b0) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16u) + QGraphicsTransform (0x0x7f6378781618) 0 + primary-for QGraphicsRotation (0x0x7f63787815b0) + QObject (0x0x7f6378729600) 0 + primary-for QGraphicsTransform (0x0x7f6378781618) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f6378729780) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QScrollArea::scrollContentsBy +456 (int (*)(...))QScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QScrollArea) +480 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=48 align=8 + base size=48 base align=8 +QScrollArea (0x0x7f6378781680) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16u) + QAbstractScrollArea (0x0x7f63787816e8) 0 + primary-for QScrollArea (0x0x7f6378781680) + QFrame (0x0x7f6378781750) 0 + primary-for QAbstractScrollArea (0x0x7f63787816e8) + QWidget (0x0x7f63783d9540) 0 + primary-for QFrame (0x0x7f6378781750) + QObject (0x0x7f63787296c0) 0 + primary-for QWidget (0x0x7f63783d9540) + QPaintDevice (0x0x7f6378729720) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 480u) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f63787298a0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QGraphicsView::setupViewport +440 (int (*)(...))QGraphicsView::viewportEvent +448 (int (*)(...))QGraphicsView::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QGraphicsView::drawBackground +472 (int (*)(...))QGraphicsView::drawForeground +480 (int (*)(...))QGraphicsView::drawItems +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QGraphicsView) +504 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=48 align=8 + base size=48 base align=8 +QGraphicsView (0x0x7f63787817b8) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16u) + QAbstractScrollArea (0x0x7f6378781820) 0 + primary-for QGraphicsView (0x0x7f63787817b8) + QFrame (0x0x7f6378781888) 0 + primary-for QAbstractScrollArea (0x0x7f6378781820) + QWidget (0x0x7f63783d9bd0) 0 + primary-for QFrame (0x0x7f6378781888) + QObject (0x0x7f63787297e0) 0 + primary-for QWidget (0x0x7f63783d9bd0) + QPaintDevice (0x0x7f6378729840) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 504u) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f6378729c00) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QGroupBox) +448 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=48 align=8 + base size=48 base align=8 +QGroupBox (0x0x7f6378781a90) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16u) + QWidget (0x0x7f63784be540) 0 + primary-for QGroupBox (0x0x7f6378781a90) + QObject (0x0x7f6378729b40) 0 + primary-for QWidget (0x0x7f63784be540) + QPaintDevice (0x0x7f6378729ba0) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 448u) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f6378729d20) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 108u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QHeaderView::viewportEvent +448 (int (*)(...))QHeaderView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QHeaderView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QHeaderView::visualRect +496 (int (*)(...))QHeaderView::scrollTo +504 (int (*)(...))QHeaderView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QHeaderView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QHeaderView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QHeaderView::dataChanged +568 (int (*)(...))QHeaderView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QHeaderView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QHeaderView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QHeaderView::moveCursor +688 (int (*)(...))QHeaderView::horizontalOffset +696 (int (*)(...))QHeaderView::verticalOffset +704 (int (*)(...))QHeaderView::isIndexHidden +712 (int (*)(...))QHeaderView::setSelection +720 (int (*)(...))QHeaderView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QHeaderView::paintSection +776 (int (*)(...))QHeaderView::sectionSizeFromContents +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI11QHeaderView) +800 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +808 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=48 align=8 + base size=48 base align=8 +QHeaderView (0x0x7f6378781af8) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16u) + QAbstractItemView (0x0x7f6378781b60) 0 + primary-for QHeaderView (0x0x7f6378781af8) + QAbstractScrollArea (0x0x7f6378781bc8) 0 + primary-for QAbstractItemView (0x0x7f6378781b60) + QFrame (0x0x7f6378781c30) 0 + primary-for QAbstractScrollArea (0x0x7f6378781bc8) + QWidget (0x0x7f63784bebd0) 0 + primary-for QFrame (0x0x7f6378781c30) + QObject (0x0x7f6378729c60) 0 + primary-for QWidget (0x0x7f63784bebd0) + QPaintDevice (0x0x7f6378729cc0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 800u) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f637851b060) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QLineEdit) +448 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=48 align=8 + base size=48 base align=8 +QLineEdit (0x0x7f6378781dd0) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16u) + QWidget (0x0x7f6378510bd0) 0 + primary-for QLineEdit (0x0x7f6378781dd0) + QObject (0x0x7f6378729f60) 0 + primary-for QWidget (0x0x7f6378510bd0) + QPaintDevice (0x0x7f637851b000) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 448u) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f637851b180) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=48 align=8 + base size=48 base align=8 +QInputDialog (0x0x7f6378781e38) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16u) + QDialog (0x0x7f6378781ea0) 0 + primary-for QInputDialog (0x0x7f6378781e38) + QWidget (0x0x7f63785258c0) 0 + primary-for QDialog (0x0x7f6378781ea0) + QObject (0x0x7f637851b0c0) 0 + primary-for QWidget (0x0x7f63785258c0) + QPaintDevice (0x0x7f637851b120) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488u) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f637851b360) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f63781ad000) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16u) + QAbstractItemDelegate (0x0x7f63781ad068) 0 + primary-for QItemDelegate (0x0x7f63781ad000) + QObject (0x0x7f637851b300) 0 + primary-for QAbstractItemDelegate (0x0x7f63781ad068) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f637851b3c0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16u) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f637851b4e0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16u) + +Class QKeyEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeyEventTransition::QPrivateSignal (0x0x7f637851b660) 0 empty + +Vtable for QKeyEventTransition +QKeyEventTransition::_ZTV19QKeyEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QKeyEventTransition) +16 (int (*)(...))QKeyEventTransition::metaObject +24 (int (*)(...))QKeyEventTransition::qt_metacast +32 (int (*)(...))QKeyEventTransition::qt_metacall +40 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +48 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QKeyEventTransition::eventTest +120 (int (*)(...))QKeyEventTransition::onTransition + +Class QKeyEventTransition + size=16 align=8 + base size=16 base align=8 +QKeyEventTransition (0x0x7f63781ad1a0) 0 + vptr=((& QKeyEventTransition::_ZTV19QKeyEventTransition) + 16u) + QEventTransition (0x0x7f63781ad208) 0 + primary-for QKeyEventTransition (0x0x7f63781ad1a0) + QAbstractTransition (0x0x7f63781ad270) 0 + primary-for QEventTransition (0x0x7f63781ad208) + QObject (0x0x7f637851b600) 0 + primary-for QAbstractTransition (0x0x7f63781ad270) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f637851b780) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=48 align=8 + base size=48 base align=8 +QKeySequenceEdit (0x0x7f63781ad2d8) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16u) + QWidget (0x0x7f63781cbd20) 0 + primary-for QKeySequenceEdit (0x0x7f63781ad2d8) + QObject (0x0x7f637851b6c0) 0 + primary-for QWidget (0x0x7f63781cbd20) + QPaintDevice (0x0x7f637851b720) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448u) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f637851b8a0) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QLabel) +448 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=48 align=8 + base size=48 base align=8 +QLabel (0x0x7f63781ad340) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16u) + QFrame (0x0x7f63781ad3a8) 0 + primary-for QLabel (0x0x7f63781ad340) + QWidget (0x0x7f63782133f0) 0 + primary-for QFrame (0x0x7f63781ad3a8) + QObject (0x0x7f637851b7e0) 0 + primary-for QWidget (0x0x7f63782133f0) + QPaintDevice (0x0x7f637851b840) 16 + vptr=((& QLabel::_ZTV6QLabel) + 448u) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f637851b9c0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QLCDNumber) +448 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=48 align=8 + base size=48 base align=8 +QLCDNumber (0x0x7f63781ad410) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16u) + QFrame (0x0x7f63781ad478) 0 + primary-for QLCDNumber (0x0x7f63781ad410) + QWidget (0x0x7f6378213b60) 0 + primary-for QFrame (0x0x7f63781ad478) + QObject (0x0x7f637851b900) 0 + primary-for QWidget (0x0x7f6378213b60) + QPaintDevice (0x0x7f637851b960) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 448u) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f637851bae0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QListView) +784 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +792 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=48 align=8 + base size=48 base align=8 +QListView (0x0x7f63781ad4e0) 0 + vptr=((& QListView::_ZTV9QListView) + 16u) + QAbstractItemView (0x0x7f63781ad548) 0 + primary-for QListView (0x0x7f63781ad4e0) + QAbstractScrollArea (0x0x7f63781ad5b0) 0 + primary-for QAbstractItemView (0x0x7f63781ad548) + QFrame (0x0x7f63781ad618) 0 + primary-for QAbstractScrollArea (0x0x7f63781ad5b0) + QWidget (0x0x7f637823f8c0) 0 + primary-for QFrame (0x0x7f63781ad618) + QObject (0x0x7f637851ba20) 0 + primary-for QWidget (0x0x7f637823f8c0) + QPaintDevice (0x0x7f637851ba80) 16 + vptr=((& QListView::_ZTV9QListView) + 784u) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 11u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::setBackgroundColor +48 (int (*)(...))QListWidgetItem::data +56 (int (*)(...))QListWidgetItem::setData +64 (int (*)(...))QListWidgetItem::operator< +72 (int (*)(...))QListWidgetItem::read +80 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=48 align=8 + base size=44 base align=8 +QListWidgetItem (0x0x7f637851bb40) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16u) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f637851bd80) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 110u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QListWidget::setModel +472 (int (*)(...))QListWidget::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))QListWidget::mimeTypes +776 (int (*)(...))QListWidget::mimeData +784 (int (*)(...))QListWidget::dropMimeData +792 (int (*)(...))QListWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI11QListWidget) +816 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +824 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=48 align=8 + base size=48 base align=8 +QListWidget (0x0x7f63781ad750) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16u) + QListView (0x0x7f63781ad7b8) 0 + primary-for QListWidget (0x0x7f63781ad750) + QAbstractItemView (0x0x7f63781ad820) 0 + primary-for QListView (0x0x7f63781ad7b8) + QAbstractScrollArea (0x0x7f63781ad888) 0 + primary-for QAbstractItemView (0x0x7f63781ad820) + QFrame (0x0x7f63781ad8f0) 0 + primary-for QAbstractScrollArea (0x0x7f63781ad888) + QWidget (0x0x7f63782e4930) 0 + primary-for QFrame (0x0x7f63781ad8f0) + QObject (0x0x7f637851bcc0) 0 + primary-for QWidget (0x0x7f63782e4930) + QPaintDevice (0x0x7f637851bd20) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 816u) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f637851bea0) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=48 align=8 + base size=48 base align=8 +QMainWindow (0x0x7f63781ad958) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16u) + QWidget (0x0x7f6378316a10) 0 + primary-for QMainWindow (0x0x7f63781ad958) + QObject (0x0x7f637851bde0) 0 + primary-for QWidget (0x0x7f6378316a10) + QPaintDevice (0x0x7f637851be40) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456u) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f6378351120) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 68u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMdiArea::setupViewport +440 (int (*)(...))QMdiArea::viewportEvent +448 (int (*)(...))QMdiArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI8QMdiArea) +480 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=48 align=8 + base size=48 base align=8 +QMdiArea (0x0x7f63781ada90) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16u) + QAbstractScrollArea (0x0x7f63781adaf8) 0 + primary-for QMdiArea (0x0x7f63781ada90) + QFrame (0x0x7f63781adb60) 0 + primary-for QAbstractScrollArea (0x0x7f63781adaf8) + QWidget (0x0x7f63783693f0) 0 + primary-for QFrame (0x0x7f63781adb60) + QObject (0x0x7f6378351060) 0 + primary-for QWidget (0x0x7f63783693f0) + QPaintDevice (0x0x7f63783510c0) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 480u) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f6378351360) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=48 align=8 + base size=48 base align=8 +QMdiSubWindow (0x0x7f63781adc98) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16u) + QWidget (0x0x7f6377fa0f50) 0 + primary-for QMdiSubWindow (0x0x7f63781adc98) + QObject (0x0x7f63783512a0) 0 + primary-for QWidget (0x0x7f6377fa0f50) + QPaintDevice (0x0x7f6378351300) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448u) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f6378351600) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI5QMenu) +448 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=48 align=8 + base size=48 base align=8 +QMenu (0x0x7f63781addd0) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16u) + QWidget (0x0x7f637801c620) 0 + primary-for QMenu (0x0x7f63781addd0) + QObject (0x0x7f6378351540) 0 + primary-for QWidget (0x0x7f637801c620) + QPaintDevice (0x0x7f63783515a0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 448u) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f6378351720) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QMenuBar) +448 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=48 align=8 + base size=48 base align=8 +QMenuBar (0x0x7f63781ade38) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16u) + QWidget (0x0x7f637805f3f0) 0 + primary-for QMenuBar (0x0x7f63781ade38) + QObject (0x0x7f6378351660) 0 + primary-for QWidget (0x0x7f637805f3f0) + QPaintDevice (0x0x7f63783516c0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 448u) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f6378351840) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=48 align=8 + base size=48 base align=8 +QMessageBox (0x0x7f63781adea0) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16u) + QDialog (0x0x7f63781adf08) 0 + primary-for QMessageBox (0x0x7f63781adea0) + QWidget (0x0x7f637805fa80) 0 + primary-for QDialog (0x0x7f63781adf08) + QObject (0x0x7f6378351780) 0 + primary-for QWidget (0x0x7f637805fa80) + QPaintDevice (0x0x7f63783517e0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488u) + +Class QMouseEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMouseEventTransition::QPrivateSignal (0x0x7f6378351a20) 0 empty + +Vtable for QMouseEventTransition +QMouseEventTransition::_ZTV21QMouseEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QMouseEventTransition) +16 (int (*)(...))QMouseEventTransition::metaObject +24 (int (*)(...))QMouseEventTransition::qt_metacast +32 (int (*)(...))QMouseEventTransition::qt_metacall +40 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +48 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMouseEventTransition::eventTest +120 (int (*)(...))QMouseEventTransition::onTransition + +Class QMouseEventTransition + size=16 align=8 + base size=16 base align=8 +QMouseEventTransition (0x0x7f63780b30d0) 0 + vptr=((& QMouseEventTransition::_ZTV21QMouseEventTransition) + 16u) + QEventTransition (0x0x7f63780b3138) 0 + primary-for QMouseEventTransition (0x0x7f63780b30d0) + QAbstractTransition (0x0x7f63780b31a0) 0 + primary-for QEventTransition (0x0x7f63780b3138) + QObject (0x0x7f63783519c0) 0 + primary-for QAbstractTransition (0x0x7f63780b31a0) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f6378351b40) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=48 align=8 + base size=48 base align=8 +QOpenGLWidget (0x0x7f63780b3208) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16u) + QWidget (0x0x7f63780d1f50) 0 + primary-for QOpenGLWidget (0x0x7f63780b3208) + QObject (0x0x7f6378351a80) 0 + primary-for QWidget (0x0x7f63780d1f50) + QPaintDevice (0x0x7f6378351ae0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472u) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f6378351c60) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f6378351cc0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextEdit::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI9QTextEdit) +520 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=48 align=8 + base size=48 base align=8 +QTextEdit (0x0x7f63780b32d8) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16u) + QAbstractScrollArea (0x0x7f63780b3340) 0 + primary-for QTextEdit (0x0x7f63780b32d8) + QFrame (0x0x7f63780b33a8) 0 + primary-for QAbstractScrollArea (0x0x7f63780b3340) + QWidget (0x0x7f637810b770) 0 + primary-for QFrame (0x0x7f63780b33a8) + QObject (0x0x7f6378351ba0) 0 + primary-for QWidget (0x0x7f637810b770) + QPaintDevice (0x0x7f6378351c00) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 520u) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f6378351f00) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QPlainTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QPlainTextEdit::loadResource +472 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +480 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +488 (int (*)(...))QPlainTextEdit::insertFromMimeData +496 (int (*)(...))QPlainTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI14QPlainTextEdit) +520 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=48 align=8 + base size=48 base align=8 +QPlainTextEdit (0x0x7f63780b34e0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16u) + QAbstractScrollArea (0x0x7f63780b3548) 0 + primary-for QPlainTextEdit (0x0x7f63780b34e0) + QFrame (0x0x7f63780b35b0) 0 + primary-for QAbstractScrollArea (0x0x7f63780b3548) + QWidget (0x0x7f6377d885b0) 0 + primary-for QFrame (0x0x7f63780b35b0) + QObject (0x0x7f6378351e40) 0 + primary-for QWidget (0x0x7f6377d885b0) + QPaintDevice (0x0x7f6378351ea0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 520u) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f6377ddc000) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f63780b3618) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16u) + QAbstractTextDocumentLayout (0x0x7f63780b3680) 0 + primary-for QPlainTextDocumentLayout (0x0x7f63780b3618) + QObject (0x0x7f6378351f60) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f63780b3680) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f6377ddc120) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI12QProgressBar) +456 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=48 align=8 + base size=48 base align=8 +QProgressBar (0x0x7f63780b36e8) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16u) + QWidget (0x0x7f6377dd3c40) 0 + primary-for QProgressBar (0x0x7f63780b36e8) + QObject (0x0x7f6377ddc060) 0 + primary-for QWidget (0x0x7f6377dd3c40) + QPaintDevice (0x0x7f6377ddc0c0) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 456u) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f6377ddc240) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=48 align=8 + base size=48 base align=8 +QProgressDialog (0x0x7f63780b3750) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16u) + QDialog (0x0x7f63780b37b8) 0 + primary-for QProgressDialog (0x0x7f63780b3750) + QWidget (0x0x7f6377dff5b0) 0 + primary-for QDialog (0x0x7f63780b37b8) + QObject (0x0x7f6377ddc180) 0 + primary-for QWidget (0x0x7f6377dff5b0) + QPaintDevice (0x0x7f6377ddc1e0) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488u) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f6377ddc300) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f63780b3820) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16u) + QCommonStyle (0x0x7f63780b3888) 0 + primary-for QProxyStyle (0x0x7f63780b3820) + QStyle (0x0x7f63780b38f0) 0 + primary-for QCommonStyle (0x0x7f63780b3888) + QObject (0x0x7f6377ddc2a0) 0 + primary-for QStyle (0x0x7f63780b38f0) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f6377ddc420) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI12QRadioButton) +472 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=48 align=8 + base size=48 base align=8 +QRadioButton (0x0x7f63780b3958) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16u) + QAbstractButton (0x0x7f63780b39c0) 0 + primary-for QRadioButton (0x0x7f63780b3958) + QWidget (0x0x7f6377e3a380) 0 + primary-for QAbstractButton (0x0x7f63780b39c0) + QObject (0x0x7f6377ddc360) 0 + primary-for QWidget (0x0x7f6377e3a380) + QPaintDevice (0x0x7f6377ddc3c0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 472u) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f6377ddc540) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QScrollBar) +456 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=48 align=8 + base size=48 base align=8 +QScrollBar (0x0x7f63780b3a28) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16u) + QAbstractSlider (0x0x7f63780b3a90) 0 + primary-for QScrollBar (0x0x7f63780b3a28) + QWidget (0x0x7f6377e3aa10) 0 + primary-for QAbstractSlider (0x0x7f63780b3a90) + QObject (0x0x7f6377ddc480) 0 + primary-for QWidget (0x0x7f6377e3aa10) + QPaintDevice (0x0x7f6377ddc4e0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 456u) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f6377ddc5a0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16u) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f6377ddc900) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f63780b3af8) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16u) + QObject (0x0x7f6377ddc8a0) 0 + primary-for QScroller (0x0x7f63780b3af8) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f6377ddc9c0) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f63780b3b60) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16u) + QObject (0x0x7f6377ddc960) 0 + primary-for QShortcut (0x0x7f63780b3b60) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f6377ddcae0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=48 align=8 + base size=48 base align=8 +QSizeGrip (0x0x7f63780b3bc8) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16u) + QWidget (0x0x7f6377ea0bd0) 0 + primary-for QSizeGrip (0x0x7f63780b3bc8) + QObject (0x0x7f6377ddca20) 0 + primary-for QWidget (0x0x7f6377ea0bd0) + QPaintDevice (0x0x7f6377ddca80) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448u) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f6377ddcc00) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QSpinBox::valueFromText +480 (int (*)(...))QSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI8QSpinBox) +504 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=48 align=8 + base size=48 base align=8 +QSpinBox (0x0x7f63780b3c30) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16u) + QAbstractSpinBox (0x0x7f63780b3c98) 0 + primary-for QSpinBox (0x0x7f63780b3c30) + QWidget (0x0x7f6377ec92a0) 0 + primary-for QAbstractSpinBox (0x0x7f63780b3c98) + QObject (0x0x7f6377ddcb40) 0 + primary-for QWidget (0x0x7f6377ec92a0) + QPaintDevice (0x0x7f6377ddcba0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 504u) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f6377ddcd20) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 71u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QDoubleSpinBox::valueFromText +480 (int (*)(...))QDoubleSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI14QDoubleSpinBox) +504 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=48 align=8 + base size=48 base align=8 +QDoubleSpinBox (0x0x7f63780b3d00) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16u) + QAbstractSpinBox (0x0x7f63780b3d68) 0 + primary-for QDoubleSpinBox (0x0x7f63780b3d00) + QWidget (0x0x7f6377ec9930) 0 + primary-for QAbstractSpinBox (0x0x7f63780b3d68) + QObject (0x0x7f6377ddcc60) 0 + primary-for QWidget (0x0x7f6377ec9930) + QPaintDevice (0x0x7f6377ddccc0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 504u) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f6377ddce40) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=48 align=8 + base size=48 base align=8 +QSplashScreen (0x0x7f63780b3dd0) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16u) + QWidget (0x0x7f6377efb000) 0 + primary-for QSplashScreen (0x0x7f63780b3dd0) + QObject (0x0x7f6377ddcd80) 0 + primary-for QWidget (0x0x7f6377efb000) + QPaintDevice (0x0x7f6377ddcde0) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456u) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f6377ddcf60) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 65u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplitter::createHandle +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QSplitter) +456 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=48 align=8 + base size=48 base align=8 +QSplitter (0x0x7f63780b3e38) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16u) + QFrame (0x0x7f63780b3ea0) 0 + primary-for QSplitter (0x0x7f63780b3e38) + QWidget (0x0x7f6377efb770) 0 + primary-for QFrame (0x0x7f63780b3ea0) + QObject (0x0x7f6377ddcea0) 0 + primary-for QWidget (0x0x7f6377efb770) + QPaintDevice (0x0x7f6377ddcf00) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 456u) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f6377f2e0c0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=48 align=8 + base size=48 base align=8 +QSplitterHandle (0x0x7f63780b3f08) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16u) + QWidget (0x0x7f6377efbe00) 0 + primary-for QSplitterHandle (0x0x7f63780b3f08) + QObject (0x0x7f6377f2e000) 0 + primary-for QWidget (0x0x7f6377efbe00) + QPaintDevice (0x0x7f6377f2e060) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448u) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f6377f2e1e0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 50u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QStackedLayout::addItem +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QStackedLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QStackedLayout::setGeometry +168 (int (*)(...))QStackedLayout::itemAt +176 (int (*)(...))QStackedLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QStackedLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QStackedLayout::sizeHint +232 (int (*)(...))QStackedLayout::hasHeightForWidth +240 (int (*)(...))QStackedLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI14QStackedLayout) +264 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +272 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +280 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +288 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +312 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +344 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f63780b3f70) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16u) + QLayout (0x0x7f6377f424d0) 0 + primary-for QStackedLayout (0x0x7f63780b3f70) + QObject (0x0x7f6377f2e120) 0 + primary-for QLayout (0x0x7f6377f424d0) + QLayoutItem (0x0x7f6377f2e180) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 264u) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f6377f2e300) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QStackedWidget) +448 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=48 align=8 + base size=48 base align=8 +QStackedWidget (0x0x7f63780b3068) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16u) + QFrame (0x0x7f6377f5c000) 0 + primary-for QStackedWidget (0x0x7f63780b3068) + QWidget (0x0x7f6377f42e00) 0 + primary-for QFrame (0x0x7f6377f5c000) + QObject (0x0x7f6377f2e240) 0 + primary-for QWidget (0x0x7f6377f42e00) + QPaintDevice (0x0x7f6377f2e2a0) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 448u) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f6377f2e420) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=48 align=8 + base size=48 base align=8 +QStatusBar (0x0x7f6377f5c068) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16u) + QWidget (0x0x7f6377f714d0) 0 + primary-for QStatusBar (0x0x7f6377f5c068) + QObject (0x0x7f6377f2e360) 0 + primary-for QWidget (0x0x7f6377f714d0) + QPaintDevice (0x0x7f6377f2e3c0) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448u) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f6377f2e4e0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f6377f5c0d0) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16u) + QAbstractItemDelegate (0x0x7f6377f5c138) 0 + primary-for QStyledItemDelegate (0x0x7f6377f5c0d0) + QObject (0x0x7f6377f2e480) 0 + primary-for QAbstractItemDelegate (0x0x7f6377f5c138) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f6377f2e540) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f6377f5c1a0) 0 + QPainter (0x0x7f6377f2e5a0) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f6377f2e660) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f6377f5c270) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16u) + QObject (0x0x7f6377f2e600) 0 + primary-for QStylePlugin (0x0x7f6377f5c270) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f6377f2e720) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f6377f5c2d8) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16u) + QObject (0x0x7f6377f2e6c0) 0 + primary-for QSystemTrayIcon (0x0x7f6377f5c2d8) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f6377f2e840) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableView::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI10QTableView) +784 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +792 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=48 align=8 + base size=48 base align=8 +QTableView (0x0x7f6377f5c340) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16u) + QAbstractItemView (0x0x7f6377f5c3a8) 0 + primary-for QTableView (0x0x7f6377f5c340) + QAbstractScrollArea (0x0x7f6377f5c410) 0 + primary-for QAbstractItemView (0x0x7f6377f5c3a8) + QFrame (0x0x7f6377f5c478) 0 + primary-for QAbstractScrollArea (0x0x7f6377f5c410) + QWidget (0x0x7f6377bd2380) 0 + primary-for QFrame (0x0x7f6377f5c478) + QObject (0x0x7f6377f2e780) 0 + primary-for QWidget (0x0x7f6377bd2380) + QPaintDevice (0x0x7f6377f2e7e0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 784u) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f6377f2e8a0) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=48 align=8 + base size=44 base align=8 +QTableWidgetItem (0x0x7f6377f2e900) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16u) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f6377f2eb40) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 110u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableWidget::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))QTableWidget::mimeTypes +776 (int (*)(...))QTableWidget::mimeData +784 (int (*)(...))QTableWidget::dropMimeData +792 (int (*)(...))QTableWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI12QTableWidget) +816 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +824 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=48 align=8 + base size=48 base align=8 +QTableWidget (0x0x7f6377f5c5b0) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16u) + QTableView (0x0x7f6377f5c618) 0 + primary-for QTableWidget (0x0x7f6377f5c5b0) + QAbstractItemView (0x0x7f6377f5c680) 0 + primary-for QTableView (0x0x7f6377f5c618) + QAbstractScrollArea (0x0x7f6377f5c6e8) 0 + primary-for QAbstractItemView (0x0x7f6377f5c680) + QFrame (0x0x7f6377f5c750) 0 + primary-for QAbstractScrollArea (0x0x7f6377f5c6e8) + QWidget (0x0x7f6377c54bd0) 0 + primary-for QFrame (0x0x7f6377f5c750) + QObject (0x0x7f6377f2ea80) 0 + primary-for QWidget (0x0x7f6377c54bd0) + QPaintDevice (0x0x7f6377f2eae0) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 816u) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f6377f2ec60) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 78u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextBrowser::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))QTextBrowser::setSource +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))-16 +552 (int (*)(...))(& _ZTI12QTextBrowser) +560 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=48 align=8 + base size=48 base align=8 +QTextBrowser (0x0x7f6377f5c7b8) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16u) + QTextEdit (0x0x7f6377f5c820) 0 + primary-for QTextBrowser (0x0x7f6377f5c7b8) + QAbstractScrollArea (0x0x7f6377f5c888) 0 + primary-for QTextEdit (0x0x7f6377f5c820) + QFrame (0x0x7f6377f5c8f0) 0 + primary-for QAbstractScrollArea (0x0x7f6377f5c888) + QWidget (0x0x7f6377c8f930) 0 + primary-for QFrame (0x0x7f6377f5c8f0) + QObject (0x0x7f6377f2eba0) 0 + primary-for QWidget (0x0x7f6377c8f930) + QPaintDevice (0x0x7f6377f2ec00) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 560u) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f6377f2ed80) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QToolBar) +448 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=48 align=8 + base size=48 base align=8 +QToolBar (0x0x7f6377f5c958) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16u) + QWidget (0x0x7f6377caf000) 0 + primary-for QToolBar (0x0x7f6377f5c958) + QObject (0x0x7f6377f2ecc0) 0 + primary-for QWidget (0x0x7f6377caf000) + QPaintDevice (0x0x7f6377f2ed20) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 448u) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f6377f2eea0) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 66u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBox::itemInserted +440 (int (*)(...))QToolBox::itemRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI8QToolBox) +464 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=48 align=8 + base size=48 base align=8 +QToolBox (0x0x7f6377f5c9c0) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16u) + QFrame (0x0x7f6377f5ca28) 0 + primary-for QToolBox (0x0x7f6377f5c9c0) + QWidget (0x0x7f6377ce1380) 0 + primary-for QFrame (0x0x7f6377f5ca28) + QObject (0x0x7f6377f2ede0) 0 + primary-for QWidget (0x0x7f6377ce1380) + QPaintDevice (0x0x7f6377f2ee40) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 464u) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f6377d06000) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 67u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QToolButton) +472 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=48 align=8 + base size=48 base align=8 +QToolButton (0x0x7f6377f5ca90) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16u) + QAbstractButton (0x0x7f6377f5caf8) 0 + primary-for QToolButton (0x0x7f6377f5ca90) + QWidget (0x0x7f6377ce1d20) 0 + primary-for QAbstractButton (0x0x7f6377f5caf8) + QObject (0x0x7f6377f2ef00) 0 + primary-for QWidget (0x0x7f6377ce1d20) + QPaintDevice (0x0x7f6377f2ef60) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 472u) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f6377d06060) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f6377d06180) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 108u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeView::setModel +472 (int (*)(...))QTreeView::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QTreeView) +800 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +808 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=48 align=8 + base size=48 base align=8 +QTreeView (0x0x7f6377f5cb60) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16u) + QAbstractItemView (0x0x7f6377f5cbc8) 0 + primary-for QTreeView (0x0x7f6377f5cb60) + QAbstractScrollArea (0x0x7f6377f5cc30) 0 + primary-for QAbstractItemView (0x0x7f6377f5cbc8) + QFrame (0x0x7f6377f5cc98) 0 + primary-for QAbstractScrollArea (0x0x7f6377f5cc30) + QWidget (0x0x7f6377d07850) 0 + primary-for QFrame (0x0x7f6377f5cc98) + QObject (0x0x7f6377d060c0) 0 + primary-for QWidget (0x0x7f6377d07850) + QPaintDevice (0x0x7f6377d06120) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 800u) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f6377d061e0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=64 align=8 + base size=60 base align=8 +QTreeWidgetItem (0x0x7f6377d06420) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16u) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f638932a060) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 112u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeWidget::setModel +472 (int (*)(...))QTreeWidget::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))QTreeWidget::mimeTypes +792 (int (*)(...))QTreeWidget::mimeData +800 (int (*)(...))QTreeWidget::dropMimeData +808 (int (*)(...))QTreeWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QTreeWidget) +832 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +840 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=48 align=8 + base size=48 base align=8 +QTreeWidget (0x0x7f6383b86888) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16u) + QTreeView (0x0x7f6383b868f0) 0 + primary-for QTreeWidget (0x0x7f6383b86888) + QAbstractItemView (0x0x7f6383b86c98) 0 + primary-for QTreeView (0x0x7f6383b868f0) + QAbstractScrollArea (0x0x7f6383b86d00) 0 + primary-for QAbstractItemView (0x0x7f6383b86c98) + QFrame (0x0x7f6383b86ea0) 0 + primary-for QAbstractScrollArea (0x0x7f6383b86d00) + QWidget (0x0x7f6384af02a0) 0 + primary-for QFrame (0x0x7f6383b86ea0) + QObject (0x0x7f6389739600) 0 + primary-for QWidget (0x0x7f6384af02a0) + QPaintDevice (0x0x7f638932a000) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 832u) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f638932a120) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f6383b86f70) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16u) + QObject (0x0x7f638932a0c0) 0 + primary-for QUndoGroup (0x0x7f6383b86f70) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f638932a600) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16u) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f63884a6000) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f6383762068) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16u) + QObject (0x0x7f638932ad20) 0 + primary-for QUndoStack (0x0x7f6383762068) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f6384674900) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 106u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QUndoView) +784 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +792 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=48 align=8 + base size=48 base align=8 +QUndoView (0x0x7f6383762138) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16u) + QListView (0x0x7f6383762e38) 0 + primary-for QUndoView (0x0x7f6383762138) + QAbstractItemView (0x0x7f6382fa5d68) 0 + primary-for QListView (0x0x7f6383762e38) + QAbstractScrollArea (0x0x7f6382fa5dd0) 0 + primary-for QAbstractItemView (0x0x7f6382fa5d68) + QFrame (0x0x7f6382fa5e38) 0 + primary-for QAbstractScrollArea (0x0x7f6382fa5dd0) + QWidget (0x0x7f6384b4f070) 0 + primary-for QFrame (0x0x7f6382fa5e38) + QObject (0x0x7f63884a69c0) 0 + primary-for QWidget (0x0x7f6384b4f070) + QPaintDevice (0x0x7f63846748a0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 784u) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f6384674960) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f6383cdb660) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f6382fa5ea0) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16u) + QAction (0x0x7f6382fa5f08) 0 + primary-for QWidgetAction (0x0x7f6382fa5ea0) + QObject (0x0x7f6383cdb600) 0 + primary-for QAction (0x0x7f6382fa5f08) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f6381c50060) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=48 align=8 + base size=48 base align=8 +QWizard (0x0x7f6382fa5f70) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16u) + QDialog (0x0x7f638250e000) 0 + primary-for QWizard (0x0x7f6382fa5f70) + QWidget (0x0x7f6384b4ff50) 0 + primary-for QDialog (0x0x7f638250e000) + QObject (0x0x7f6381bdc6c0) 0 + primary-for QWidget (0x0x7f6384b4ff50) + QPaintDevice (0x0x7f6381bdc720) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520u) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f6381c50d80) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=48 align=8 + base size=48 base align=8 +QWizardPage (0x0x7f6381bcdaf8) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16u) + QWidget (0x0x7f6384bbe620) 0 + primary-for QWizardPage (0x0x7f6381bcdaf8) + QObject (0x0x7f6381c508a0) 0 + primary-for QWidget (0x0x7f6384bbe620) + QPaintDevice (0x0x7f6381c50960) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488u) + +Class QQuickWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QQuickWidget::QPrivateSignal (0x0x7f6381c75120) 0 empty + +Vtable for QQuickWidget +QQuickWidget::_ZTV12QQuickWidget: 64u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QQuickWidget) +16 (int (*)(...))QQuickWidget::metaObject +24 (int (*)(...))QQuickWidget::qt_metacast +32 (int (*)(...))QQuickWidget::qt_metacall +40 (int (*)(...))QQuickWidget::~QQuickWidget +48 (int (*)(...))QQuickWidget::~QQuickWidget +56 (int (*)(...))QQuickWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QQuickWidget::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QQuickWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QQuickWidget::mousePressEvent +176 (int (*)(...))QQuickWidget::mouseReleaseEvent +184 (int (*)(...))QQuickWidget::mouseDoubleClickEvent +192 (int (*)(...))QQuickWidget::mouseMoveEvent +200 (int (*)(...))QQuickWidget::wheelEvent +208 (int (*)(...))QQuickWidget::keyPressEvent +216 (int (*)(...))QQuickWidget::keyReleaseEvent +224 (int (*)(...))QQuickWidget::focusInEvent +232 (int (*)(...))QQuickWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QQuickWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QQuickWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QQuickWidget::dragEnterEvent +320 (int (*)(...))QQuickWidget::dragMoveEvent +328 (int (*)(...))QQuickWidget::dragLeaveEvent +336 (int (*)(...))QQuickWidget::dropEvent +344 (int (*)(...))QQuickWidget::showEvent +352 (int (*)(...))QQuickWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI12QQuickWidget) +448 (int (*)(...))QQuickWidget::_ZThn16_N12QQuickWidgetD1Ev +456 (int (*)(...))QQuickWidget::_ZThn16_N12QQuickWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QQuickWidget + size=48 align=8 + base size=48 base align=8 +QQuickWidget (0x0x7f6381c520d0) 0 + vptr=((& QQuickWidget::_ZTV12QQuickWidget) + 16u) + QWidget (0x0x7f6384bbecb0) 0 + primary-for QQuickWidget (0x0x7f6381c520d0) + QObject (0x0x7f6381c50de0) 0 + primary-for QWidget (0x0x7f6384bbecb0) + QPaintDevice (0x0x7f6381c750c0) 16 + vptr=((& QQuickWidget::_ZTV12QQuickWidget) + 448u) + -- cgit v1.2.3 From aaa8b16bbda4e18c6afce50d91d81bc5ee862f64 Mon Sep 17 00:00:00 2001 From: Frederik Schwarzer Date: Mon, 9 Jan 2017 16:42:59 +0100 Subject: Minor wording issues and typo fixes in docs Change-Id: I60af106607dca02fafc1df2d21d16053d64742b6 Reviewed-by: Leena Miettinen --- src/quick/doc/src/concepts/positioning/topic.qdoc | 2 +- src/quick/doc/src/concepts/visualcanvas/visualparent.qdoc | 2 +- src/quick/items/qquickitem.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quick/doc/src/concepts/positioning/topic.qdoc b/src/quick/doc/src/concepts/positioning/topic.qdoc index 92113ece54..b28acd1f89 100644 --- a/src/quick/doc/src/concepts/positioning/topic.qdoc +++ b/src/quick/doc/src/concepts/positioning/topic.qdoc @@ -112,7 +112,7 @@ them, and where possible, pristine Anchor layouts should be preferred. \section1 Anchors -Anchors allows an item to be placed either adjacent to or inside of another, +Anchors allow an item to be placed either adjacent to or inside of another, by attaching one or more of the item's anchor-points (boundaries) to an anchor-point of the other. These anchors will remain even if the dimensions or location of one of the items changes, allowing for highly dynamic diff --git a/src/quick/doc/src/concepts/visualcanvas/visualparent.qdoc b/src/quick/doc/src/concepts/visualcanvas/visualparent.qdoc index fd5bf51307..f971043b58 100644 --- a/src/quick/doc/src/concepts/visualcanvas/visualparent.qdoc +++ b/src/quick/doc/src/concepts/visualcanvas/visualparent.qdoc @@ -125,7 +125,7 @@ the blue rectangle and beneath any of the blue rectangle's children. Stacking order can be influenced with the \l Item::z property. Z values below 0 will stack below the parent, and if z values are assigned then siblings will stack in z-order (with creation order used to break ties). Z values only affect -stacking compared to siblings and the parent item. If you have an item who is obscured by a subtree rooted above its +stacking compared to siblings and the parent item. If you have an item which is obscured by a subtree rooted above its parent item, no z value on that item will increase its stacking order to stack above that subtree. To stack that item above the other subtree you'll have to alter z values farther up in the hierarchy, or re-arrange the visual item hierarchy. diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index cbfd776941..98dee17291 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3751,10 +3751,10 @@ QQuickItem::UpdatePaintNodeData::UpdatePaintNodeData() /*! This function is called when an item should release graphics - resources which are not already managed by the nodes returend from + resources which are not already managed by the nodes returned from QQuickItem::updatePaintNode(). - This happens when the item is about to be removed from window it + This happens when the item is about to be removed from the window it was previously rendering to. The item is guaranteed to have a \l {QQuickItem::window()}{window} when the function is called. -- cgit v1.2.3 From 6a2cf39758249d790f642d677c7bc7cad2a70eae Mon Sep 17 00:00:00 2001 From: Frederik Schwarzer Date: Thu, 5 Jan 2017 17:15:48 +0100 Subject: Finish sentence properly in documentation Change-Id: I9bdae64a2d1b38c0b3f1b7f4cf460b3466d45dad Reviewed-by: Leena Miettinen --- src/quick/doc/src/concepts/layouts/qtquicklayouts-overview.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quick/doc/src/concepts/layouts/qtquicklayouts-overview.qdoc b/src/quick/doc/src/concepts/layouts/qtquicklayouts-overview.qdoc index 20a6d131f5..e5834eb5c8 100644 --- a/src/quick/doc/src/concepts/layouts/qtquicklayouts-overview.qdoc +++ b/src/quick/doc/src/concepts/layouts/qtquicklayouts-overview.qdoc @@ -64,7 +64,7 @@ In addition to the above features, GridLayout adds these features: \list \li \l{Layout::row}{Grid coordinates} can be specified with the \l{Layout::row}{Layout.row} and - \l{Layout::column}{Layout.column}. + \l{Layout::column}{Layout.column} properties. \li \l{GridLayout::flow}{Automatic grid coordinates} used together with the \l{GridLayout::flow}{flow}, \l{GridLayout::rows}{rows}, and \l{GridLayout::columns}{columns} properties. -- cgit v1.2.3 From 7454ad3ce1895eae7409df28752739cc912abcac Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 15 Feb 2017 12:50:38 +0100 Subject: Shaders: Fix crash when disconnecting shaders from item properties The disconnect was done with a signal index local to the item, instead of 'global' to the item and all its parents. The index also had to be a method index, not a signal index. Together this resulted in a failing disconnect, which would keep SlotObjects alive with outdated data. Any subsequent use would result in a crash. Task-number: QTBUG-58336 Change-Id: I26b1868b2f8c61a4ffab1c72c85178632ca87599 Reviewed-by: Simon Hausmann --- src/quick/items/qquickopenglshadereffect.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/quick/items/qquickopenglshadereffect.cpp b/src/quick/items/qquickopenglshadereffect.cpp index b974641cca..c7b851d33e 100644 --- a/src/quick/items/qquickopenglshadereffect.cpp +++ b/src/quick/items/qquickopenglshadereffect.cpp @@ -256,10 +256,14 @@ void QQuickOpenGLShaderEffectCommon::connectPropertySignals(QQuickItem *item, qWarning("QQuickOpenGLShaderEffect: property '%s' does not have notification method!", d.name.constData()); } else { auto *mapper = signalMappers[shaderType].at(i); - mapper->setSignalIndex(pd->notifyIndex()); + mapper->setSignalIndex(itemMetaObject->property(d.propertyIndex).notifySignal().methodIndex()); Q_ASSERT(item->metaObject() == itemMetaObject); - QObjectPrivate::connectImpl(item, mapper->signalIndex(), item, nullptr, mapper, - Qt::AutoConnection, nullptr, itemMetaObject); + bool ok = QObjectPrivate::connectImpl(item, pd->notifyIndex(), item, nullptr, mapper, + Qt::AutoConnection, nullptr, itemMetaObject); + if (!ok) + qWarning() << "Failed to connect to property" << itemMetaObject->property(d.propertyIndex).name() + << "(" << d.propertyIndex << ", signal index" << pd->notifyIndex() + << ") of item" << item; } } else { // If the source is set via a dynamic property, like the layer is, then we need this -- cgit v1.2.3 From c934c5a2d2b32e7657ca1b79b1a70f96e1019f8a Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Mon, 20 Feb 2017 13:39:03 +0100 Subject: Fix build without features.cursor Change-Id: I20821e5fd4d2154aa49ef90015d512dd09c134f3 Reviewed-by: Simon Hausmann --- src/quick/items/qquickitem.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 98dee17291..021ca9b64b 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -2855,14 +2855,15 @@ void QQuickItemPrivate::addChild(QQuickItem *child) childItems.append(child); -#if QT_CONFIG(cursor) QQuickItemPrivate *childPrivate = QQuickItemPrivate::get(child); +#if QT_CONFIG(cursor) // if the added child has a cursor and we do not currently have any children // with cursors, bubble the notification up if (childPrivate->subtreeCursorEnabled && !subtreeCursorEnabled) setHasCursorInChild(true); #endif + if (childPrivate->subtreeHoverEnabled && !subtreeHoverEnabled) setHasHoverInChild(true); @@ -2883,13 +2884,14 @@ void QQuickItemPrivate::removeChild(QQuickItem *child) childItems.removeOne(child); Q_ASSERT(!childItems.contains(child)); -#if QT_CONFIG(cursor) QQuickItemPrivate *childPrivate = QQuickItemPrivate::get(child); +#if QT_CONFIG(cursor) // turn it off, if nothing else is using it if (childPrivate->subtreeCursorEnabled && subtreeCursorEnabled) setHasCursorInChild(false); #endif + if (childPrivate->subtreeHoverEnabled && subtreeHoverEnabled) setHasHoverInChild(false); -- cgit v1.2.3 From 9af4cb191d9f7372fc358ce033b75d49e000db45 Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Tue, 21 Feb 2017 10:32:56 +0100 Subject: Do not build qmlplugindump for -no-feature-regularexpression Change-Id: Iac046f56bbd477d4565ab138d9e236b2dce44162 Reviewed-by: Simon Hausmann --- tools/tools.pro | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/tools.pro b/tools/tools.pro index f3988a909a..d16888e539 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -15,8 +15,12 @@ SUBDIRS += \ !static: { SUBDIRS += \ qmlscene \ - qmlplugindump \ qmltime + + qtConfig(regularexpression) { + SUBDIRS += \ + qmlplugindump + } } qtHaveModule(widgets): SUBDIRS += qmleasing } -- cgit v1.2.3 From 9bca88ea414e68b34eb3f58238b30e47637ab5cc Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Fri, 17 Feb 2017 14:51:39 -0800 Subject: Flip a broken qtConfig condition This amends e0c119cc. Change-Id: I5be65d23e176198ec9d5420a7f6fe270a4573bc3 Reviewed-by: Oswald Buddenhagen --- tests/auto/qml/qml.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index 04e4b04114..7d182b7255 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -73,7 +73,7 @@ qtHaveModule(widgets) { SUBDIRS += $$PUBLICTESTS \ qqmlextensionplugin SUBDIRS += $$METATYPETESTS -!qtConfig(process) { +qtConfig(process) { !contains(QT_CONFIG, no-qml-debug): SUBDIRS += debugger SUBDIRS += qmllint qmlplugindump } -- cgit v1.2.3 From 74ba609f0e1a903ce516b56544916fbd06f5b7a6 Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Wed, 22 Feb 2017 13:04:22 +0100 Subject: Fix build for -no-feature-quick-sprite Change-Id: I864b436b7cb1e1fedb15555f53951987dc74012c Reviewed-by: Simon Hausmann --- src/imports/imports.pro | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/imports/imports.pro b/src/imports/imports.pro index c49c05956d..b030cbcf73 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -1,5 +1,7 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += quick-private + SUBDIRS += \ builtins \ qtqml \ @@ -17,7 +19,7 @@ qtHaveModule(quick) { window \ testlib - qtConfig(opengl(es1|es2)?): \ + qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ SUBDIRS += particles } -- cgit v1.2.3 From fe5d69669197a51662061b014810f0242eec5ca7 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Thu, 23 Feb 2017 15:11:13 +0100 Subject: Fix QQmlExpression leaking QQmlError objects If the user doesn't clear any potential errors manually via clearError(), then do it automatically in the destructor. Found with valgrind. [ChangeLog][QtQml][QQmlExpression] Fixed memory leak Change-Id: If5b1181850c7463c939a7ba536d74e7054c53d60 Reviewed-by: Simon Hausmann --- src/qml/qml/qqmlexpression.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qml/qml/qqmlexpression.cpp b/src/qml/qml/qqmlexpression.cpp index 94b1eaab52..adfa1c2674 100644 --- a/src/qml/qml/qqmlexpression.cpp +++ b/src/qml/qml/qqmlexpression.cpp @@ -202,6 +202,7 @@ QQmlExpression::QQmlExpression(QQmlContextData *ctxt, QObject *scope, */ QQmlExpression::~QQmlExpression() { + clearError(); } /*! -- cgit v1.2.3 From aa0e51beaba1a338db42391c575212b4aac815b1 Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Fri, 24 Feb 2017 09:50:25 +0100 Subject: Add feature.qml-profiler with extended build dependencies Change-Id: If165cea6f176e7a7066f50b73261baf97634a0bb Reviewed-by: Ulf Hermann --- src/qml/configure.json | 13 +++++++++++++ tools/tools.pro | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/qml/configure.json b/src/qml/configure.json index d22ba3b8f0..2c4887365f 100644 --- a/src/qml/configure.json +++ b/src/qml/configure.json @@ -22,6 +22,19 @@ "label": "QML network support", "purpose": "Provides network transparency for QML", "output": [ "publicFeature" ] + }, + "qml-profiler": { + "label": "Command line QML Profiler", + "purpose": "The QML Profiler retrieves QML tracing data from an application.", + "condition": [ + "features.commandlineparser", + "features.localserver", + "features.process", + "features.qml-debug", + "features.qml-network", + "features.xmlstreamwriter" + ], + "output": [ "privateFeature" ] } }, diff --git a/tools/tools.pro b/tools/tools.pro index d16888e539..a7fe0d983d 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -9,7 +9,7 @@ SUBDIRS += \ qml \ qmllint - qtConfig(qml-network):!contains(QT_CONFIG, no-qml-debug): SUBDIRS += qmlprofiler + qtConfig(qml-profiler): SUBDIRS += qmlprofiler qtHaveModule(quick) { !static: { -- cgit v1.2.3 From 4e6bd8456fb5b20239f7a2a8597edfa05dfc6071 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 15 Feb 2017 15:21:21 +0100 Subject: V4 JIT: Store the NaNEncodeMask in a register on 64bit When a callee saved register is available on 64bit platforms, put the Value::NaNEncodeMask in it. This saves one instruction for every load or store of doubles. Change-Id: I57262988610996e6a912e97d3026d4bb8ce26fe8 Reviewed-by: Simon Hausmann Reviewed-by: Qt CI Bot --- src/qml/jit/qv4assembler.cpp | 2 ++ src/qml/jit/qv4assembler_p.h | 23 ++++++++--------------- src/qml/jit/qv4targetplatform_p.h | 28 +++++++++++++++++++++++++--- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index a2cb56abbe..ad8a5823e2 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -356,6 +356,8 @@ void Assembler::enterStandardStackFrame(const RegisterInfor slotAddr.offset -= RegisterSize; storePtr(regularRegistersToSave.at(i).reg(), slotAddr); } + + platformFinishEnteringStandardStackFrame(this); } template diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index fd65c9b3d2..720c522e1d 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -387,32 +387,28 @@ struct RegisterSizeDependentAssemblerload64(addr, TargetPlatform::ReturnValueRegister); - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->move64ToDouble(TargetPlatform::ReturnValueRegister, dest); } static void storeDouble(JITAssembler *as, FPRegisterID source, Address addr) { as->moveDoubleTo64(source, TargetPlatform::ReturnValueRegister); - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->store64(TargetPlatform::ReturnValueRegister, addr); } static void storeDouble(JITAssembler *as, FPRegisterID source, IR::Expr* target) { as->moveDoubleTo64(source, TargetPlatform::ReturnValueRegister); - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); Pointer ptr = as->loadAddress(TargetPlatform::ScratchRegister, target); as->store64(TargetPlatform::ReturnValueRegister, ptr); } static void storeReturnValue(JITAssembler *as, FPRegisterID dest) { - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->move64ToDouble(TargetPlatform::ReturnValueRegister, dest); } @@ -427,16 +423,13 @@ struct RegisterSizeDependentAssemblertype == IR::DoubleType) { as->moveDoubleTo64((FPRegisterID) t->index, TargetPlatform::ReturnValueRegister); - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), - TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); } else if (t->type == IR::UInt32Type) { RegisterID srcReg = (RegisterID) t->index; Jump intRange = as->branch32(RelationalCondition::GreaterThanOrEqual, srcReg, TrustedImm32(0)); as->convertUInt32ToDouble(srcReg, TargetPlatform::FPGpr0, TargetPlatform::ReturnValueRegister); as->moveDoubleTo64(TargetPlatform::FPGpr0, TargetPlatform::ReturnValueRegister); - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); Jump done = as->jump(); intRange.link(as); as->zeroExtend32ToPtr(srcReg, TargetPlatform::ReturnValueRegister); @@ -611,8 +604,7 @@ struct RegisterSizeDependentAssemblerbranch32(RelationalCondition::GreaterThan, TargetPlatform::ScratchRegister, TrustedImm32(0)); // it's a double - as->move(TrustedImm64(QV4::Value::NaNEncodeMask), TargetPlatform::ScratchRegister); - as->xor64(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); + as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->move64ToDouble(TargetPlatform::ReturnValueRegister, TargetPlatform::FPGpr0); Jump success = as->branchTruncateDoubleToInt32(TargetPlatform::FPGpr0, TargetPlatform::ReturnValueRegister, @@ -718,6 +710,7 @@ public: using JITTargetPlatform::registerForArgument; using JITTargetPlatform::FPGpr0; using JITTargetPlatform::platformEnterStandardStackFrame; + using JITTargetPlatform::platformFinishEnteringStandardStackFrame; using JITTargetPlatform::platformLeaveStandardStackFrame; using RegisterSizeDependentOps = RegisterSizeDependentAssembler, MacroAssembler, JITTargetPlatform, RegisterSize>; diff --git a/src/qml/jit/qv4targetplatform_p.h b/src/qml/jit/qv4targetplatform_p.h index fcc600eb2e..d9f8034b1f 100644 --- a/src/qml/jit/qv4targetplatform_p.h +++ b/src/qml/jit/qv4targetplatform_p.h @@ -55,6 +55,7 @@ #if ENABLE(ASSEMBLER) +#include #include "qv4registerinfo_p.h" #include @@ -140,6 +141,7 @@ public: static const int StackShadowSpace = 0; static const int StackSpaceAllocatedUponFunctionEntry = RegisterSize; // Return address is pushed onto stack by the CPU. static void platformEnterStandardStackFrame(PlatformAssembler *as) { as->push(FramePointerRegister); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *) {} static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) @@ -194,6 +196,7 @@ public: static const RegisterID EngineRegister = JSC::X86Registers::r14; static const RegisterID ReturnValueRegister = JSC::X86Registers::eax; static const RegisterID ScratchRegister = JSC::X86Registers::r10; + static const RegisterID DoubleMaskRegister = JSC::X86Registers::r13; static const FPRegisterID FPGpr0 = JSC::X86Registers::xmm0; static const FPRegisterID FPGpr1 = JSC::X86Registers::xmm1; @@ -209,7 +212,7 @@ public: << RI(JSC::X86Registers::r8, QStringLiteral("r8"), RI::RegularRegister, RI::CallerSaved, RI::RegAlloc) // r11 is used as scratch register by the macro assembler << RI(JSC::X86Registers::r12, QStringLiteral("r12"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) - << RI(JSC::X86Registers::r13, QStringLiteral("r13"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) + << RI(JSC::X86Registers::r13, QStringLiteral("r13"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::X86Registers::r14, QStringLiteral("r14"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::X86Registers::r15, QStringLiteral("r15"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) << RI(JSC::X86Registers::xmm2, QStringLiteral("xmm2"), RI::FloatingPointRegister, RI::CallerSaved, RI::RegAlloc) @@ -244,6 +247,10 @@ public: static const int StackShadowSpace = 0; static const int StackSpaceAllocatedUponFunctionEntry = RegisterSize; // Return address is pushed onto stack by the CPU. static void platformEnterStandardStackFrame(PlatformAssembler *as) { as->push(FramePointerRegister); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *as) + { + as->move(PlatformAssembler::TrustedImm64(QV4::Value::NaNEncodeMask), DoubleMaskRegister); + } static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) @@ -274,6 +281,7 @@ public: static const RegisterID EngineRegister = JSC::X86Registers::r14; static const RegisterID ReturnValueRegister = JSC::X86Registers::eax; static const RegisterID ScratchRegister = JSC::X86Registers::r10; + static const RegisterID DoubleMaskRegister = JSC::X86Registers::r13; static const FPRegisterID FPGpr0 = JSC::X86Registers::xmm0; static const FPRegisterID FPGpr1 = JSC::X86Registers::xmm1; @@ -289,7 +297,7 @@ public: << RI(JSC::X86Registers::r9, QStringLiteral("r9"), RI::RegularRegister, RI::CallerSaved, RI::RegAlloc) // r11 is used as scratch register by the macro assembler << RI(JSC::X86Registers::r12, QStringLiteral("r12"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) - << RI(JSC::X86Registers::r13, QStringLiteral("r13"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) + << RI(JSC::X86Registers::r13, QStringLiteral("r13"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::X86Registers::r14, QStringLiteral("r14"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::X86Registers::r15, QStringLiteral("r15"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) << RI(JSC::X86Registers::xmm2, QStringLiteral("xmm2"), RI::FloatingPointRegister, RI::CallerSaved, RI::RegAlloc) @@ -322,6 +330,10 @@ public: static const int StackShadowSpace = 32; static const int StackSpaceAllocatedUponFunctionEntry = RegisterSize; // Return address is pushed onto stack by the CPU. static void platformEnterStandardStackFrame(PlatformAssembler *as) { as->push(FramePointerRegister); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *as) + { + as->move(PlatformAssembler::TrustedImm64(QV4::Value::NaNEncodeMask), DoubleMaskRegister); + } static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) @@ -440,6 +452,8 @@ public: as->push(FramePointerRegister); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *) {} + static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) { @@ -475,6 +489,7 @@ public: static const RegisterID ScratchRegister = JSC::ARM64Registers::x9; static const RegisterID EngineRegister = JSC::ARM64Registers::x27; static const RegisterID ReturnValueRegister = JSC::ARM64Registers::x0; + static const RegisterID DoubleMaskRegister = JSC::ARM64Registers::x26; static const FPRegisterID FPGpr0 = JSC::ARM64Registers::q0; static const FPRegisterID FPGpr1 = JSC::ARM64Registers::q1; @@ -505,7 +520,7 @@ public: << RI(JSC::ARM64Registers::x23, QStringLiteral("x23"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) << RI(JSC::ARM64Registers::x24, QStringLiteral("x24"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) << RI(JSC::ARM64Registers::x25, QStringLiteral("x25"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) - << RI(JSC::ARM64Registers::x26, QStringLiteral("x26"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) + << RI(JSC::ARM64Registers::x26, QStringLiteral("x26"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::ARM64Registers::x27, QStringLiteral("x27"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::ARM64Registers::x28, QStringLiteral("x28"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) @@ -572,6 +587,11 @@ public: as->pushPair(FramePointerRegister, JSC::ARM64Registers::lr); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *as) + { + as->move(PlatformAssembler::TrustedImm64(QV4::Value::NaNEncodeMask), DoubleMaskRegister); + } + static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) @@ -661,6 +681,8 @@ public: as->push(FramePointerRegister); } + static void platformFinishEnteringStandardStackFrame(PlatformAssembler *) {} + static void platformLeaveStandardStackFrame(PlatformAssembler *as, int frameSize) { if (frameSize > 0) -- cgit v1.2.3 From c4638def5c1e163fc895d3f7991fb0b4b5be9a6d Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 27 Feb 2017 10:05:42 +0100 Subject: Fix old QML compiler builds Do a private export of the IR loader as the code is in QtQml now. Change-Id: If98c38b84d60b2904752c2adb2f9beb5e5e6d774 Reviewed-by: Lars Knoll --- src/qml/compiler/qqmlirbuilder_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index 2022112e07..b579a963a1 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -622,7 +622,7 @@ private: int _importedScriptsTemp; }; -struct IRLoader { +struct Q_QML_PRIVATE_EXPORT IRLoader { IRLoader(const QV4::CompiledData::Unit *unit, QmlIR::Document *output); void load(); -- cgit v1.2.3 From 4f3cadfe6c966ab8b7c50bc69343589589f7291c Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Sat, 25 Feb 2017 13:49:36 +0100 Subject: Fix build for -no-feature-quick-shadereffect Change-Id: I334603209818a8030ddb5b5b316cab596c328bf1 Reviewed-by: Lars Knoll --- src/particles/particles.pri | 10 ++++++++-- src/particles/qquickparticlesmodule.cpp | 6 ++++++ src/quick/items/context2d/qquickcanvasitem.cpp | 1 + src/quick/items/context2d/qquickcontext2d.cpp | 2 ++ src/quick/items/qquickpainteditem_p.h | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/particles/particles.pri b/src/particles/particles.pri index af71634ec6..576d826903 100644 --- a/src/particles/particles.pri +++ b/src/particles/particles.pri @@ -1,6 +1,5 @@ HEADERS += \ $$PWD/qquickangledirection_p.h \ - $$PWD/qquickcustomparticle_p.h \ $$PWD/qquickcustomaffector_p.h \ $$PWD/qquickellipseextruder_p.h \ $$PWD/qquicktrailemitter_p.h \ @@ -33,7 +32,6 @@ HEADERS += \ SOURCES += \ $$PWD/qquickangledirection.cpp \ - $$PWD/qquickcustomparticle.cpp \ $$PWD/qquickcustomaffector.cpp \ $$PWD/qquickellipseextruder.cpp \ $$PWD/qquicktrailemitter.cpp \ @@ -63,6 +61,14 @@ SOURCES += \ $$PWD/qquickparticlegroup.cpp \ $$PWD/qquickgroupgoal.cpp +qtConfig(quick-shadereffect) { +HEADERS += \ + $$PWD/qquickcustomparticle_p.h + +SOURCES += \ + $$PWD/qquickcustomparticle.cpp +} + OTHER_FILES += \ $$PWD/shaders/customparticletemplate.vert \ $$PWD/shaders/customparticle.vert \ diff --git a/src/particles/qquickparticlesmodule.cpp b/src/particles/qquickparticlesmodule.cpp index accdb668de..03f47a3961 100644 --- a/src/particles/qquickparticlesmodule.cpp +++ b/src/particles/qquickparticlesmodule.cpp @@ -37,8 +37,12 @@ ** ****************************************************************************/ +#include + #include "qquickangledirection_p.h" +#if QT_CONFIG(quick_shadereffect) #include "qquickcustomparticle_p.h" +#endif #include "qquickellipseextruder_p.h" #include "qquicktrailemitter_p.h" #include "qquickfriction_p.h" @@ -84,7 +88,9 @@ void QQuickParticlesModule::defineModule() qmlRegisterType(uri, 2, 0, "ParticleGroup"); qmlRegisterType(uri, 2, 0, "ImageParticle"); +#if QT_CONFIG(quick_shadereffect) qmlRegisterType(uri, 2, 0, "CustomParticle"); +#endif qmlRegisterType(uri, 2, 0, "ItemParticle"); qmlRegisterType(uri, 2, 0, "Emitter"); diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 28e9173bf7..9dd72a40e3 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index bcaedd67b4..05bb3681d7 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -42,7 +42,9 @@ #include "qquickcanvasitem_p.h" #include #include +#if QT_CONFIG(quick_shadereffect) #include +#endif #include #include diff --git a/src/quick/items/qquickpainteditem_p.h b/src/quick/items/qquickpainteditem_p.h index 742e786335..3d2ec631fa 100644 --- a/src/quick/items/qquickpainteditem_p.h +++ b/src/quick/items/qquickpainteditem_p.h @@ -51,6 +51,7 @@ // We mean it. // +#include "qquickpainteditem.h" #include "qquickitem_p.h" #include -- cgit v1.2.3 From 5cd4c2ced4b153f365ececf3a7c0a4536fed9fac Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Fri, 24 Feb 2017 16:43:51 +0100 Subject: Fix build for -no-feature-quick-path Change-Id: Id57c9bc4421fc252ab02e2a0cfe00d08aef0176d Reviewed-by: Simon Hausmann Reviewed-by: Oswald Buddenhagen Reviewed-by: Ulf Hermann Reviewed-by: Laszlo Agocs --- src/quick/configure.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/quick/configure.json b/src/quick/configure.json index 4ed11e8318..e06cae8641 100644 --- a/src/quick/configure.json +++ b/src/quick/configure.json @@ -51,6 +51,7 @@ "quick-canvas": { "label": "Canvas item", "purpose": "Provides the Qt Quick Canvas Item", + "condition": "features.quick-path", "output": [ "privateFeature" ] -- cgit v1.2.3 From 4b949a2eb4e6ab245e8fc5214926c78eff4488da Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Fri, 24 Feb 2017 14:30:23 +0100 Subject: Doc: minor language corrections Change-Id: Ifa031002f4b67f575adebcde8b26d9332fffa8da Reviewed-by: Venugopal Shivashankar --- src/qml/types/qqmlobjectmodel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/types/qqmlobjectmodel.cpp b/src/qml/types/qqmlobjectmodel.cpp index 21205f4490..d926ecb6ce 100644 --- a/src/qml/types/qqmlobjectmodel.cpp +++ b/src/qml/types/qqmlobjectmodel.cpp @@ -178,8 +178,8 @@ public: \ingroup qtquick-models \brief Defines a set of items to be used as a model - A ObjectModel contains the visual items to be used in a view. - When a ObjectModel is used in a view, the view does not require + An ObjectModel contains the visual items to be used in a view. + When an ObjectModel is used in a view, the view does not require a delegate since the ObjectModel already contains the visual delegate (items). -- cgit v1.2.3 From 0f9b39909fb7023f7936b4311c13dbaa571ddbe6 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 28 Feb 2017 08:54:28 +0100 Subject: winrt: Fix application startup commit() was never implemented for the WinRT version of the OS Allocator. This commits fixes this under following setup - you have to use x86 or x64 - you have to use the experimental JIT For any of the other situations followup patches will follow. Task-number: QTBUG-59198 Change-Id: Ie87012ab2879139e27d63ac4bb96fe46905f7dfd Reviewed-by: Simon Hausmann --- src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp b/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp index 0a6eda8b98..15703017f6 100644 --- a/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp +++ b/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp @@ -98,16 +98,23 @@ void* OSAllocator::reserveAndCommit(size_t bytes, Usage usage, bool writable, bo return result; } -void OSAllocator::commit(void*, size_t, bool, bool) +void OSAllocator::commit(void *bytes, size_t size, bool writable, bool executable) { - CRASH(); // Unimplemented + if (qt_winrt_use_jit) { + void *result = VirtualAllocFromApp(bytes, size, MEM_COMMIT, + protection(writable, executable)); + if (!result) + CRASH(); + } } -void OSAllocator::decommit(void* address, size_t) +void OSAllocator::decommit(void* address, size_t bytes) { - if (qt_winrt_use_jit) - Q_UNREACHABLE(); - else + if (qt_winrt_use_jit) { + bool result = VirtualFree(address, bytes, MEM_DECOMMIT); + if (!result) + CRASH(); + } else _aligned_free(address); } -- cgit v1.2.3 From d1ae334077aeb948ca191e22231d20b54ea5f956 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 28 Feb 2017 10:04:11 +0100 Subject: winrt: Switch to always use VirtualAllocFromApp In latest versions of Windows, one can use VirtualAllocFromApp also without CodeGeneration flag being set. In conjunction with the new garbage collector that let to the situtation that the gc tried to reserve using VirtualAlloc, then the V4Engine constructor checked for JIT availability and disable JIT. This lead to VirtualAllocFromApp alloced memory could not be used anymore and caused to a crash latest when trying to commit or release. With WinRT 8.1 being removed, we do not need the mem_align version anymore and can stick with VirtualAllocFromApp/Free, with the JIT check only testing VirtualProtectFromApp. Task-number: QTBUG-59198 Change-Id: I57f2259c6a6298b8761d00d3abf2589c30de1f63 Reviewed-by: Simon Hausmann --- src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp | 74 +++++++++--------------------- 1 file changed, 22 insertions(+), 52 deletions(-) diff --git a/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp b/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp index 15703017f6..4cebc35cce 100644 --- a/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp +++ b/src/3rdparty/masm/wtf/OSAllocatorWinRT.cpp @@ -55,78 +55,48 @@ static inline DWORD protection(bool writable, bool executable) void* OSAllocator::reserveUncommitted(size_t bytes, Usage, bool writable, bool executable) { - void *result; - if (qt_winrt_use_jit) { - result = VirtualAllocFromApp(0, bytes, MEM_RESERVE, protection(writable, executable)); - if (!result) { - qt_winrt_use_jit = false; - return reserveUncommitted(bytes, UnknownUsage, writable, executable); - } - } else { - static const size_t pageSize = getPageSize(); - result = _aligned_malloc(bytes, pageSize); - if (!result) - CRASH(); - memset(result, 0, bytes); - } + void *result = VirtualAllocFromApp(0, bytes, MEM_RESERVE, protection(writable, executable)); return result; } -void* OSAllocator::reserveAndCommit(size_t bytes, Usage usage, bool writable, bool executable, bool includesGuardPages) +void* OSAllocator::reserveAndCommit(size_t bytes, Usage, bool writable, bool executable, bool includesGuardPages) { void *result; - if (qt_winrt_use_jit) { - result = VirtualAllocFromApp(0, bytes, MEM_RESERVE | MEM_COMMIT, - protection(writable, executable)); - if (!result) { - qt_winrt_use_jit = false; - return reserveAndCommit(bytes, usage, writable, executable, includesGuardPages); - } + result = VirtualAllocFromApp(0, bytes, MEM_RESERVE | MEM_COMMIT, + protection(writable, executable)); - if (includesGuardPages) { - size_t guardSize = pageSize(); - DWORD oldProtect; - if (!VirtualProtectFromApp(result, guardSize, protection(false, false), &oldProtect) || - !VirtualProtectFromApp(static_cast(result) + bytes - guardSize, guardSize, - protection(false, false), &oldProtect)) { - CRASH(); - } + if (includesGuardPages && qt_winrt_use_jit) { + size_t guardSize = pageSize(); + DWORD oldProtect; + if (!VirtualProtectFromApp(result, guardSize, protection(false, false), &oldProtect) || + !VirtualProtectFromApp(static_cast(result) + bytes - guardSize, guardSize, + protection(false, false), &oldProtect)) { + CRASH(); } - } else { - result = reserveUncommitted(bytes, usage, writable, executable); } return result; } void OSAllocator::commit(void *bytes, size_t size, bool writable, bool executable) { - if (qt_winrt_use_jit) { - void *result = VirtualAllocFromApp(bytes, size, MEM_COMMIT, - protection(writable, executable)); - if (!result) - CRASH(); - } + void *result = VirtualAllocFromApp(bytes, size, MEM_COMMIT, + protection(writable, executable)); + if (!result) + CRASH(); } void OSAllocator::decommit(void* address, size_t bytes) { - if (qt_winrt_use_jit) { - bool result = VirtualFree(address, bytes, MEM_DECOMMIT); - if (!result) - CRASH(); - } else - _aligned_free(address); + bool result = VirtualFree(address, bytes, MEM_DECOMMIT); + if (!result) + CRASH(); } -void OSAllocator::releaseDecommitted(void* address, size_t bytes) +void OSAllocator::releaseDecommitted(void* address, size_t) { - if (qt_winrt_use_jit) { - bool result = VirtualFree(address, 0, MEM_RELEASE); - if (!result) - CRASH(); - } else { - decommit(address, bytes); - } + bool result = VirtualFree(address, 0, MEM_RELEASE); + if (!result) + CRASH(); } bool OSAllocator::canAllocateExecutableMemory() -- cgit v1.2.3 From 16389a1f247f14965ed0286e4fdab6bc2b1621bc Mon Sep 17 00:00:00 2001 From: Michael Dippold Date: Wed, 22 Feb 2017 20:58:16 -0800 Subject: Ensure mouse ungrab is called when touch is also true Currently when removeGrabber is called with both mouse true and touch true, the touch logic blocks the ungrab mouse from being triggered as q->mouseGrabberItem() is then null. Task-number: QTBUG-57797 Task-number: QTBUG-59098 Change-Id: Icb4d00cf876c9fd0930b50f927f68dfba172dc29 Reviewed-by: Shawn Rutledge --- src/quick/items/qquickwindow.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index f90384b3b6..4dc8cd0a37 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -811,6 +811,10 @@ void QQuickWindowPrivate::grabTouchPoints(QQuickItem *grabber, const QVectormouseGrabberItem() == grabber) { + qCDebug(DBG_MOUSE_TARGET) << "removeGrabber" << q->mouseGrabberItem() << "-> null"; + setMouseGrabber(nullptr); + } if (Q_LIKELY(touch)) { const auto touchDevices = QQuickPointerDevice::touchDevices(); for (auto device : touchDevices) { @@ -824,10 +828,6 @@ void QQuickWindowPrivate::removeGrabber(QQuickItem *grabber, bool mouse, bool to } } } - if (Q_LIKELY(mouse) && q->mouseGrabberItem() == grabber) { - qCDebug(DBG_MOUSE_TARGET) << "removeGrabber" << q->mouseGrabberItem() << "-> null"; - setMouseGrabber(nullptr); - } } /*! -- cgit v1.2.3 From 8c864e52369ee4d55a1d9345215c8153144b5939 Mon Sep 17 00:00:00 2001 From: Jan Arve Saether Date: Fri, 13 Jan 2017 10:02:23 +0100 Subject: Add TouchMouse::implicitUngrab autotest Task-number: QTBUG-57797 Task-number: QTBUG-59098 Change-Id: I3bf9ad33c22cdbd82f3efbdbfc35f63371c04bed Reviewed-by: Shawn Rutledge --- tests/auto/quick/touchmouse/tst_touchmouse.cpp | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/auto/quick/touchmouse/tst_touchmouse.cpp b/tests/auto/quick/touchmouse/tst_touchmouse.cpp index 4f4fac8fa5..032e682137 100644 --- a/tests/auto/quick/touchmouse/tst_touchmouse.cpp +++ b/tests/auto/quick/touchmouse/tst_touchmouse.cpp @@ -172,6 +172,7 @@ private slots: void touchPointDeliveryOrder(); void hoverEnabled(); + void implicitUngrab(); protected: bool eventFilter(QObject *, QEvent *event) @@ -1414,6 +1415,37 @@ void tst_TouchMouse::hoverEnabled() QVERIFY(!mouseArea2->hovered()); } +void tst_TouchMouse::implicitUngrab() +{ + QScopedPointer window(createView()); + window->setSource(testFileUrl("singleitem.qml")); + window->show(); + QQuickViewTestUtil::centerOnScreen(window.data()); + QQuickViewTestUtil::moveMouseAway(window.data()); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + + QQuickItem *root = window->rootObject(); + QVERIFY(root != 0); + EventItem *eventItem = root->findChild("eventItem1"); + eventItem->acceptMouse = true; + QPoint p1(20, 20); + QTest::touchEvent(window.data(), device).press(0, p1); + + QCOMPARE(window->mouseGrabberItem(), eventItem); + eventItem->eventList.clear(); + eventItem->setEnabled(false); + QVERIFY(!eventItem->eventList.isEmpty()); + QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse); + QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state + + eventItem->setEnabled(true); + QTest::touchEvent(window.data(), device).press(0, p1); + eventItem->eventList.clear(); + eventItem->setVisible(false); + QVERIFY(!eventItem->eventList.isEmpty()); + QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse); + QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state +} QTEST_MAIN(tst_TouchMouse) #include "tst_touchmouse.moc" -- cgit v1.2.3 From 5a9fd4f49ec48c91c70699fc40af8f843c51b4ab Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 28 Feb 2017 15:55:39 +0100 Subject: V4 Debugger: Don't crash when stepping to the end of a script The last instruction is a return, which leads to an invalid context. Don't try to save that context, but rather clear the current one. Change-Id: I468b7420c4ca0842209c9b00478f99cc4dc69726 Reviewed-by: Simon Hausmann --- .../qmltooling/qmldbg_debugger/qv4debugger.cpp | 7 ++++- .../qml/debugger/qv4debugger/tst_qv4debugger.cpp | 30 +++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp index 5cc2043cb1..75cbc9eba1 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp @@ -230,7 +230,12 @@ void QV4Debugger::leavingFunction(const QV4::ReturnedValue &retVal) QMutexLocker locker(&m_lock); if (m_stepping != NotStepping && m_currentContext.asManaged()->d() == m_engine->current) { - m_currentContext.set(m_engine, *m_engine->parentContext(m_engine->currentContext)); + if (QV4::ExecutionContext *parentContext + = m_engine->parentContext(m_engine->currentContext)) { + m_currentContext.set(m_engine, *parentContext); + } else { + m_currentContext.clear(); + } m_stepping = StepOver; m_returnedValue.set(m_engine, retVal); } diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp index 6793596174..7668c8b016 100644 --- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp @@ -176,6 +176,7 @@ public: , m_captureContextInfo(false) , m_thrownValue(-1) , collector(engine) + , m_resumeSpeed(QV4Debugger::FullThrottle) , m_debugger(0) { } @@ -214,7 +215,7 @@ public slots: if (m_captureContextInfo) captureContextInfo(debugger); - debugger->resume(QV4Debugger::FullThrottle); + debugger->resume(m_resumeSpeed); } public: @@ -280,6 +281,7 @@ public: int context; }; QVector m_expressionRequests; + QV4Debugger::Speed m_resumeSpeed; QList m_expressionResults; QList m_expressionRefs; QV4Debugger *m_debugger; @@ -324,6 +326,7 @@ private slots: void breakInWith(); void evaluateExpression(); + void stepToEndOfScript(); private: QV4Debugger *debugger() const @@ -758,6 +761,31 @@ void tst_qv4debugger::evaluateExpression() } } +void tst_qv4debugger::stepToEndOfScript() +{ + QString script = + "var ret = 0;\n" + "ret += 4;\n" + "ret += 1;\n" + "ret += 5;\n"; + + debugger()->addBreakPoint("toEnd", 1); + m_debuggerAgent->m_resumeSpeed = QV4Debugger::StepOver; + evaluateJavaScript(script, "toEnd"); + QVERIFY(m_debuggerAgent->m_wasPaused); + QCOMPARE(m_debuggerAgent->m_pauseReason, QV4Debugger::Step); + QCOMPARE(m_debuggerAgent->m_statesWhenPaused.count(), 5); + for (int i = 0; i < 4; ++i) { + QV4Debugger::ExecutionState state = m_debuggerAgent->m_statesWhenPaused.at(i); + QCOMPARE(state.fileName, QString("toEnd")); + QCOMPARE(state.lineNumber, i + 1); + } + + QV4Debugger::ExecutionState state = m_debuggerAgent->m_statesWhenPaused.at(4); + QCOMPARE(state.fileName, QString("toEnd")); + QCOMPARE(state.lineNumber, -4); // A return instruction without proper line number. +} + QTEST_MAIN(tst_qv4debugger) #include "tst_qv4debugger.moc" -- cgit v1.2.3 From c67d33db5b4e78027181be492d4757ac786e5c1f Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 28 Feb 2017 15:07:42 +0100 Subject: Add a source location to the final Jump in a for loop Otherwise it will assume the last statement as the location of the jump, and that might be a statement that is never hit. Task-number: QTBUG-59204 Change-Id: I66019a284b061358939b23e649ca0832b5442388 Reviewed-by: hjk Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4codegen.cpp | 2 +- .../qml/debugger/qv4debugger/tst_qv4debugger.cpp | 26 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 8d0126ebb3..819f4615f2 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -2499,7 +2499,7 @@ bool Codegen::visit(LocalForStatement *ast) _block = forbody; statement(ast->statement); - _block->JUMP(forstep); + setLocation(_block->JUMP(forstep), ast->lastSourceLocation()); _block = forstep; statement(ast->expression); diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp index 7668c8b016..8362cb9ed6 100644 --- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp @@ -327,6 +327,7 @@ private slots: void evaluateExpression(); void stepToEndOfScript(); + void lastLineOfLoop(); private: QV4Debugger *debugger() const @@ -786,6 +787,31 @@ void tst_qv4debugger::stepToEndOfScript() QCOMPARE(state.lineNumber, -4); // A return instruction without proper line number. } +void tst_qv4debugger::lastLineOfLoop() +{ + QString script = + "var ret = 0;\n" + "for (var i = 0; i < 10; ++i) {\n" + " if (i == 2)\n" + " ret += 4;\n" // breakpoint, then step over + " else \n" + " ret += 1;\n" + "}\n"; // after step over + + debugger()->addBreakPoint("trueBranch", 4); + m_debuggerAgent->m_resumeSpeed = QV4Debugger::StepOver; + evaluateJavaScript(script, "trueBranch"); + QVERIFY(m_debuggerAgent->m_wasPaused); + QCOMPARE(m_debuggerAgent->m_pauseReason, QV4Debugger::Step); + QVERIFY(m_debuggerAgent->m_statesWhenPaused.count() > 1); + QV4Debugger::ExecutionState firstState = m_debuggerAgent->m_statesWhenPaused.first(); + QCOMPARE(firstState.fileName, QString("trueBranch")); + QCOMPARE(firstState.lineNumber, 4); + QV4Debugger::ExecutionState secondState = m_debuggerAgent->m_statesWhenPaused.at(1); + QCOMPARE(secondState.fileName, QString("trueBranch")); + QCOMPARE(secondState.lineNumber, 7); +} + QTEST_MAIN(tst_qv4debugger) #include "tst_qv4debugger.moc" -- cgit v1.2.3 From 9bd2705a2f02d1c54f179aa096142c151046c642 Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Mon, 27 Feb 2017 13:50:32 +0100 Subject: OpenVG: Fix glyph cache to actually ref count In my haste to add the code to cleanup unused glyphs I neglected to add the coded needed to ref count the glyphs. So glyphs that were being used more than once were getting removed too early. Change-Id: If3fa083313c345beac6705956067bee0932f7f60 Reviewed-by: Laszlo Agocs --- .../scenegraph/openvg/qsgopenvgfontglyphcache.cpp | 25 ++++++++++++---------- .../scenegraph/openvg/qsgopenvgfontglyphcache.h | 3 +-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.cpp b/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.cpp index dd630c776f..df47e920af 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.cpp +++ b/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.cpp @@ -94,7 +94,7 @@ void QSGOpenVGFontGlyphCache::populate(const QVector &glyphs) referencedGlyphs.insert(glyphIndex); - if (!m_cachedGlyphs.contains(glyphIndex)) { + if (!m_glyphReferences.contains(glyphIndex)) { newGlyphs.insert(glyphIndex); } } @@ -119,17 +119,9 @@ void QSGOpenVGFontGlyphCache::requestGlyphs(const QSet &glyphs) { VGfloat origin[2]; VGfloat escapement[2]; - QRectF metrics; QRawFont rawFont = m_referenceFont; - // Before adding any new glyphs, remove any unused glyphs - for (auto glyph : qAsConst(m_unusedGlyphs)) { - vgClearGlyph(m_font, glyph); - } - for (auto glyph : glyphs) { - m_cachedGlyphs.insert(glyph); - // Calculate the path for the glyph and cache it. QPainterPath path = rawFont.pathForGlyph(glyph); VGPath vgPath; @@ -151,12 +143,23 @@ void QSGOpenVGFontGlyphCache::requestGlyphs(const QSet &glyphs) void QSGOpenVGFontGlyphCache::referenceGlyphs(const QSet &glyphs) { - m_unusedGlyphs -= glyphs; + for (auto glyph : glyphs) { + if (m_glyphReferences.contains(glyph)) + m_glyphReferences[glyph] += 1; + else + m_glyphReferences.insert(glyph, 1); + } } void QSGOpenVGFontGlyphCache::releaseGlyphs(const QSet &glyphs) { - m_unusedGlyphs += glyphs; + for (auto glyph : glyphs) { + int references = m_glyphReferences[glyph] -= 1; + if (references == 0) { + vgClearGlyph(m_font, glyph); + m_glyphReferences.remove(glyph); + } + } } QT_END_NAMESPACE diff --git a/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.h b/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.h index a88d28b0fe..107ec0c892 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.h +++ b/src/plugins/scenegraph/openvg/qsgopenvgfontglyphcache.h @@ -87,8 +87,7 @@ private: int m_glyphCount; VGFont m_font; - QSet m_cachedGlyphs; - QSet m_unusedGlyphs; + QHash m_glyphReferences; }; -- cgit v1.2.3 From 55fec6b2db17db43fc7d03ef5d482cc67b16543b Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Mon, 27 Feb 2017 16:45:44 +0100 Subject: Software: Flush whole window on Expose event The software render loop updates the window content via either an expose event or an update event. An expose event should always flush the entire backingstore, but previously only the newly updated region would be flushed. The first time a window is exposed this is fine because the whole scene would be rendered, but when hidden and shown again, the software renderer might show that nothing has changed, and nothing would be flushed. A new flag has been added that forces a full window flush for an expose event. Task-number: QTBUG-59177 Change-Id: I3700bbcc76bc97be4eb0c822e2945ebef339f11a Reviewed-by: Laszlo Agocs --- .../scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp | 9 ++++++--- .../scenegraph/adaptations/software/qsgsoftwarerenderloop_p.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp index 6856d34616..b3b8274a73 100644 --- a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp +++ b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp @@ -101,7 +101,7 @@ void QSGSoftwareRenderLoop::windowDestroyed(QQuickWindow *window) } } -void QSGSoftwareRenderLoop::renderWindow(QQuickWindow *window) +void QSGSoftwareRenderLoop::renderWindow(QQuickWindow *window, bool isNewExpose) { QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); if (!m_windows.contains(window)) @@ -174,7 +174,10 @@ void QSGSoftwareRenderLoop::renderWindow(QQuickWindow *window) if (alsoSwap && window->isVisible()) { //Flush backingstore to window - m_backingStores[window]->flush(softwareRenderer->flushRegion()); + if (!isNewExpose) + m_backingStores[window]->flush(softwareRenderer->flushRegion()); + else + m_backingStores[window]->flush(QRegion(QRect(QPoint(0,0), window->size()))); cd->fireFrameSwapped(); } @@ -206,7 +209,7 @@ void QSGSoftwareRenderLoop::exposureChanged(QQuickWindow *window) { if (window->isExposed()) { m_windows[window].updatePending = true; - renderWindow(window); + renderWindow(window, true); } } diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop_p.h b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop_p.h index 02dcf4eefa..c724d18298 100644 --- a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop_p.h +++ b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop_p.h @@ -69,7 +69,7 @@ public: void windowDestroyed(QQuickWindow *window) override; - void renderWindow(QQuickWindow *window); + void renderWindow(QQuickWindow *window, bool isNewExpose = false); void exposureChanged(QQuickWindow *window) override; QImage grab(QQuickWindow *window) override; -- cgit v1.2.3 From 59c94123e3661274d14f69c3df71fae9325b7eea Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Tue, 28 Feb 2017 15:39:25 +0100 Subject: Fix memory leak in QQDMIncubationTask::statusChanged Mimic the same process we do in QQmlDelegateModelPrivate::incubatorStatusChanged i.e. there's no need to check for object before destroying contextData Change-Id: I8cb1cda6da43bada350183ae11ee9b85b7fffee5 Reviewed-by: Simon Hausmann --- src/qml/types/qqmldelegatemodel.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index a5878dcffd..34bc266cb5 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -837,10 +837,9 @@ void QQDMIncubationTask::statusChanged(Status status) } else if (isDoneIncubating(status)) { Q_ASSERT(incubating); // The model was deleted from under our feet, cleanup ourselves - if (incubating->object) { - delete incubating->object; - - incubating->object = 0; + delete incubating->object; + incubating->object = 0; + if (incubating->contextData) { incubating->contextData->destroy(); incubating->contextData = 0; } -- cgit v1.2.3 From 015dff255ff0f40c553b1dee43c6cff013df64eb Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Wed, 1 Mar 2017 14:12:57 +0100 Subject: Privately export QQuickPositionerAttached This was missed in 2556bfda. Change-Id: I088d3e36a64b4459d2376ae38796e743c783260d Reviewed-by: J-P Nurmi --- src/quick/items/qquickpositioners_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quick/items/qquickpositioners_p.h b/src/quick/items/qquickpositioners_p.h index 8dc0d90a2f..cfe163b4c1 100644 --- a/src/quick/items/qquickpositioners_p.h +++ b/src/quick/items/qquickpositioners_p.h @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE class QQuickBasePositionerPrivate; -class QQuickPositionerAttached : public QObject +class Q_QUICK_PRIVATE_EXPORT QQuickPositionerAttached : public QObject { Q_OBJECT -- cgit v1.2.3 From 71a2dbed467be0041b6793dda868655b2632e830 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Thu, 5 Jan 2017 16:16:43 +0100 Subject: When stealing a touchpoint as synth. mouse, ungrab touch If you use MultiPointTouchArea to make a button component, or if you do something similar by subclassing QQuickItem and handling touch events, and you place such a component inside a Flickable, when the user presses on the button and then drags far enough that the Flickable steals the grab, the MPTA or custom item did not receive the touchUngrabEvent() callback. Now it does, so now the button will go back to released state as a result of having the grab stolen. The situation here is special in that it's the only place where a touch event is transformed to be treated as mouse in the future, usually it's either treated as touch or mouse from the start. When this happens, it's not enough to call setMouseGrabber because that doesn't send touch cancel to the previous grabber. Instead we need to explicitly call touchUngrabEvent to notify the touch handling item. The explicit setting of the grabber which was there previously is not needed, since grabMouse will update the grab based on touchMouseId. tst_QQuickMultiPointTouchArea::inFlickable2 was already testing the pressed state of the touchpoint when the grab is stolen, but it was changed in 468626e99a90d6ac21cb311cde05c658ccb3b781; now that can be restored, and we can also un-blacklist inFlickable, which was deemed unstable in 6d163779711d4601931ae0f82910794fb2498136 [ChangeLog][QtQuick] MultiPointTouchArea, and any custom Item, will now properly receive touchUngrabEvent() when the touch grab is stolen by a filtering parent Item, such as a Flickable. Task-number: QTBUG-57910 Change-Id: I4e1b23ed099f01e7eca2e8a0e7ab4c652ef00cfa Reviewed-by: Frederik Gladhorn Reviewed-by: Shawn Rutledge --- src/quick/items/qquickwindow.cpp | 9 ++- .../auto/quick/qquickmultipointtoucharea/BLACKLIST | 2 - .../tst_qquickmultipointtoucharea.cpp | 2 +- tests/auto/quick/touchmouse/tst_touchmouse.cpp | 76 ++++++++++++++++++++-- 4 files changed, 80 insertions(+), 9 deletions(-) delete mode 100644 tests/auto/quick/qquickmultipointtoucharea/BLACKLIST diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 4dc8cd0a37..340683f6c3 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2593,9 +2593,14 @@ bool QQuickWindowPrivate::sendFilteredTouchEvent(QQuickItem *target, QQuickItem qCDebug(DBG_TOUCH) << " - second chance intercepted on childMouseEventFilter by " << target; if (t != QEvent::MouseButtonRelease) { qCDebug(DBG_TOUCH_TARGET) << "TP" << tp.id() << "->" << target; - touchMouseId = tp.id(); touchMouseDevice = event->device(); - touchMouseDevice->pointerEvent()->pointById(tp.id())->setGrabber(target); + if (touchMouseId == -1) { + // the point was grabbed as a pure touch point before, now it will be treated as mouse + // but the old receiver still needs to be informed + if (auto oldGrabber = touchMouseDevice->pointerEvent()->pointById(tp.id())->grabber()) + oldGrabber->touchUngrabEvent(); + } + touchMouseId = tp.id(); target->grabMouse(); } filtered = true; diff --git a/tests/auto/quick/qquickmultipointtoucharea/BLACKLIST b/tests/auto/quick/qquickmultipointtoucharea/BLACKLIST deleted file mode 100644 index 1777af9e0c..0000000000 --- a/tests/auto/quick/qquickmultipointtoucharea/BLACKLIST +++ /dev/null @@ -1,2 +0,0 @@ -[inFlickable] -* diff --git a/tests/auto/quick/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp b/tests/auto/quick/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp index 2872556a94..87acd67f6a 100644 --- a/tests/auto/quick/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp +++ b/tests/auto/quick/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp @@ -800,7 +800,7 @@ void tst_QQuickMultiPointTouchArea::inFlickable2() QVERIFY(flickable->contentY() < 0); QVERIFY(flickable->isMoving()); - QCOMPARE(point11->pressed(), true); + QCOMPARE(point11->pressed(), false); QTest::touchEvent(window.data(), device).release(0, p1); QQuickTouchUtils::flush(window.data()); diff --git a/tests/auto/quick/touchmouse/tst_touchmouse.cpp b/tests/auto/quick/touchmouse/tst_touchmouse.cpp index 032e682137..671cefd6f5 100644 --- a/tests/auto/quick/touchmouse/tst_touchmouse.cpp +++ b/tests/auto/quick/touchmouse/tst_touchmouse.cpp @@ -71,7 +71,7 @@ Q_SIGNALS: public: EventItem(QQuickItem *parent = 0) - : QQuickItem(parent), acceptMouse(false), acceptTouch(false), filterTouch(false), point0(-1) + : QQuickItem(parent), touchUngrabCount(0), acceptMouse(false), acceptTouch(false), filterTouch(false), point0(-1) { setAcceptedMouseButtons(Qt::LeftButton); } @@ -111,11 +111,17 @@ public: eventList.append(Event(QEvent::UngrabMouse, QPoint(0,0), QPoint(0,0))); } + void touchUngrabEvent() + { + ++touchUngrabCount; + } + bool event(QEvent *event) { return QQuickItem::event(event); } QList eventList; + int touchUngrabCount; bool acceptMouse; bool acceptTouch; bool filterTouch; // when used as event filter @@ -158,6 +164,7 @@ private slots: void mouseOverTouch(); void buttonOnFlickable(); + void touchButtonOnFlickable(); void buttonOnDelayedPressFlickable_data(); void buttonOnDelayedPressFlickable(); void buttonOnTouch(); @@ -568,9 +575,10 @@ void tst_TouchMouse::buttonOnFlickable() QCOMPARE(pointerEvent->point(0)->grabber(), eventItem1); QCOMPARE(window->mouseGrabberItem(), eventItem1); - p1 += QPoint(0, -10); - QPoint p2 = p1 + QPoint(0, -10); - QPoint p3 = p2 + QPoint(0, -10); + int dragDelta = -qApp->styleHints()->startDragDistance(); + p1 += QPoint(0, dragDelta); + QPoint p2 = p1 + QPoint(0, dragDelta); + QPoint p3 = p2 + QPoint(0, dragDelta); QQuickTouchUtils::flush(window.data()); QTest::touchEvent(window.data(), device).move(0, p1, window.data()); QQuickTouchUtils::flush(window.data()); @@ -593,6 +601,66 @@ void tst_TouchMouse::buttonOnFlickable() QQuickTouchUtils::flush(window.data()); } +void tst_TouchMouse::touchButtonOnFlickable() +{ + // flickable - height 500 / 1000 + // - eventItem1 y: 100, height 100 + // - eventItem2 y: 300, height 100 + + QScopedPointer window(createView()); + window->setSource(testFileUrl("buttononflickable.qml")); + window->show(); + QQuickViewTestUtil::centerOnScreen(window.data()); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + QVERIFY(window->rootObject() != 0); + + QQuickFlickable *flickable = window->rootObject()->findChild("flickable"); + QVERIFY(flickable); + + EventItem *eventItem2 = window->rootObject()->findChild("eventItem2"); + QVERIFY(eventItem2); + QCOMPARE(eventItem2->eventList.size(), 0); + eventItem2->acceptTouch = true; + + // press via touch, then drag: check that flickable moves and that the button gets ungrabbed + QCOMPARE(eventItem2->eventList.size(), 0); + QPoint p1 = QPoint(10, 310); + QTest::touchEvent(window.data(), device).press(0, p1, window.data()); + QQuickTouchUtils::flush(window.data()); + QCOMPARE(eventItem2->eventList.size(), 1); + QCOMPARE(eventItem2->eventList.at(0).type, QEvent::TouchBegin); + + QQuickWindowPrivate *windowPriv = QQuickWindowPrivate::get(window.data()); + QVERIFY(windowPriv->touchMouseId == -1); + auto pointerEvent = QQuickPointerDevice::touchDevices().at(0)->pointerEvent(); + QCOMPARE(pointerEvent->point(0)->grabber(), eventItem2); + QCOMPARE(window->mouseGrabberItem(), nullptr); + + int dragDelta = qApp->styleHints()->startDragDistance() * -0.7; + p1 += QPoint(0, dragDelta); + QPoint p2 = p1 + QPoint(0, dragDelta); + QPoint p3 = p2 + QPoint(0, dragDelta); + + QQuickTouchUtils::flush(window.data()); + QTest::touchEvent(window.data(), device).move(0, p1, window.data()); + QQuickTouchUtils::flush(window.data()); + QTest::touchEvent(window.data(), device).move(0, p2, window.data()); + QQuickTouchUtils::flush(window.data()); + QTest::touchEvent(window.data(), device).move(0, p3, window.data()); + QQuickTouchUtils::flush(window.data()); + + QVERIFY(eventItem2->eventList.size() > 2); + QCOMPARE(eventItem2->eventList.at(1).type, QEvent::TouchUpdate); + QCOMPARE(eventItem2->touchUngrabCount, 1); + QCOMPARE(window->mouseGrabberItem(), flickable); + QVERIFY(windowPriv->touchMouseId != -1); + QCOMPARE(pointerEvent->point(0)->grabber(), flickable); + QVERIFY(flickable->isMovingVertically()); + + QTest::touchEvent(window.data(), device).release(0, p3, window.data()); + QQuickTouchUtils::flush(window.data()); +} + void tst_TouchMouse::buttonOnDelayedPressFlickable_data() { QTest::addColumn("scrollBeforeDelayIsOver"); -- cgit v1.2.3 From 408620ea99606f8b27ebf237fa3800e40e2c9cd3 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 2 Mar 2017 11:41:47 +0100 Subject: Fix building with -no-feature-process Drop an unused include, don't try to build qmlplugindump in this case, and add some guards around QProcess includes and usages. Change-Id: I6ce5985a8dd1967f146016a7acd1ea31fb3bda2a Reviewed-by: Simon Hausmann --- tests/auto/qml/qmlmin/tst_qmlmin.cpp | 8 +++++--- .../auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp | 2 ++ tests/auto/quick/examples/tst_examples.cpp | 1 - tools/tools.pro | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/auto/qml/qmlmin/tst_qmlmin.cpp b/tests/auto/qml/qmlmin/tst_qmlmin.cpp index 3ed0aa7446..90868d2ead 100644 --- a/tests/auto/qml/qmlmin/tst_qmlmin.cpp +++ b/tests/auto/qml/qmlmin/tst_qmlmin.cpp @@ -29,7 +29,9 @@ #include #include #include +#if QT_CONFIG(process) #include +#endif #include #include #include @@ -42,7 +44,7 @@ public: private slots: void initTestCase(); -#if !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled +#if QT_CONFIG(process) && !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled void qmlMinify_data(); void qmlMinify(); #endif @@ -166,7 +168,7 @@ Examples are any .qml files under the examples/ directory that start with a lower case letter. */ -#if !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled +#if QT_CONFIG(process) && !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled void tst_qmlmin::qmlMinify_data() { QTest::addColumn("file"); @@ -183,7 +185,7 @@ void tst_qmlmin::qmlMinify_data() } #endif -#if !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled +#if QT_CONFIG(process) && !defined(QTEST_CROSS_COMPILED) // sources not available when cross compiled void tst_qmlmin::qmlMinify() { QFETCH(QString, file); diff --git a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp index 98b92e5fab..f2754d636b 100644 --- a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp +++ b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp @@ -29,7 +29,9 @@ #include "../../shared/util.h" #include #include +#if QT_CONFIG(process) #include +#endif #include class tst_qqmlapplicationengine : public QQmlDataTest diff --git a/tests/auto/quick/examples/tst_examples.cpp b/tests/auto/quick/examples/tst_examples.cpp index 1ca809c05f..ffb7fb5789 100644 --- a/tests/auto/quick/examples/tst_examples.cpp +++ b/tests/auto/quick/examples/tst_examples.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/tools/tools.pro b/tools/tools.pro index a7fe0d983d..85556301a4 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -17,7 +17,7 @@ SUBDIRS += \ qmlscene \ qmltime - qtConfig(regularexpression) { + qtConfig(regularexpression):qtConfig(process) { SUBDIRS += \ qmlplugindump } -- cgit v1.2.3 From 60708ee6227df017269146d2c0cfd4238ec25b9f Mon Sep 17 00:00:00 2001 From: Jesus Fernandez Date: Thu, 2 Mar 2017 12:10:00 +0100 Subject: Fix build in clang5.0 Fixes: X86Assembler.h:281:19: error: 'm_assembler' is a protected member of 'JSC::AbstractMacroAssembler' masm->m_assembler.linkJump(m_label, masm->m_assembler.label()); AbstractMacroAssembler.h:819:19: note: declared protected here AssemblerType m_assembler; Change-Id: I04f6dc254e9826b9835a43b604a05ea4c57f661b Reviewed-by: Simon Hausmann --- src/3rdparty/masm/assembler/X86Assembler.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/3rdparty/masm/assembler/X86Assembler.h b/src/3rdparty/masm/assembler/X86Assembler.h index 24462ef38f..46f2cd714a 100644 --- a/src/3rdparty/masm/assembler/X86Assembler.h +++ b/src/3rdparty/masm/assembler/X86Assembler.h @@ -253,6 +253,7 @@ public: { } +#if defined(V4_BOOTSTRAP) template class Jump { template @@ -291,6 +292,7 @@ public: private: AssemblerLabel m_label; }; +#endif // Stack operations: -- cgit v1.2.3 From 201d9f1c62516542d4558f0d2b07542e1082b497 Mon Sep 17 00:00:00 2001 From: Kimmo Ollila Date: Fri, 3 Mar 2017 00:59:47 +0200 Subject: Allow import static plugins even when library feature is disabled Removing QT_CONFIG(library) checks around static plugin handling code Change-Id: I5408d0fee2f58b27372c59004351f37ee8f566b9 Reviewed-by: Ulf Hermann --- src/qml/qml/qqmlimport.cpp | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp index c07d5c740a..ee5b38717b 100644 --- a/src/qml/qml/qqmlimport.cpp +++ b/src/qml/qml/qqmlimport.cpp @@ -210,7 +210,6 @@ QQmlType *fetchOrCreateTypeForUrl(const QString &urlString, const QHashedStringR } // namespace -#if QT_CONFIG(library) struct RegisteredPlugin { QString uri; QPluginLoader* loader; @@ -221,21 +220,23 @@ struct StringRegisteredPluginMap : public QMap { }; Q_GLOBAL_STATIC(StringRegisteredPluginMap, qmlEnginePluginsWithRegisteredTypes); // stores the uri and the PluginLoaders + void qmlClearEnginePlugins() { StringRegisteredPluginMap *plugins = qmlEnginePluginsWithRegisteredTypes(); QMutexLocker lock(&plugins->mutex); +#if QT_CONFIG(library) for (auto &plugin : qAsConst(*plugins)) { QPluginLoader* loader = plugin.loader; if (loader && !loader->unload()) qWarning("Unloading %s failed: %s", qPrintable(plugin.uri), qPrintable(loader->errorString())); delete loader; } +#endif plugins->clear(); } typedef QPair StaticPluginPair; -#endif /*! \internal @@ -332,10 +333,9 @@ public: const QString &uri, const QString &url, int vmaj, int vmin, QV4::CompiledData::Import::ImportType type, QList *errors, bool lowPrecedence = false); -#if QT_CONFIG(library) - bool populatePluginPairVector(QVector &result, const QString &uri, const QStringList &versionUris, + + bool populatePluginPairVector(QVector &result, const QString &uri, const QStringList &versionUris, const QString &qmldirPath, QList *errors); -#endif }; /*! @@ -959,7 +959,6 @@ static QStringList versionUriList(const QString &uri, int vmaj, int vmin) return result; } -#if QT_CONFIG(library) static QVector makePlugins() { QVector plugins; @@ -1009,7 +1008,6 @@ bool QQmlImportsPrivate::populatePluginPairVector(QVector &res } return true; } -#endif #if defined(QT_SHARED) || !QT_CONFIG(library) static inline QString msgCannotLoadPlugin(const QString &uri, const QString &why) @@ -1030,7 +1028,6 @@ bool QQmlImportsPrivate::importExtension(const QString &qmldirFilePath, const QQmlTypeLoaderQmldirContent *qmldir, QList *errors) { -#if QT_CONFIG(library) Q_ASSERT(qmldir); if (qmlImportTrace()) @@ -1143,22 +1140,6 @@ bool QQmlImportsPrivate::importExtension(const QString &qmldirFilePath, database->qmlDirFilesForWhichPluginsHaveBeenLoaded.insert(qmldirFilePath); } - -#else - Q_UNUSED(vmaj); - Q_UNUSED(vmin); - Q_UNUSED(database); - Q_UNUSED(qmldir); - - if (errors) { - QQmlError error; - error.setDescription(msgCannotLoadPlugin(uri, QQmlImportDatabase::tr("library loading is disabled"))); - error.setUrl(QUrl::fromLocalFile(qmldirFilePath)); - errors->prepend(error); - } - - return false; -#endif // library return true; } @@ -2014,7 +1995,6 @@ bool QQmlImportDatabase::registerPluginTypes(QObject *instance, const QString &b bool QQmlImportDatabase::importStaticPlugin(QObject *instance, const QString &basePath, const QString &uri, const QString &typeNamespace, int vmaj, QList *errors) { -#if QT_CONFIG(library) // Dynamic plugins are differentiated by their filepath. For static plugins we // don't have that information so we use their address as key instead. const QString uniquePluginID = QString::asprintf("%p", instance); @@ -2050,15 +2030,6 @@ bool QQmlImportDatabase::importStaticPlugin(QObject *instance, const QString &ba } return true; -#else - Q_UNUSED(instance); - Q_UNUSED(basePath); - Q_UNUSED(uri); - Q_UNUSED(typeNamespace); - Q_UNUSED(vmaj); - Q_UNUSED(errors); - return false; -#endif } /*! -- cgit v1.2.3 From 05a88efb266ec3b7b16d6db0d971c21ae7f45c9d Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 27 Feb 2017 15:17:35 +0100 Subject: QQuickAnimatorProxyJob: make sure to stop when detached from a window Qt Quick Controls 2 StackView auto tests exposed an issue that animator proxy jobs keep ticking after being unassociated from a window. Change-Id: Ib9b3a0e02ac4cc3f3e98ddf05c8b01f0bbd614d3 Reviewed-by: Gunnar Sletta --- src/quick/util/qquickanimatorjob.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 4aacb09c97..dced8b49a9 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -140,6 +140,11 @@ QObject *QQuickAnimatorProxyJob::findAnimationContext(QQuickAbstractAnimation *a void QQuickAnimatorProxyJob::updateCurrentTime(int) { + // A proxy which is being ticked should be associated with a window, (see + // setWindow() below). If we get here when there is no more controller we + // have a problem. + Q_ASSERT(m_controller); + // We do a simple check here to see if the animator has run and stopped on // the render thread. isPendingStart() will perform a check against jobs // that have been scheduled for start, but that will not yet have entered @@ -167,9 +172,9 @@ void QQuickAnimatorProxyJob::updateState(QAbstractAnimationJob::State newState, } } else if (newState == Stopped) { - syncBackCurrentValues(); m_internalState = State_Stopped; if (m_controller) { + syncBackCurrentValues(); m_controller->cancel(m_job); } } @@ -193,6 +198,7 @@ void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window) if (m_job && m_controller) m_controller->cancel(m_job); m_controller = nullptr; + stop(); } else if (!m_controller && m_job) { m_controller = QQuickWindowPrivate::get(window)->animationController; -- cgit v1.2.3 From 13335bdee5482ae04d5b0d4c933ca328a1100cb6 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 6 Mar 2017 13:49:42 +0100 Subject: Fix build with -no-feature-library The versionUriList() function is unused in this case, and we cannot build the extension plugins test. Change-Id: I6c2ea1c2d078e508b0752efb45f4ccdfdbcbf22e Reviewed-by: Simon Hausmann --- src/qml/qml/qqmlimport.cpp | 2 +- tests/auto/qml/qml.pro | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp index f2cbf5a94f..85b7ea633d 100644 --- a/src/qml/qml/qqmlimport.cpp +++ b/src/qml/qml/qqmlimport.cpp @@ -876,6 +876,7 @@ QQmlImportNamespace *QQmlImportsPrivate::findQualifiedNamespace(const QHashedStr return 0; } +#if QT_CONFIG(library) /*! Returns the list of possible versioned URI combinations. For example, if \a uri is QtQml.Models, \a vmaj is 2, and \a vmin is 0, this method returns the following: @@ -897,7 +898,6 @@ static QStringList versionUriList(const QString &uri, int vmaj, int vmin) return result; } -#if QT_CONFIG(library) /*! Get all static plugins that are QML plugins and has a meta data URI that matches with one of \a versionUris, which is a list of all possible versioned URI combinations - see versionUriList() diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index 7d182b7255..b347b603bb 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -70,14 +70,17 @@ qtHaveModule(widgets) { qjsvalue } -SUBDIRS += $$PUBLICTESTS \ - qqmlextensionplugin +SUBDIRS += $$PUBLICTESTS SUBDIRS += $$METATYPETESTS qtConfig(process) { !contains(QT_CONFIG, no-qml-debug): SUBDIRS += debugger SUBDIRS += qmllint qmlplugindump } +qtConfig(library) { + SUBDIRS += qqmlextensionplugin +} + qtConfig(private_tests): \ SUBDIRS += $$PRIVATETESTS -- cgit v1.2.3 From c6917f27cbb26c140d6e514ca8a268bbf41f49a2 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 6 Mar 2017 10:29:47 +0100 Subject: Fix restoring IR from cache files Commit eeb08d9537d0b4e77b91848169e0bb79ec3d912c was missing the code to restore the aliases, the AST function formals as well as the object flags/id. This also fixes crashes with the QML compiler. Change-Id: I1c50816dc77ae66edbc3ddc7146da4edfd4170f4 Reviewed-by: Lars Knoll --- src/qml/compiler/qqmlirbuilder.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index 8a7507c92e..0a6efa7867 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -2116,7 +2116,8 @@ QmlIR::Object *IRLoader::loadObject(const QV4::CompiledData::Object *serializedO object->indexOfDefaultPropertyOrAlias = serializedObject->indexOfDefaultPropertyOrAlias; object->defaultPropertyIsAlias = serializedObject->defaultPropertyIsAlias; - + object->flags = serializedObject->flags; + object->id = serializedObject->id; object->location = serializedObject->location; object->locationOfIdProperty = serializedObject->locationOfIdProperty; @@ -2175,6 +2176,15 @@ QmlIR::Object *IRLoader::loadObject(const QV4::CompiledData::Object *serializedO object->properties->append(p); } + { + const QV4::CompiledData::Alias *serializedAlias = serializedObject->aliasTable(); + for (uint i = 0; i < serializedObject->nAliases; ++i, ++serializedAlias) { + QmlIR::Alias *a = pool->New(); + *static_cast(a) = *serializedAlias; + object->aliases->append(a); + } + } + QQmlJS::Engine *jsParserEngine = &output->jsParserEngine; const QV4::CompiledData::LEUInt32 *functionIdx = serializedObject->functionOffsetTable(); @@ -2205,6 +2215,11 @@ QmlIR::Object *IRLoader::loadObject(const QV4::CompiledData::Object *serializedO const QString name = unit->stringAt(compiledFunction->nameIndex); f->functionDeclaration = new(pool) QQmlJS::AST::FunctionDeclaration(jsParserEngine->newStringRef(name), paramList, /*body*/0); + f->formals.allocate(pool, int(compiledFunction->nFormals)); + formalNameIdx = compiledFunction->formalsTable(); + for (uint i = 0; i < compiledFunction->nFormals; ++i, ++formalNameIdx) + f->formals[i] = *formalNameIdx; + object->functions->append(f); } -- cgit v1.2.3 From 38919dc8259b5faccf2d755cb62f668047369565 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 2 Mar 2017 16:55:09 +0100 Subject: Fix qml cache generation for non-prefix builds Generate cache files right in the target locatioa, similar to how qml_module.prf uses COPIES to copy .qml source files to the target location in non-prefix builds. Change-Id: I06f6112c29ffd212e29a84e29418d042255b5861 Reviewed-by: Lars Knoll --- tools/qmlcachegen/qmlcache.prf | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf index fed9f0d2f3..e0c62ec4d3 100644 --- a/tools/qmlcachegen/qmlcache.prf +++ b/tools/qmlcachegen/qmlcache.prf @@ -1,12 +1,26 @@ qtPrepareTool(QML_CACHEGEN, qmlcachegen) +isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name) for ahead-of-time QML cache generation") + !isEmpty(QT_TARGET_ARCH):QML_CACHEGEN_ARCH=$$QT_TARGET_ARCH else:QML_CACHEGEN_ARCH=$$QT_ARCH -qmlcachegen.input = QML_FILES -qmlcachegen.output = ${QMAKE_FILE_IN}c -qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH ${QMAKE_FILE_IN} +CACHEGEN_FILES= +for(qmlf, QML_FILES) { + contains(qmlf,.*\\.js$)|contains(qmlf,.*\\.qml$) { + CACHEGEN_FILES += $$qmlf + } +} + +qmlcachegen.input = CACHEGEN_FILES +prefix_build { + qmlcachegen.output = ${QMAKE_FILE_IN}c +} else { + qmlcachegen.output = $$[QT_INSTALL_QML]/$$TARGETPATH/${QMAKE_FILE_IN}c + qmlcachegen.CONFIG = no_link target_predeps +} +qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} qmlcachegen.name = Generate QML Cache ${QMAKE_FILE_IN} -qmlcachegen.variable_out = AUX_QML_FILES +qmlcachegen.variable_out = GENERATED_FILES QMAKE_EXTRA_COMPILERS += qmlcachegen -- cgit v1.2.3 From fb0490dd653e4856a3595bd7e49c3127215170d1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 14 Feb 2017 15:17:16 -0800 Subject: QThreadData::threadId is now QAtomicPointer, so relax loads from Acquire operator T() does loadAcquire, to match std::atomic behavior. We don't need that, so let's use a relaxed load. Side note: why does QtQml need to access the thread ID this way? Couldn't it do object->thread()? This code comes from a pre-5.0 commit 5570040771ec610583473e2d9e8e069474364cf1 ("Permit signals to be emitted in a different thread"). Change-Id: I4139d5f93dcb4b429ae9fffd14a34a84d3255a6f Reviewed-by: Simon Hausmann Reviewed-by: Marc Mutz --- src/qml/qml/qqmlengine.cpp | 2 +- src/qml/qml/qqmlnotifier.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index c800641f1c..f1c592b632 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -774,7 +774,7 @@ void QQmlData::signalEmitted(QAbstractDeclarativeData *, QObject *object, int in // marshalled back onto the QObject's thread and handled by QML from there. This is tested // by the qqmlecmascript::threadSignal() autotest. if (ddata->notifyList && - QThread::currentThreadId() != QObjectPrivate::get(object)->threadData->threadId) { + QThread::currentThreadId() != QObjectPrivate::get(object)->threadData->threadId.load()) { if (!QObjectPrivate::get(object)->threadData->thread) return; diff --git a/src/qml/qml/qqmlnotifier.cpp b/src/qml/qml/qqmlnotifier.cpp index 185f9687fb..538ca822ee 100644 --- a/src/qml/qml/qqmlnotifier.cpp +++ b/src/qml/qml/qqmlnotifier.cpp @@ -122,8 +122,8 @@ void QQmlNotifierEndpoint::connect(QObject *source, int sourceSignal, QQmlEngine disconnect(); Q_ASSERT(engine); - if (QObjectPrivate::get(source)->threadData->threadId != - QObjectPrivate::get(engine)->threadData->threadId) { + if (QObjectPrivate::get(source)->threadData->threadId.load() != + QObjectPrivate::get(engine)->threadData->threadId.load()) { QString sourceName; QDebug(&sourceName) << source; -- cgit v1.2.3 From 1102f6ca7f1bb09e77f100b7e2afcac9f13e322c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 2 Mar 2017 15:52:38 +0100 Subject: Fix qmlcachegen command line parameters Add support for specifying the output file name Change-Id: I3ec3cecae2334a7640baa928c0739c5521496d2d Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 13 ++++--------- src/qml/compiler/qv4compileddata_p.h | 2 +- tools/qmlcachegen/qmlcachegen.cpp | 22 +++++++++++++++------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index a8f065210b..dba04a7187 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -77,13 +77,7 @@ namespace QV4 { namespace CompiledData { -#ifdef V4_BOOTSTRAP -static QString cacheFilePath(const QString &localSourcePath) -{ - const QString localCachePath = localSourcePath + QLatin1Char('c'); - return localCachePath; -} -#else +#if !defined(V4_BOOTSTRAP) static QString cacheFilePath(const QUrl &url) { const QString localSourcePath = QQmlFile::urlToLocalFileOrQrc(url); @@ -408,7 +402,7 @@ bool CompilationUnit::memoryMapCode(QString *errorString) #endif // V4_BOOTSTRAP #if defined(V4_BOOTSTRAP) -bool CompilationUnit::saveToDisk(const QString &unitUrl, QString *errorString) +bool CompilationUnit::saveToDisk(const QString &outputFileName, QString *errorString) #else bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString) #endif @@ -425,11 +419,12 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString) *errorString = QStringLiteral("File has to be a local file."); return false; } + const QString outputFileName = cacheFilePath(unitUrl); #endif #if QT_CONFIG(temporaryfile) // Foo.qml -> Foo.qmlc - QSaveFile cacheFile(cacheFilePath(unitUrl)); + QSaveFile cacheFile(outputFileName); if (!cacheFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { *errorString = cacheFile.errorString(); return false; diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 13a0c4b075..8c7d0d7e19 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -908,7 +908,7 @@ protected: public: #if defined(V4_BOOTSTRAP) - bool saveToDisk(const QString &unitUrl, QString *errorString); + bool saveToDisk(const QString &outputFileName, QString *errorString); #else bool saveToDisk(const QUrl &unitUrl, QString *errorString); #endif diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index 977c5b6ff1..c0faabe393 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -80,7 +80,7 @@ QString diagnosticErrorMessage(const QString &fileName, const QQmlJS::Diagnostic return message; } -static bool compileQmlFile(const QString &inputFileName, QV4::EvalISelFactory *iselFactory, Error *error) +static bool compileQmlFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, Error *error) { QmlIR::Document irDocument(/*debugMode*/false); @@ -153,7 +153,7 @@ static bool compileQmlFile(const QString &inputFileName, QV4::EvalISelFactory *i unit->flags |= QV4::CompiledData::Unit::PendingTypeCompilation; irDocument.javaScriptCompilationUnit->data = unit; - if (!irDocument.javaScriptCompilationUnit->saveToDisk(inputFileName, &error->message)) + if (!irDocument.javaScriptCompilationUnit->saveToDisk(outputFileName, &error->message)) return false; free(unit); @@ -161,7 +161,7 @@ static bool compileQmlFile(const QString &inputFileName, QV4::EvalISelFactory *i return true; } -static bool compileJSFile(const QString &inputFileName, QV4::EvalISelFactory *iselFactory, Error *error) +static bool compileJSFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, Error *error) { QmlIR::Document irDocument(/*debugMode*/false); @@ -233,7 +233,8 @@ static bool compileJSFile(const QString &inputFileName, QV4::EvalISelFactory *is // ### translation binding simplification - QScopedPointer isel(iselFactory->create(/*engine*/nullptr, /*executable allocator*/nullptr, &irDocument.jsModule, &irDocument.jsGenerator)); + QV4::ExecutableAllocator allocator; + QScopedPointer isel(iselFactory->create(/*engine*/nullptr, &allocator, &irDocument.jsModule, &irDocument.jsGenerator)); // Disable lookups in non-standalone (aka QML) mode isel->setUseFastLookups(false); irDocument.javaScriptCompilationUnit = isel->compile(/*generate unit*/false); @@ -243,7 +244,7 @@ static bool compileJSFile(const QString &inputFileName, QV4::EvalISelFactory *is unit->flags |= QV4::CompiledData::Unit::StaticData; irDocument.javaScriptCompilationUnit->data = unit; - if (!irDocument.javaScriptCompilationUnit->saveToDisk(inputFileName, &error->message)) { + if (!irDocument.javaScriptCompilationUnit->saveToDisk(outputFileName, &error->message)) { engine->setDirectives(oldDirs); return false; } @@ -270,6 +271,9 @@ int main(int argc, char **argv) QCommandLineOption targetArchitectureOption(QStringLiteral("target-architecture"), QCoreApplication::translate("main", "Target architecture"), QCoreApplication::translate("main", "architecture")); parser.addOption(targetArchitectureOption); + QCommandLineOption outputFileOption(QStringLiteral("o"), QCoreApplication::translate("main", "Output file name"), QCoreApplication::translate("main", "file name")); + parser.addOption(outputFileOption); + parser.addPositionalArgument(QStringLiteral("[qml file]"), QStringLiteral("QML source file to generate cache for.")); @@ -294,13 +298,17 @@ int main(int argc, char **argv) Error error; + QString outputFileName = inputFile + QLatin1Char('c'); + if (parser.isSet(outputFileOption)) + outputFileName = parser.value(outputFileOption); + if (inputFile.endsWith(QLatin1String(".qml"))) { - if (!compileQmlFile(inputFile, isel.data(), &error)) { + if (!compileQmlFile(inputFile, outputFileName, isel.data(), &error)) { error.augment(QLatin1String("Error compiling qml file: ")).print(); return EXIT_FAILURE; } } else if (inputFile.endsWith(QLatin1String(".js"))) { - if (!compileJSFile(inputFile, isel.data(), &error)) { + if (!compileJSFile(inputFile, outputFileName, isel.data(), &error)) { error.augment(QLatin1String("Error compiling qml file: ")).print(); return EXIT_FAILURE; } -- cgit v1.2.3 From ba6de61acd3129ad1435f6bca7f564385212f95c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 3 Mar 2017 10:35:13 +0100 Subject: Fix skipping of qml cache generation on unsupported architectures Detect support for the target architecture at qmake time and gently skip the process. Change-Id: I7cc22a0cfb9a8b503c182062a56e506035f84fa2 Reviewed-by: Lars Knoll --- tools/qmlcachegen/qmlcache.prf | 16 ++++++++++++++-- tools/qmlcachegen/qmlcachegen.cpp | 26 +++++++++++++++++++++----- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf index e0c62ec4d3..5cac5592c3 100644 --- a/tools/qmlcachegen/qmlcache.prf +++ b/tools/qmlcachegen/qmlcache.prf @@ -1,10 +1,22 @@ -qtPrepareTool(QML_CACHEGEN, qmlcachegen) +static { + message("QML cache generation ahead of time is not supported in static builds") + return() +} + +qtPrepareTool(QML_CACHEGEN, qmlcachegen, _ARCH_CHECK) isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name) for ahead-of-time QML cache generation") !isEmpty(QT_TARGET_ARCH):QML_CACHEGEN_ARCH=$$QT_TARGET_ARCH else:QML_CACHEGEN_ARCH=$$QT_ARCH +QML_CACHEGEN_ARGS=--target-architecture=$$QML_CACHEGEN_ARCH + +!system($$QML_CACHEGEN_ARCH_CHECK $$QML_CACHEGEN_ARGS --check-if-supported) { + message("QML cache generation requested but target architecture $$QML_CACHEGEN_ARCH is not supported.") + return() +} + CACHEGEN_FILES= for(qmlf, QML_FILES) { contains(qmlf,.*\\.js$)|contains(qmlf,.*\\.qml$) { @@ -19,7 +31,7 @@ prefix_build { qmlcachegen.output = $$[QT_INSTALL_QML]/$$TARGETPATH/${QMAKE_FILE_IN}c qmlcachegen.CONFIG = no_link target_predeps } -qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} +qmlcachegen.commands = $$QML_CACHEGEN $$QML_CACHEGEN_ARGS -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} qmlcachegen.name = Generate QML Cache ${QMAKE_FILE_IN} qmlcachegen.variable_out = GENERATED_FILES diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index c0faabe393..fa75d14c8e 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -274,25 +274,41 @@ int main(int argc, char **argv) QCommandLineOption outputFileOption(QStringLiteral("o"), QCoreApplication::translate("main", "Output file name"), QCoreApplication::translate("main", "file name")); parser.addOption(outputFileOption); + QCommandLineOption checkIfSupportedOption(QStringLiteral("check-if-supported"), QCoreApplication::translate("main", "Check if cache generate is supported on the specified target architecture")); + parser.addOption(checkIfSupportedOption); + parser.addPositionalArgument(QStringLiteral("[qml file]"), QStringLiteral("QML source file to generate cache for.")); parser.process(app); - const QStringList sources = parser.positionalArguments(); - if (sources.isEmpty()){ + if (!parser.isSet(targetArchitectureOption)) { + fprintf(stderr, "Target architecture not specified. Please specify with --target-architecture=\n"); parser.showHelp(); - } else if (sources.count() > 1) { - fprintf(stderr, "%s\n", qPrintable(QStringLiteral("Too many input files specified: '") + sources.join(QStringLiteral("' '")) + QLatin1Char('\''))); return EXIT_FAILURE; } - const QString inputFile = sources.first(); QScopedPointer isel; const QString targetArchitecture = parser.value(targetArchitectureOption); isel.reset(QV4::JIT::createISelForArchitecture(targetArchitecture)); + if (parser.isSet(checkIfSupportedOption)) { + if (isel.isNull()) + return EXIT_FAILURE; + else + return EXIT_SUCCESS; + } + + const QStringList sources = parser.positionalArguments(); + if (sources.isEmpty()){ + parser.showHelp(); + } else if (sources.count() > 1) { + fprintf(stderr, "%s\n", qPrintable(QStringLiteral("Too many input files specified: '") + sources.join(QStringLiteral("' '")) + QLatin1Char('\''))); + return EXIT_FAILURE; + } + const QString inputFile = sources.first(); + if (!isel) isel.reset(new QV4::Moth::ISelFactory); -- cgit v1.2.3 From a54f08e1ead70e821f438279e548d54e38c4aa8f Mon Sep 17 00:00:00 2001 From: Michael Winkelmann Date: Thu, 2 Mar 2017 17:16:09 +0100 Subject: Replace QList with QVector and function pointers The usage of the QQmlListProperty QList constructor is discouraged since QList violates QML's memory management rules. Replaced the QList with a QVector and passed the function pointers to the QQmlListProperty constructor instead, as officially recommended. Change-Id: I6d28a43530cc3edd5e7d89c351bad70deb721689 Reviewed-by: Simon Hausmann --- .../referenceexamples/properties/birthdayparty.cpp | 31 +++++++++++++++++++++- .../referenceexamples/properties/birthdayparty.h | 10 ++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/examples/qml/referenceexamples/properties/birthdayparty.cpp b/examples/qml/referenceexamples/properties/birthdayparty.cpp index b69b7c8a11..0b426fc00b 100644 --- a/examples/qml/referenceexamples/properties/birthdayparty.cpp +++ b/examples/qml/referenceexamples/properties/birthdayparty.cpp @@ -57,9 +57,18 @@ void BirthdayParty::setHost(Person *c) QQmlListProperty BirthdayParty::guests() { - return QQmlListProperty(this, m_guests); + return QQmlListProperty(this, this, + &BirthdayParty::appendGuest, + &BirthdayParty::guestCount, + &BirthdayParty::guest, + &BirthdayParty::clearGuests); } +void BirthdayParty::appendGuest(Person* p) { + m_guests.append(p); +} + + int BirthdayParty::guestCount() const { return m_guests.count(); @@ -69,5 +78,25 @@ Person *BirthdayParty::guest(int index) const { return m_guests.at(index); } + +void BirthdayParty::clearGuests() { + return m_guests.clear(); +} + // ![0] +void BirthdayParty::appendGuest(QQmlListProperty* list, Person* p) { + reinterpret_cast< BirthdayParty* >(list->data)->appendGuest(p); +} + +void BirthdayParty::clearGuests(QQmlListProperty* list) { + reinterpret_cast< BirthdayParty* >(list->data)->clearGuests(); +} + +Person* BirthdayParty::guest(QQmlListProperty* list, int i) { + return reinterpret_cast< BirthdayParty* >(list->data)->guest(i); +} + +int BirthdayParty::guestCount(QQmlListProperty* list) { + return reinterpret_cast< BirthdayParty* >(list->data)->guestCount(); +} diff --git a/examples/qml/referenceexamples/properties/birthdayparty.h b/examples/qml/referenceexamples/properties/birthdayparty.h index d0a2cad285..df55df3e80 100644 --- a/examples/qml/referenceexamples/properties/birthdayparty.h +++ b/examples/qml/referenceexamples/properties/birthdayparty.h @@ -41,6 +41,7 @@ #define BIRTHDAYPARTY_H #include +#include #include #include "person.h" @@ -63,12 +64,19 @@ public: void setHost(Person *); QQmlListProperty guests(); + void appendGuest(Person*); int guestCount() const; Person *guest(int) const; + void clearGuests(); private: + static void appendGuest(QQmlListProperty*, Person*); + static int guestCount(QQmlListProperty*); + static Person* guest(QQmlListProperty*, int); + static void clearGuests(QQmlListProperty*); + Person *m_host; - QList m_guests; + QVector m_guests; }; // ![3] -- cgit v1.2.3 From 7fe0d1a06830518e8ce6752e45a0a01b1b97fa73 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Tue, 7 Mar 2017 08:58:10 +0100 Subject: Revert "QQuickAnimatorProxyJob: make sure to stop when detached from a window" This reverts commit 05a88efb266ec3b7b16d6db0d971c21ae7f45c9d. It caused some test failures in qtquickcontrols and qtquickcontrols2. Task-number: QTBUG-59326 Task-number: QTBUG-59327 Change-Id: I9a26a4518bf7c106372916761aae69ba65f6df9e Reviewed-by: J-P Nurmi --- src/quick/util/qquickanimatorjob.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index dced8b49a9..4aacb09c97 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -140,11 +140,6 @@ QObject *QQuickAnimatorProxyJob::findAnimationContext(QQuickAbstractAnimation *a void QQuickAnimatorProxyJob::updateCurrentTime(int) { - // A proxy which is being ticked should be associated with a window, (see - // setWindow() below). If we get here when there is no more controller we - // have a problem. - Q_ASSERT(m_controller); - // We do a simple check here to see if the animator has run and stopped on // the render thread. isPendingStart() will perform a check against jobs // that have been scheduled for start, but that will not yet have entered @@ -172,9 +167,9 @@ void QQuickAnimatorProxyJob::updateState(QAbstractAnimationJob::State newState, } } else if (newState == Stopped) { + syncBackCurrentValues(); m_internalState = State_Stopped; if (m_controller) { - syncBackCurrentValues(); m_controller->cancel(m_job); } } @@ -198,7 +193,6 @@ void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window) if (m_job && m_controller) m_controller->cancel(m_job); m_controller = nullptr; - stop(); } else if (!m_controller && m_job) { m_controller = QQuickWindowPrivate::get(window)->animationController; -- cgit v1.2.3 From d5d12e1d6fb9aaa5a8cee7924555f0d4d19ffabc Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 1 Mar 2017 10:42:47 +0100 Subject: Set source location for all loop body-to-front jumps Task-number: QTBUG-59204 Change-Id: Id1a73b228cd3386c7fcc7712c2485f387238b65e Reviewed-by: hjk Reviewed-by: Erik Verbruggen --- src/qml/compiler/qv4codegen.cpp | 10 +++++----- .../qml/debugger/qv4debugger/tst_qv4debugger.cpp | 23 ++++++++++++++++++---- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 819f4615f2..2c1b5c57cc 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -2256,7 +2256,7 @@ bool Codegen::visit(DoWhileStatement *ast) _block = loopbody; statement(ast->statement); - _block->JUMP(loopcond); + setLocation(_block->JUMP(loopcond), ast->statement->lastSourceLocation()); _block = loopcond; condition(ast->expression, loopbody, loopend); @@ -2321,7 +2321,7 @@ bool Codegen::visit(ForEachStatement *ast) return false; move(*init, _block->TEMP(temp)); statement(ast->statement); - _block->JUMP(foreachin); + setLocation(_block->JUMP(foreachin), ast->lastSourceLocation()); _block = foreachin; @@ -2360,7 +2360,7 @@ bool Codegen::visit(ForStatement *ast) _block = forbody; statement(ast->statement); - _block->JUMP(forstep); + setLocation(_block->JUMP(forstep), ast->lastSourceLocation()); _block = forstep; statement(ast->expression); @@ -2460,7 +2460,7 @@ bool Codegen::visit(LocalForEachStatement *ast) int temp = _block->newTemp(); move(identifier(ast->declaration->name.toString()), _block->TEMP(temp)); statement(ast->statement); - _block->JUMP(foreachin); + setLocation(_block->JUMP(foreachin), ast->lastSourceLocation()); _block = foreachin; @@ -2800,7 +2800,7 @@ bool Codegen::visit(WhileStatement *ast) _block = whilebody; statement(ast->statement); - _block->JUMP(whilecond); + setLocation(_block->JUMP(whilecond), ast->lastSourceLocation()); _block = whileend; leaveLoop(); diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp index 8362cb9ed6..56320b8365 100644 --- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp @@ -327,8 +327,9 @@ private slots: void evaluateExpression(); void stepToEndOfScript(); - void lastLineOfLoop(); + void lastLineOfLoop_data(); + void lastLineOfLoop(); private: QV4Debugger *debugger() const { @@ -787,16 +788,30 @@ void tst_qv4debugger::stepToEndOfScript() QCOMPARE(state.lineNumber, -4); // A return instruction without proper line number. } +void tst_qv4debugger::lastLineOfLoop_data() +{ + QTest::addColumn("loopHead"); + QTest::addColumn("loopTail"); + + QTest::newRow("for") << "for (var i = 0; i < 10; ++i) {\n" << "}\n"; + QTest::newRow("for..in") << "for (var i in [0, 1, 2, 3, 4]) {\n" << "}\n"; + QTest::newRow("while") << "while (ret < 10) {\n" << "}\n"; + QTest::newRow("do..while") << "do {\n" << "} while (ret < 10);\n"; +} + void tst_qv4debugger::lastLineOfLoop() { + QFETCH(QString, loopHead); + QFETCH(QString, loopTail); + QString script = "var ret = 0;\n" - "for (var i = 0; i < 10; ++i) {\n" - " if (i == 2)\n" + + loopHead + + " if (ret == 2)\n" " ret += 4;\n" // breakpoint, then step over " else \n" " ret += 1;\n" - "}\n"; // after step over + + loopTail; debugger()->addBreakPoint("trueBranch", 4); m_debuggerAgent->m_resumeSpeed = QV4Debugger::StepOver; -- cgit v1.2.3 From 84a07bebc94e9f92d4d596550317a89403ed291f Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 6 Mar 2017 15:06:59 +0100 Subject: Fix crash when loading cache files generated ahead of time The offset of the runtimeStrings array differed between a V4_BOOTSTRAP build and the regular library build. This is an intermediate fix until QTBUG-58666 is fixed properly. Change-Id: Id1310ffa82f1079c1acef7730db41186fa62610f Reviewed-by: hjk Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 2 +- src/qml/compiler/qv4compileddata_p.h | 6 ++---- src/qml/debugger/qqmldebug.cpp | 10 +++++++--- tests/auto/toolsupport/tst_toolsupport.cpp | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index dba04a7187..70a03c2c1f 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -95,8 +95,8 @@ static QString cacheFilePath(const QUrl &url) #ifndef V4_BOOTSTRAP CompilationUnit::CompilationUnit() : data(0) - , engine(0) , runtimeStrings(0) + , engine(0) , runtimeLookups(0) , runtimeRegularExpressions(0) , runtimeClasses(0) diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 8c7d0d7e19..23139d6c8e 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -816,13 +816,11 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit : public QQmlRefCount // Called only when building QML, when we build the header for JS first and append QML data virtual QV4::CompiledData::Unit *createUnitData(QmlIR::Document *irDocument); -#ifndef V4_BOOTSTRAP - ExecutionEngine *engine; -#endif - QV4::Heap::String **runtimeStrings; // Array #ifndef V4_BOOTSTRAP + ExecutionEngine *engine; + QString fileName() const { return data->stringAt(data->sourceFileIndex); } QUrl url() const { if (m_url.isNull) m_url = QUrl(fileName()); return m_url; } diff --git a/src/qml/debugger/qqmldebug.cpp b/src/qml/debugger/qqmldebug.cpp index 15230d75a5..681dc06215 100644 --- a/src/qml/debugger/qqmldebug.cpp +++ b/src/qml/debugger/qqmldebug.cpp @@ -42,6 +42,7 @@ #include "qqmldebugserviceinterfaces_p.h" #include +#include QT_BEGIN_NAMESPACE @@ -181,12 +182,12 @@ bool QQmlDebuggingEnabler::startDebugConnector(const QString &pluginName, return connector ? connector->open(configuration) : false; } -enum { HookCount = 3 }; +enum { HookCount = 4 }; // Only add to the end, and bump version if you do. quintptr Q_QML_EXPORT qtDeclarativeHookData[] = { // Version of this Array. Bump if you add to end. - 1, + 2, // Number of entries in this array. HookCount, @@ -194,7 +195,10 @@ quintptr Q_QML_EXPORT qtDeclarativeHookData[] = { // TypeInformationVersion, an integral value, bumped whenever private // object sizes or member offsets that are used in Qt Creator's // data structure "pretty printing" change. - 2 + 3, + + // Version of the cache data. + QV4_DATA_STRUCTURE_VERSION }; Q_STATIC_ASSERT(HookCount == sizeof(qtDeclarativeHookData) / sizeof(qtDeclarativeHookData[0])); diff --git a/tests/auto/toolsupport/tst_toolsupport.cpp b/tests/auto/toolsupport/tst_toolsupport.cpp index 9a11a67e65..526ba8f375 100644 --- a/tests/auto/toolsupport/tst_toolsupport.cpp +++ b/tests/auto/toolsupport/tst_toolsupport.cpp @@ -109,7 +109,7 @@ void tst_toolsupport::offsets_data() = QTest::newRow("CompiledData::CompilationUnit::runtimeStrings") << pmm_to_offsetof(&QV4::CompiledData::CompilationUnit::runtimeStrings); - data << 16 << 32; + data << 12 << 24; } { -- cgit v1.2.3 From 1ecefb43f250374a598bc64e8ff3d3af2aac006c Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 1 Mar 2017 10:10:05 +0100 Subject: Doc: Remove mentioning of non-existing setContents method Change-Id: I6c8c27390b6309e0d2bd0c758d04f864fce51069 Reviewed-by: Leena Miettinen --- src/quickwidgets/qquickwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index 4ed41a0c6c..ea02723db8 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -1140,7 +1140,7 @@ QSize QQuickWidget::initialSize() const /*! Returns the view's root \l {QQuickItem} {item}. Can be null - when setContents/setSource has not been called, if they were called with + when setSource() has not been called, if it was called with broken QtQuick code or while the QtQuick contents are being created. */ QQuickItem *QQuickWidget::rootObject() const -- cgit v1.2.3 From 25555238cde42daf5a73669234e737c90ef9ea5f Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 21 Jan 2016 11:40:18 +0100 Subject: Fix copied QDragMoveEvent drop action to propagate to original event Trying to set the drop action and the accepted state in a overridden dragMoveEvent handler, does not get propagated to the original QDragMoveEvent, because the event passed to the handler is a copy. This does not allow canceling the drop action in the move handler, or change the proposed action to a different one. Changing these values in the move handler is important to allow modifying the cursor when moving / hovering above a possible drop item, depending on user conditions. Fix consists in copying the drop action and accepted values to the original event, as well as removing the hard-coded setAccepted (true) call. Task-number: QTBUG-58260 Change-Id: I7a4bd4e68ee1023a36a63d3e835c282077e4187c Reviewed-by: Shawn Rutledge --- src/quick/items/qquickwindow.cpp | 4 +- tests/auto/quick/qquickwindow/tst_qquickwindow.cpp | 258 +++++++++++++++++++++ 2 files changed, 261 insertions(+), 1 deletion(-) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 340683f6c3..e6245f90f3 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2397,7 +2397,6 @@ void QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber *grabber, QEvent *e } else for (; grabItem != grabber->end(); grabItem = grabber->release(grabItem)) { QDragMoveEvent *moveEvent = static_cast(event); if (deliverDragEvent(grabber, **grabItem, moveEvent)) { - moveEvent->setAccepted(true); for (++grabItem; grabItem != grabber->end();) { QPointF p = (**grabItem)->mapFromScene(moveEvent->pos()); if ((**grabItem)->contains(p)) { @@ -2472,7 +2471,10 @@ bool QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber *grabber, QQuickIte event->keyboardModifiers(), event->type()); QQuickDropEventEx::copyActions(&translatedEvent, *event); + translatedEvent.setAccepted(event->isAccepted()); QCoreApplication::sendEvent(item, &translatedEvent); + event->setAccepted(translatedEvent.isAccepted()); + event->setDropAction(translatedEvent.dropAction()); if (event->type() == QEvent::DragEnter) { if (translatedEvent.isAccepted()) { grabber->grab(item); diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp index dd00154935..1d6547c5be 100644 --- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp +++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -372,6 +373,8 @@ private slots: void grabContentItemToImage(); + void testDragEventPropertyPropagation(); + private: QTouchDevice *touchDevice; QTouchDevice *touchDeviceWithVelocity; @@ -2573,6 +2576,261 @@ void tst_qquickwindow::grabContentItemToImage() QTRY_COMPARE(created->property("success").toInt(), 1); } +class TestDropTarget : public QQuickItem +{ + Q_OBJECT +public: + TestDropTarget(QQuickItem *parent = 0) + : QQuickItem(parent) + , enterDropAction(Qt::CopyAction) + , moveDropAction(Qt::CopyAction) + , dropDropAction(Qt::CopyAction) + , enterAccept(true) + , moveAccept(true) + , dropAccept(true) + { + setFlags(ItemAcceptsDrops); + } + + void reset() + { + enterDropAction = Qt::CopyAction; + moveDropAction = Qt::CopyAction; + dropDropAction = Qt::CopyAction; + enterAccept = true; + moveAccept = true; + dropAccept = true; + } + + void dragEnterEvent(QDragEnterEvent *event) + { + event->setAccepted(enterAccept); + event->setDropAction(enterDropAction); + } + + void dragMoveEvent(QDragMoveEvent *event) + { + event->setAccepted(moveAccept); + event->setDropAction(moveDropAction); + } + + void dropEvent(QDropEvent *event) + { + event->setAccepted(dropAccept); + event->setDropAction(dropDropAction); + } + + Qt::DropAction enterDropAction; + Qt::DropAction moveDropAction; + Qt::DropAction dropDropAction; + bool enterAccept; + bool moveAccept; + bool dropAccept; +}; + +class DragEventTester { +public: + DragEventTester() + : pos(60, 60) + , actions(Qt::CopyAction | Qt::MoveAction | Qt::LinkAction) + , buttons(Qt::LeftButton) + , modifiers(Qt::NoModifier) + { + } + + ~DragEventTester() { + qDeleteAll(events); + events.clear(); + enterEvent = 0; + moveEvent = 0; + dropEvent = 0; + leaveEvent = 0; + } + + void addEnterEvent() + { + enterEvent = new QDragEnterEvent(pos, actions, &data, buttons, modifiers); + events.append(enterEvent); + } + + void addMoveEvent() + { + moveEvent = new QDragMoveEvent(pos, actions, &data, buttons, modifiers, QEvent::DragMove); + events.append(moveEvent); + } + + void addDropEvent() + { + dropEvent = new QDropEvent(pos, actions, &data, buttons, modifiers, QEvent::Drop); + events.append(dropEvent); + } + + void addLeaveEvent() + { + leaveEvent = new QDragLeaveEvent(); + events.append(leaveEvent); + } + + void sendDragEventSequence(QQuickWindow *window) const { + for (int i = 0; i < events.size(); ++i) { + QCoreApplication::sendEvent(window, events[i]); + } + } + + // Used for building events. + QMimeData data; + QPoint pos; + Qt::DropActions actions; + Qt::MouseButtons buttons; + Qt::KeyboardModifiers modifiers; + + // Owns events. + QList events; + + // Non-owner pointers for easy acccess. + QDragEnterEvent *enterEvent; + QDragMoveEvent *moveEvent; + QDropEvent *dropEvent; + QDragLeaveEvent *leaveEvent; +}; + +void tst_qquickwindow::testDragEventPropertyPropagation() +{ + QQuickWindow window; + TestDropTarget dropTarget(window.contentItem()); + + // Setting the size is important because the QQuickWindow checks if the drag happened inside + // the drop target. + dropTarget.setSize(QSizeF(100, 100)); + + // Test enter events property propagation. + // For enter events, only isAccepted gets propagated. + { + DragEventTester builder; + dropTarget.enterAccept = false; + dropTarget.enterDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragEnterEvent* enterEvent = builder.enterEvent; + QCOMPARE(enterEvent->isAccepted(), dropTarget.enterAccept); + } + { + DragEventTester builder; + dropTarget.enterAccept = false; + dropTarget.enterDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragEnterEvent* enterEvent = builder.enterEvent; + QCOMPARE(enterEvent->isAccepted(), dropTarget.enterAccept); + } + { + DragEventTester builder; + dropTarget.enterAccept = true; + dropTarget.enterDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragEnterEvent* enterEvent = builder.enterEvent; + QCOMPARE(enterEvent->isAccepted(), dropTarget.enterAccept); + } + { + DragEventTester builder; + dropTarget.enterAccept = true; + dropTarget.enterDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragEnterEvent* enterEvent = builder.enterEvent; + QCOMPARE(enterEvent->isAccepted(), dropTarget.enterAccept); + } + + // Test move events property propagation. + // For move events, both isAccepted and dropAction get propagated. + dropTarget.reset(); + { + DragEventTester builder; + dropTarget.moveAccept = false; + dropTarget.moveDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragMoveEvent* moveEvent = builder.moveEvent; + QCOMPARE(moveEvent->isAccepted(), dropTarget.moveAccept); + QCOMPARE(moveEvent->dropAction(), dropTarget.moveDropAction); + } + { + DragEventTester builder; + dropTarget.moveAccept = false; + dropTarget.moveDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragMoveEvent* moveEvent = builder.moveEvent; + QCOMPARE(moveEvent->isAccepted(), dropTarget.moveAccept); + QCOMPARE(moveEvent->dropAction(), dropTarget.moveDropAction); + } + { + DragEventTester builder; + dropTarget.moveAccept = true; + dropTarget.moveDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragMoveEvent* moveEvent = builder.moveEvent; + QCOMPARE(moveEvent->isAccepted(), dropTarget.moveAccept); + QCOMPARE(moveEvent->dropAction(), dropTarget.moveDropAction); + } + { + DragEventTester builder; + dropTarget.moveAccept = true; + dropTarget.moveDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addLeaveEvent(); + builder.sendDragEventSequence(&window); + QDragMoveEvent* moveEvent = builder.moveEvent; + QCOMPARE(moveEvent->isAccepted(), dropTarget.moveAccept); + QCOMPARE(moveEvent->dropAction(), dropTarget.moveDropAction); + } + + // Test drop events property propagation. + // For drop events, both isAccepted and dropAction get propagated. + dropTarget.reset(); + { + DragEventTester builder; + dropTarget.dropAccept = false; + dropTarget.dropDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addDropEvent(); + builder.sendDragEventSequence(&window); + QDropEvent* dropEvent = builder.dropEvent; + QCOMPARE(dropEvent->isAccepted(), dropTarget.dropAccept); + QCOMPARE(dropEvent->dropAction(), dropTarget.dropDropAction); + } + { + DragEventTester builder; + dropTarget.dropAccept = false; + dropTarget.dropDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addDropEvent(); + builder.sendDragEventSequence(&window); + QDropEvent* dropEvent = builder.dropEvent; + QCOMPARE(dropEvent->isAccepted(), dropTarget.dropAccept); + QCOMPARE(dropEvent->dropAction(), dropTarget.dropDropAction); + } + { + DragEventTester builder; + dropTarget.dropAccept = true; + dropTarget.dropDropAction = Qt::IgnoreAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addDropEvent(); + builder.sendDragEventSequence(&window); + QDropEvent* dropEvent = builder.dropEvent; + QCOMPARE(dropEvent->isAccepted(), dropTarget.dropAccept); + QCOMPARE(dropEvent->dropAction(), dropTarget.dropDropAction); + } + { + DragEventTester builder; + dropTarget.dropAccept = true; + dropTarget.dropDropAction = Qt::CopyAction; + builder.addEnterEvent(); builder.addMoveEvent(); builder.addDropEvent(); + builder.sendDragEventSequence(&window); + QDropEvent* dropEvent = builder.dropEvent; + QCOMPARE(dropEvent->isAccepted(), dropTarget.dropAccept); + QCOMPARE(dropEvent->dropAction(), dropTarget.dropDropAction); + } +} + QTEST_MAIN(tst_qquickwindow) #include "tst_qquickwindow.moc" -- cgit v1.2.3 From 4aabede9348d195cec2ca6c4718576aa35464e3e Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 8 Mar 2017 11:20:33 +0100 Subject: JS: Fix 0 == -0 The double representation of 0 and -0 are different in the sign bit, so the raw values are not the same. However, neither is managed, so non-strict equality comparison erroneously returned false. Task-number: QTBUG-56808 Change-Id: If966ddbc9f1a1c006dc5901aecafca063f71e404 Reviewed-by: Simon Hausmann Reviewed-by: Allan Sandfeld Jensen --- src/qml/jsruntime/qv4runtime.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 57ad181030..b31e07b979 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -1758,6 +1758,8 @@ Bool Runtime::method_compareEqual(const Value &left, const Value &right) return !left.isNaN(); if (left.type() == right.type()) { + if (left.isDouble() && left.doubleValue() == 0 && right.doubleValue() == 0) + return true; // this takes care of -0 == +0 (which obviously have different raw values) if (!left.isManaged()) return false; if (left.isString() == right.isString()) -- cgit v1.2.3 From ec4c2e640dbcb35769ae3fb0699e42f07b3009db Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 7 Mar 2017 14:51:20 +0100 Subject: Fix cache file generation for prefix and shadow builds For prefix builds generate the cache files in $$MODULE_BASE_OUTDIR/qml/ and install them from there. The use of relative paths for the qml cache extra compiler output is required because target_predeps in the extra compiler configuration will generate relative paths as dependency for the target. Task-number: QTBUG-58570 Change-Id: I6eedfd2aca1b0bdc7a230ce7521e499c6ab70ee0 Reviewed-by: Lars Knoll --- tools/qmlcachegen/qmlcache.prf | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf index 5cac5592c3..31c18a231b 100644 --- a/tools/qmlcachegen/qmlcache.prf +++ b/tools/qmlcachegen/qmlcache.prf @@ -17,22 +17,36 @@ QML_CACHEGEN_ARGS=--target-architecture=$$QML_CACHEGEN_ARCH return() } +load(qt_build_paths) + +prefix_build: QMLCACHE_DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH +else: QMLCACHE_DESTDIR = $$[QT_INSTALL_QML]/$$TARGETPATH + CACHEGEN_FILES= +qmlcacheinst.files = for(qmlf, QML_FILES) { contains(qmlf,.*\\.js$)|contains(qmlf,.*\\.qml$) { - CACHEGEN_FILES += $$qmlf + CACHEGEN_FILES += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_) + qmlcacheinst.files += $$QMLCACHE_DESTDIR/$$relative_path($$qmlf, $$_PRO_FILE_PWD_)c } } -qmlcachegen.input = CACHEGEN_FILES -prefix_build { - qmlcachegen.output = ${QMAKE_FILE_IN}c -} else { - qmlcachegen.output = $$[QT_INSTALL_QML]/$$TARGETPATH/${QMAKE_FILE_IN}c - qmlcachegen.CONFIG = no_link target_predeps +defineReplace(qmlCacheOutputFileName) { + return($$relative_path($$QMLCACHE_DESTDIR/$$relative_path($$1, $$_PRO_FILE_PWD_)c, $$OUT_PWD)) } + +qmlcacheinst.base = $$QMLCACHE_DESTDIR +qmlcacheinst.path = $$[QT_INSTALL_QML]/$$TARGETPATH +qmlcacheinst.CONFIG = no_check_exist + +qmlcachegen.input = CACHEGEN_FILES +qmlcachegen.output = ${QMAKE_FUNC_FILE_IN_qmlCacheOutputFileName} +qmlcachegen.CONFIG = no_link target_predeps qmlcachegen.commands = $$QML_CACHEGEN $$QML_CACHEGEN_ARGS -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} qmlcachegen.name = Generate QML Cache ${QMAKE_FILE_IN} qmlcachegen.variable_out = GENERATED_FILES -QMAKE_EXTRA_COMPILERS += qmlcachegen +!debug_and_release|!build_all|CONFIG(release, debug|release) { + QMAKE_EXTRA_COMPILERS += qmlcachegen + INSTALLS += qmlcacheinst +} -- cgit v1.2.3 From 38ea4e74ffcf1f5a82eee0146a5bb76e0750b63c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 8 Mar 2017 15:56:26 +0100 Subject: Simplify build system integration Make the prf file available via COPIES for non-prefix builds and otherwise install it. Change-Id: Ie11b6653d250a4491c4f5897bc61a1efdd546d27 Reviewed-by: Lars Knoll --- tools/qmlcachegen/qmlcachegen.pro | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tools/qmlcachegen/qmlcachegen.pro b/tools/qmlcachegen/qmlcachegen.pro index 81783d0396..25afc2860d 100644 --- a/tools/qmlcachegen/qmlcachegen.pro +++ b/tools/qmlcachegen/qmlcachegen.pro @@ -6,19 +6,9 @@ DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII SOURCES = qmlcachegen.cpp TARGET = qmlcachegen -BUILD_INTEGRATION = qmlcache.prf -!force_independent { - qmake_integration.input = BUILD_INTEGRATION - qmake_integration.output = $$[QT_HOST_DATA]/mkspecs/features/${QMAKE_FILE_BASE}.prf - qmake_integration.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} - qmake_integration.name = COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} - qmake_integration.CONFIG = no_clean no_link - !contains(TEMPLATE, vc.*): qmake_integration.variable_out = GENERATED_FILES - QMAKE_EXTRA_COMPILERS += qmake_integration -} - -qmake_integration_installs.files = $$BUILD_INTEGRATION -qmake_integration_installs.path = $$[QT_HOST_DATA]/mkspecs/features -INSTALLS += qmake_integration_installs +build_integration.files = qmlcache.prf +build_integration.path = $$[QT_HOST_DATA]/mkspecs/features +prefix_build: INSTALLS += build_integration +else: COPIES += build_integration load(qt_tool) -- cgit v1.2.3 From 55e558144d6d78062dd5d04f786e7fccf4eeebb7 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 8 Mar 2017 16:08:03 +0100 Subject: Fix time stamp related errors when loading AOT caches Cache files created ahead of time do not require a timestamp match towards the source file. This is because we cannot guarantee that all transport mechanism from source to deployment preserve the timestamp at the required resolution (if at all) and the source may also not be present at all (obfuscated deployment chosen). For cache files created at run-time however we'll continue to require time stamp verification. Change-Id: Ia7cdf3d063edd5bb1e6985089f1a666c970a0bd0 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compilationunitmapper.cpp | 2 +- src/qml/compiler/qv4compileddata.cpp | 4 ++-- tools/qmlcachegen/qmlcachegen.cpp | 2 -- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/qml/compiler/qv4compilationunitmapper.cpp b/src/qml/compiler/qv4compilationunitmapper.cpp index 2e1213464c..1ae0fb190c 100644 --- a/src/qml/compiler/qv4compilationunitmapper.cpp +++ b/src/qml/compiler/qv4compilationunitmapper.cpp @@ -76,7 +76,7 @@ bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, const return false; } - { + if (header->sourceTimeStamp) { QFileInfo sourceCode(sourcePath); QDateTime sourceTimeStamp; if (sourceCode.exists()) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 70a03c2c1f..7854a49af9 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -361,7 +361,7 @@ bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory const Unit * const oldDataPtr = (data && !(data->flags & QV4::CompiledData::Unit::StaticData)) ? data : nullptr; QScopedValueRollback dataPtrChange(data, mappedUnit); - if (sourcePath != QQmlFile::urlToLocalFileOrQrc(stringAt(data->sourceFileIndex))) { + if (data->sourceFileIndex != 0 && sourcePath != QQmlFile::urlToLocalFileOrQrc(stringAt(data->sourceFileIndex))) { *errorString = QStringLiteral("QML source file has moved to a different location."); return false; } @@ -409,12 +409,12 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString) { errorString->clear(); +#if !defined(V4_BOOTSTRAP) if (data->sourceTimeStamp == 0) { *errorString = QStringLiteral("Missing time stamp for source file"); return false; } -#if !defined(V4_BOOTSTRAP) if (!QQmlFile::isLocalFile(unitUrl)) { *errorString = QStringLiteral("File has to be a local file."); return false; diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index fa75d14c8e..78159c38d1 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -96,7 +96,6 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi error->message = QLatin1String("Error reading from ") + inputFileName + QLatin1Char(':') + f.errorString(); return false; } - irDocument.jsModule.sourceTimeStamp = QFileInfo(f).lastModified().toMSecsSinceEpoch(); } { @@ -177,7 +176,6 @@ static bool compileJSFile(const QString &inputFileName, const QString &outputFil error->message = QLatin1String("Error reading from ") + inputFileName + QLatin1Char(':') + f.errorString(); return false; } - irDocument.jsModule.sourceTimeStamp = QFileInfo(f).lastModified().toMSecsSinceEpoch(); } QQmlJS::Engine *engine = &irDocument.jsParserEngine; -- cgit v1.2.3 From e0add0b655941dcec483674594b63ce9775598be Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 8 Mar 2017 17:09:55 +0100 Subject: Fix relocation related errors when loading AOT caches The original directory of the source file the cache was created from - when generating ahead of time - is unlikely going to be identical to the final location for example on a deployed device. Therefore when generating caches ahead of time, don't store the source path, don't attempt to verify it when loading and don't try to save the cache file at run-time again. We still need set the sourceFileIndex at load-time though, in order to make relative path url resolution work (for example source: "my.png" in an Image element). Change-Id: I3d6952f5d0a165cfa2cb400191a9f6ffe6be69f4 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 15 ++++++++++++++- src/qml/compiler/qv4jsir.cpp | 6 +----- src/qml/qml/qqmltypeloader.cpp | 5 ++++- tools/qmlcachegen/qmlcachegen.cpp | 4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 7854a49af9..668f20e4f2 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -480,10 +480,22 @@ Unit *CompilationUnit::createUnitData(QmlIR::Document *irDocument) return irDocument->jsGenerator.generateUnit(QV4::Compiler::JSUnitGenerator::GenerateWithoutStringTable); QQmlRefPointer compilationUnit = irDocument->javaScriptCompilationUnit; - QV4::CompiledData::Unit *jsUnit = const_cast(irDocument->javaScriptCompilationUnit->data); + QV4::CompiledData::Unit *jsUnit = const_cast(compilationUnit->data); + auto ensureWritableUnit = [&jsUnit, &compilationUnit]() { + if (jsUnit == compilationUnit->data) { + char *unitCopy = (char*)malloc(jsUnit->unitSize); + memcpy(unitCopy, jsUnit, jsUnit->unitSize); + jsUnit = reinterpret_cast(unitCopy); + } + }; QV4::Compiler::StringTableGenerator &stringTable = irDocument->jsGenerator.stringTable; + if (jsUnit->sourceFileIndex == quint32(0) || jsUnit->stringAt(jsUnit->sourceFileIndex) != irDocument->jsModule.fileName) { + ensureWritableUnit(); + jsUnit->sourceFileIndex = stringTable.registerString(irDocument->jsModule.fileName); + } + // Collect signals that have had a change in signature (from onClicked to onClicked(mouse) for example) // and now need fixing in the QV4::CompiledData. Also register strings at the same time, to finalize // the string table. @@ -546,6 +558,7 @@ Unit *CompilationUnit::createUnitData(QmlIR::Document *irDocument) } if (!signalParameterNameTable.isEmpty()) { + ensureWritableUnit(); Q_ASSERT(jsUnit != compilationUnit->data); const uint signalParameterTableSize = signalParameterNameTable.count() * sizeof(quint32); uint newSize = jsUnit->unitSize + signalParameterTableSize; diff --git a/src/qml/compiler/qv4jsir.cpp b/src/qml/compiler/qv4jsir.cpp index 5687834b00..cc2f9b7cf2 100644 --- a/src/qml/compiler/qv4jsir.cpp +++ b/src/qml/compiler/qv4jsir.cpp @@ -348,11 +348,7 @@ Module::~Module() void Module::setFileName(const QString &name) { - if (fileName.isEmpty()) - fileName = name; - else { - Q_ASSERT(fileName == name); - } + fileName = name; } Function::Function(Module *module, Function *outer, const QString &name) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index f4f04e12c0..68eb989c70 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2407,6 +2407,7 @@ void QQmlTypeData::restoreIR(QQmlRefPointer m_document.reset(new QmlIR::Document(isDebugging())); QmlIR::IRLoader loader(unit->data, m_document.data()); loader.load(); + m_document->jsModule.setFileName(finalUrlString()); m_document->javaScriptCompilationUnit = unit; continueLoadFromIR(); } @@ -2507,6 +2508,8 @@ void QQmlTypeData::compile(const QQmlRefPointer &typeNameCach { Q_ASSERT(m_compiledData.isNull()); + const bool typeRecompilation = m_document && m_document->javaScriptCompilationUnit && m_document->javaScriptCompilationUnit->data->flags & QV4::CompiledData::Unit::PendingTypeCompilation; + QQmlEnginePrivate * const enginePrivate = QQmlEnginePrivate::get(typeLoader()->engine()); QQmlTypeCompiler compiler(enginePrivate, this, m_document.data(), typeNameCache, resolvedTypeCache); m_compiledData = compiler.compile(); @@ -2515,7 +2518,7 @@ void QQmlTypeData::compile(const QQmlRefPointer &typeNameCach return; } - const bool trySaveToDisk = (!disableDiskCache() || forceDiskCache()) && !m_document->jsModule.debugMode; + const bool trySaveToDisk = (!disableDiskCache() || forceDiskCache()) && !m_document->jsModule.debugMode && !typeRecompilation; if (trySaveToDisk) { QString errorString; if (m_compiledData->saveToDisk(url(), &errorString)) { diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index 78159c38d1..eb2986d957 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -112,7 +112,7 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi } { - QmlIR::JSCodeGen v4CodeGen(inputFileName, irDocument.code, &irDocument.jsModule, &irDocument.jsParserEngine, irDocument.program, /*import cache*/0, &irDocument.jsGenerator.stringTable); + QmlIR::JSCodeGen v4CodeGen(/*empty input file name*/QString(), irDocument.code, &irDocument.jsModule, &irDocument.jsParserEngine, irDocument.program, /*import cache*/0, &irDocument.jsGenerator.stringTable); for (QmlIR::Object *object: qAsConst(irDocument.objects)) { if (object->functionsAndExpressions->count == 0) continue; @@ -215,7 +215,7 @@ static bool compileJSFile(const QString &inputFileName, const QString &outputFil { QmlIR::JSCodeGen v4CodeGen(inputFileName, irDocument.code, &irDocument.jsModule, &irDocument.jsParserEngine, irDocument.program, /*import cache*/0, &irDocument.jsGenerator.stringTable); - v4CodeGen.generateFromProgram(inputFileName, sourceCode, program, &irDocument.jsModule, QQmlJS::Codegen::GlobalCode); + v4CodeGen.generateFromProgram(/*empty input file name*/QString(), sourceCode, program, &irDocument.jsModule, QQmlJS::Codegen::GlobalCode); QList jsErrors = v4CodeGen.errors(); if (!jsErrors.isEmpty()) { for (const QQmlJS::DiagnosticMessage &e: qAsConst(jsErrors)) { -- cgit v1.2.3 From 42e098fa0ad318a6b6fafadbadce21b974c29c4d Mon Sep 17 00:00:00 2001 From: Oleg Yadrov Date: Mon, 27 Feb 2017 13:15:52 -0800 Subject: QtQuick scene graph: fix text native rendering Only 65536 vertices (65536 / 4 = 16384 characters) can be drawn in one draw call. This is why QSGDistanceFieldGlyphNode (renderType: Text.QtRendering) creates subnodes if number of characters exceeds that limit. QSGDefaultGlyphNode (renderType: Text.NativeRendering) missed that logic for some reason. Task-number: QTBUG-58852 Change-Id: I88b3fcdb8e56bc92622d3347cd638634d43df138 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/quick/scenegraph/qsgdefaultglyphnode.cpp | 128 +++++++++++++++++++++++++++ src/quick/scenegraph/qsgdefaultglyphnode_p.h | 23 +++++ 2 files changed, 151 insertions(+) diff --git a/src/quick/scenegraph/qsgdefaultglyphnode.cpp b/src/quick/scenegraph/qsgdefaultglyphnode.cpp index b856d99bc1..0d42102f36 100644 --- a/src/quick/scenegraph/qsgdefaultglyphnode.cpp +++ b/src/quick/scenegraph/qsgdefaultglyphnode.cpp @@ -42,11 +42,33 @@ QT_BEGIN_NAMESPACE +QSGDefaultGlyphNode::QSGDefaultGlyphNode() + : m_glyphNodeType(RootGlyphNode) + , m_dirtyGeometry(false) +{ + setFlag(UsePreprocess); +} + +QSGDefaultGlyphNode::~QSGDefaultGlyphNode() +{ + if (m_glyphNodeType == SubGlyphNode) + return; + + qDeleteAll(m_nodesToDelete); + m_nodesToDelete.clear(); +} + void QSGDefaultGlyphNode::setMaterialColor(const QColor &color) { static_cast(m_material)->setColor(color); } +void QSGDefaultGlyphNode::setGlyphs(const QPointF &position, const QGlyphRun &glyphs) +{ + QSGBasicGlyphNode::setGlyphs(position, glyphs); + m_dirtyGeometry = true; +} + void QSGDefaultGlyphNode::update() { QRawFont font = m_glyphs.rawFont(); @@ -84,4 +106,110 @@ void QSGDefaultGlyphNode::update() markDirty(DirtyGeometry); } +void QSGDefaultGlyphNode::preprocess() +{ + qDeleteAll(m_nodesToDelete); + m_nodesToDelete.clear(); + + if (m_dirtyGeometry) + updateGeometry(); +} + +void QSGDefaultGlyphNode::updateGeometry() +{ + // Remove previously created sub glyph nodes + // We assume all the children are sub glyph nodes + QSGNode *subnode = firstChild(); + while (subnode) { + // We can't delete the node now as it might be in the preprocess list + // It will be deleted in the next preprocess + m_nodesToDelete.append(subnode); + subnode = subnode->nextSibling(); + } + removeAllChildNodes(); + + GlyphInfo glyphInfo; + + const QVector indexes = m_glyphs.glyphIndexes(); + const QVector positions = m_glyphs.positions(); + + const int maxGlyphs = (USHRT_MAX + 1) / 4; // 16384 + const int maxVertices = maxGlyphs * 4; // 65536 + const int maxIndexes = maxGlyphs * 6; // 98304 + + for (int i = 0; i < indexes.size(); ++i) { + const int glyphIndex = indexes.at(i); + const QPointF position = positions.at(i); + + // As we use UNSIGNED_SHORT indexing in the geometry, we overload the + // "glyphsInOtherNodes" concept as overflow for if there are more than + // 65536 (16384 * 4) vertices to render which would otherwise exceed + // the maximum index size. This will cause sub-nodes to be recursively + // created to handle any number of glyphs. + if (i >= maxGlyphs) { + glyphInfo.indexes.append(glyphIndex); + glyphInfo.positions.append(position); + continue; + } + } + + if (!glyphInfo.indexes.isEmpty()) { + QGlyphRun subNodeGlyphRun(m_glyphs); + subNodeGlyphRun.setGlyphIndexes(glyphInfo.indexes); + subNodeGlyphRun.setPositions(glyphInfo.positions); + + QSGDefaultGlyphNode *subNode = new QSGDefaultGlyphNode(); + subNode->setGlyphNodeType(SubGlyphNode); + subNode->setColor(m_color); + subNode->setStyle(m_style); + subNode->setStyleColor(m_styleColor); + subNode->setGlyphs(m_position, subNodeGlyphRun); + subNode->update(); + subNode->updateGeometry(); // we have to explicitly call this now as preprocess won't be called before it's rendered + appendChildNode(subNode); + + QSGGeometry *g = geometry(); + + QSGGeometry::TexturedPoint2D *vertexData = g->vertexDataAsTexturedPoint2D(); + quint16 *indexData = g->indexDataAsUShort(); + + QVector tempVertexData(maxVertices); + QVector tempIndexData(maxIndexes); + + for (int i = 0; i < maxGlyphs; i++) { + tempVertexData[i * 4 + 0] = vertexData[i * 4 + 0]; + tempVertexData[i * 4 + 1] = vertexData[i * 4 + 1]; + tempVertexData[i * 4 + 2] = vertexData[i * 4 + 2]; + tempVertexData[i * 4 + 3] = vertexData[i * 4 + 3]; + + tempIndexData[i * 6 + 0] = indexData[i * 6 + 0]; + tempIndexData[i * 6 + 1] = indexData[i * 6 + 1]; + tempIndexData[i * 6 + 2] = indexData[i * 6 + 2]; + tempIndexData[i * 6 + 3] = indexData[i * 6 + 3]; + tempIndexData[i * 6 + 4] = indexData[i * 6 + 4]; + tempIndexData[i * 6 + 5] = indexData[i * 6 + 5]; + } + + g->allocate(maxVertices, maxIndexes); + vertexData = g->vertexDataAsTexturedPoint2D(); + indexData = g->indexDataAsUShort(); + + for (int i = 0; i < maxGlyphs; i++) { + vertexData[i * 4 + 0] = tempVertexData[i * 4 + 0]; + vertexData[i * 4 + 1] = tempVertexData[i * 4 + 1]; + vertexData[i * 4 + 2] = tempVertexData[i * 4 + 2]; + vertexData[i * 4 + 3] = tempVertexData[i * 4 + 3]; + + indexData[i * 6 + 0] = tempIndexData[i * 6 + 0]; + indexData[i * 6 + 1] = tempIndexData[i * 6 + 1]; + indexData[i * 6 + 2] = tempIndexData[i * 6 + 2]; + indexData[i * 6 + 3] = tempIndexData[i * 6 + 3]; + indexData[i * 6 + 4] = tempIndexData[i * 6 + 4]; + indexData[i * 6 + 5] = tempIndexData[i * 6 + 5]; + } + } + + m_dirtyGeometry = false; +} + QT_END_NAMESPACE diff --git a/src/quick/scenegraph/qsgdefaultglyphnode_p.h b/src/quick/scenegraph/qsgdefaultglyphnode_p.h index 0eb7a4e4bd..37a89c70b9 100644 --- a/src/quick/scenegraph/qsgdefaultglyphnode_p.h +++ b/src/quick/scenegraph/qsgdefaultglyphnode_p.h @@ -59,8 +59,31 @@ QT_BEGIN_NAMESPACE class QSGDefaultGlyphNode : public QSGBasicGlyphNode { public: + QSGDefaultGlyphNode(); + ~QSGDefaultGlyphNode(); void setMaterialColor(const QColor &color) override; + void setGlyphs(const QPointF &position, const QGlyphRun &glyphs) override; void update() override; + void preprocess() override; + void updateGeometry(); + +private: + enum DefaultGlyphNodeType { + RootGlyphNode, + SubGlyphNode + }; + + void setGlyphNodeType(DefaultGlyphNodeType type) { m_glyphNodeType = type; } + + DefaultGlyphNodeType m_glyphNodeType; + QLinkedList m_nodesToDelete; + + struct GlyphInfo { + QVector indexes; + QVector positions; + }; + + uint m_dirtyGeometry: 1; }; QT_END_NAMESPACE -- cgit v1.2.3 From 6b4b2f5f1bbd706742cbab8764a1d07cbd912600 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 24 Jan 2017 12:07:33 +0100 Subject: New mark table implementation Automatically generate a table containing the data where JS Values and pointers are in objects in the JS heap. This will allow making the GC mark phase a lot more efficient. A bit of a special hack is currently required for MemberData and ArrayData, as they have a variable length, and we need to read the size from the object. We keep backwards compatibility with the old markObjects() functions for now (calling them if they are defined). Some further work on QV4::String and in a few other places is required before we can get remove the compatibility. Change-Id: I78528ace67e886bdbe4a4330c9677c7fc9f08a33 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject.cpp | 11 ------- src/qml/jsruntime/qv4argumentsobject_p.h | 26 +++++++++------ src/qml/jsruntime/qv4arraydata.cpp | 24 +------------- src/qml/jsruntime/qv4arraydata_p.h | 16 +++++++--- src/qml/jsruntime/qv4dataview.cpp | 7 ---- src/qml/jsruntime/qv4dataview_p.h | 13 ++++---- src/qml/jsruntime/qv4errorobject.cpp | 8 ----- src/qml/jsruntime/qv4errorobject_p.h | 14 ++++---- src/qml/jsruntime/qv4functionobject.cpp | 22 ++----------- src/qml/jsruntime/qv4functionobject_p.h | 26 ++++++++------- src/qml/jsruntime/qv4global_p.h | 1 + src/qml/jsruntime/qv4managed.cpp | 1 + src/qml/jsruntime/qv4managed_p.h | 5 ++- src/qml/jsruntime/qv4memberdata.cpp | 7 ---- src/qml/jsruntime/qv4memberdata_p.h | 14 ++++---- src/qml/jsruntime/qv4object.cpp | 12 ------- src/qml/jsruntime/qv4object_p.h | 18 ++++++----- src/qml/jsruntime/qv4persistent.cpp | 11 +------ src/qml/jsruntime/qv4qobjectwrapper.cpp | 9 ------ src/qml/jsruntime/qv4qobjectwrapper_p.h | 20 ++++++------ src/qml/jsruntime/qv4regexp.cpp | 6 ---- src/qml/jsruntime/qv4regexp_p.h | 2 -- src/qml/jsruntime/qv4regexpobject.cpp | 18 ----------- src/qml/jsruntime/qv4regexpobject_p.h | 29 +++++++++-------- src/qml/jsruntime/qv4stringobject.cpp | 7 ---- src/qml/jsruntime/qv4stringobject_p.h | 9 ++++-- src/qml/jsruntime/qv4typedarray.cpp | 6 ---- src/qml/jsruntime/qv4typedarray_p.h | 19 +++++------ src/qml/memory/qv4heap_p.h | 3 ++ src/qml/memory/qv4mm.cpp | 55 +++++++++++++++++++++++++++++--- src/qml/memory/qv4mm_p.h | 1 + src/qml/memory/qv4mmdefs_p.h | 48 ++++++++++++++++++++++++++++ src/qml/qml/qqmlcomponent.cpp | 28 ++++++---------- src/qml/qml/qqmlxmlhttprequest.cpp | 15 ++++----- 34 files changed, 242 insertions(+), 269 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 7c1cc92a13..39b99e9876 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -235,17 +235,6 @@ void ArgumentsSetterFunction::call(const Managed *setter, Scope &scope, CallData scope.result = Encode::undefined(); } -void ArgumentsObject::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - ArgumentsObject::Data *o = static_cast(that); - if (o->context) - o->context->mark(e); - if (o->mappedArguments) - o->mappedArguments->mark(e); - - Object::markObjects(that, e); -} - uint ArgumentsObject::getLength(const Managed *m) { const ArgumentsObject *a = static_cast(m); diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h index f80ade9611..f579afff14 100644 --- a/src/qml/jsruntime/qv4argumentsobject_p.h +++ b/src/qml/jsruntime/qv4argumentsobject_p.h @@ -59,26 +59,35 @@ namespace QV4 { namespace Heap { -struct ArgumentsGetterFunction : FunctionObject { +#define ArgumentsGetterFunctionMembers(class, Member) \ + Member(class, uint, index) + +DECLARE_HEAP_OBJECT(ArgumentsGetterFunction, FunctionObject) { + DECLARE_MARK_TABLE(ArgumentsGetterFunction); inline void init(QV4::ExecutionContext *scope, uint index); - uint index; }; -struct ArgumentsSetterFunction : FunctionObject { +#define ArgumentsSetterFunctionMembers(class, Member) \ + Member(class, uint, index) + +DECLARE_HEAP_OBJECT(ArgumentsSetterFunction, FunctionObject) { + DECLARE_MARK_TABLE(ArgumentsSetterFunction); inline void init(QV4::ExecutionContext *scope, uint index); - uint index; }; -struct ArgumentsObject : Object { +#define ArgumentsObjectMembers(class, Member) \ + Member(class, Pointer, context) \ + Member(class, Pointer, mappedArguments) \ + Member(class, bool, fullyCreated) + +DECLARE_HEAP_OBJECT(ArgumentsObject, Object) { + DECLARE_MARK_TABLE(ArgumentsObject); enum { LengthPropertyIndex = 0, CalleePropertyIndex = 1, CallerPropertyIndex = 3 }; void init(QV4::CallContext *context); - Pointer context; - bool fullyCreated; - Pointer mappedArguments; }; } @@ -131,7 +140,6 @@ struct ArgumentsObject: Object { static bool putIndexed(Managed *m, uint index, const Value &value); static bool deleteIndexedProperty(Managed *m, uint index); static PropertyAttributes queryIndexed(const Managed *m, uint index); - static void markObjects(Heap::Base *that, ExecutionEngine *e); static uint getLength(const Managed *m); void fullyCreate(); diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index d8a7de5466..47d353ffd0 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -49,6 +49,7 @@ using namespace QV4; QT_WARNING_SUPPRESS_GCC_TAUTOLOGICAL_COMPARE_ON const QV4::VTable QV4::ArrayData::static_vtbl = { + 0, 0, QV4::ArrayData::IsExecutionContext, QV4::ArrayData::IsString, @@ -233,20 +234,6 @@ void ArrayData::ensureAttributes(Object *o) ArrayData::realloc(o, Heap::ArrayData::Simple, 0, true); } - -void SimpleArrayData::markObjects(Heap::Base *d, ExecutionEngine *e) -{ - Heap::SimpleArrayData *dd = static_cast(d); - uint end = dd->offset + dd->len; - if (end > dd->alloc) { - for (uint i = 0; i < end - dd->alloc; ++i) - dd->arrayData[i].mark(e); - end = dd->alloc; - } - for (uint i = dd->offset; i < end; ++i) - dd->arrayData[i].mark(e); -} - ReturnedValue SimpleArrayData::get(const Heap::ArrayData *d, uint index) { const Heap::SimpleArrayData *dd = static_cast(d); @@ -380,15 +367,6 @@ void SparseArrayData::free(Heap::ArrayData *d, uint idx) d->attrs[idx].clear(); } - -void SparseArrayData::markObjects(Heap::Base *d, ExecutionEngine *e) -{ - Heap::SparseArrayData *dd = static_cast(d); - uint l = dd->alloc; - for (uint i = 0; i < l; ++i) - dd->arrayData[i].mark(e); -} - Heap::ArrayData *SparseArrayData::reallocate(Object *o, uint n, bool enforceAttributes) { realloc(o, Heap::ArrayData::Sparse, n, enforceAttributes); diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 24b948f01e..919bd84762 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -90,7 +90,7 @@ struct ArrayVTable namespace Heap { -struct ArrayData : public Base { +struct ArrayDataData { enum Type { Simple = 0, Complex = 1, @@ -110,6 +110,13 @@ struct ArrayData : public Base { SparseArray *sparse; }; Value arrayData[1]; +}; +static Q_CONSTEXPR quint64 ArrayData_markTable = \ + (MarkFlagsForType::markFlags << (offsetof(ArrayDataData, arrayData) >> 2)) \ + << (sizeof(Base) >> 2) | QV4::Heap::Base::markTable; + +struct ArrayData : public Base, ArrayDataData { + DECLARE_MARK_TABLE(ArrayData); bool isSparse() const { return type == Sparse; } @@ -189,6 +196,9 @@ struct Q_QML_EXPORT ArrayData : public Managed { typedef Heap::ArrayData::Type Type; V4_MANAGED(ArrayData, Managed) + enum { + IsArrayData = true + }; uint alloc() const { return d()->alloc; } uint &alloc() { return d()->alloc; } @@ -246,8 +256,6 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData static Heap::ArrayData *reallocate(Object *o, uint n, bool enforceAttributes); - static void markObjects(Heap::Base *d, ExecutionEngine *e); - static ReturnedValue get(const Heap::ArrayData *d, uint index); static bool put(Object *o, uint index, const Value &value); static bool putArray(Object *o, uint index, const Value *values, uint n); @@ -274,8 +282,6 @@ struct Q_QML_EXPORT SparseArrayData : public ArrayData uint mappedIndex(uint index) const { return d()->mappedIndex(index); } - static void markObjects(Heap::Base *d, ExecutionEngine *e); - static Heap::ArrayData *reallocate(Object *o, uint n, bool enforceAttributes); static ReturnedValue get(const Heap::ArrayData *d, uint index); static bool put(Object *o, uint index, const Value &value); diff --git a/src/qml/jsruntime/qv4dataview.cpp b/src/qml/jsruntime/qv4dataview.cpp index a810b38f24..aa7d01d16c 100644 --- a/src/qml/jsruntime/qv4dataview.cpp +++ b/src/qml/jsruntime/qv4dataview.cpp @@ -84,13 +84,6 @@ void DataViewCtor::call(const Managed *that, Scope &scope, CallData *callData) construct(that, scope, callData); } - -void DataView::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - DataView::Data *v = static_cast(that); - v->buffer->mark(e); -} - void DataViewPrototype::init(ExecutionEngine *engine, Object *ctor) { Scope scope(engine); diff --git a/src/qml/jsruntime/qv4dataview_p.h b/src/qml/jsruntime/qv4dataview_p.h index 11cc0a6bd9..f61a2a1780 100644 --- a/src/qml/jsruntime/qv4dataview_p.h +++ b/src/qml/jsruntime/qv4dataview_p.h @@ -63,11 +63,14 @@ struct DataViewCtor : FunctionObject { void init(QV4::ExecutionContext *scope); }; -struct DataView : Object { +#define DataViewMembers(class, Member) \ + Member(class, Pointer, buffer) \ + Member(class, uint, byteLength) \ + Member(class, uint, byteOffset) + +DECLARE_HEAP_OBJECT(DataView, Object) { + DECLARE_MARK_TABLE(DataView); void init() { Object::init(); } - Pointer buffer; - uint byteLength; - uint byteOffset; }; } @@ -84,8 +87,6 @@ struct DataView : Object { V4_OBJECT2(DataView, Object) V4_PROTOTYPE(dataViewPrototype) - - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; struct DataViewPrototype: Object diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp index f290bc5136..798a14086d 100644 --- a/src/qml/jsruntime/qv4errorobject.cpp +++ b/src/qml/jsruntime/qv4errorobject.cpp @@ -173,14 +173,6 @@ void ErrorObject::method_get_stack(const BuiltinFunction *, Scope &scope, CallDa scope.result = This->d()->stack; } -void ErrorObject::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - ErrorObject::Data *This = static_cast(that); - if (This->stack) - This->stack->mark(e); - Object::markObjects(that, e); -} - DEFINE_OBJECT_VTABLE(ErrorObject); DEFINE_OBJECT_VTABLE(SyntaxErrorObject); diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h index 9ba9f05234..a5af0b6ab6 100644 --- a/src/qml/jsruntime/qv4errorobject_p.h +++ b/src/qml/jsruntime/qv4errorobject_p.h @@ -62,7 +62,12 @@ struct SyntaxErrorObject; namespace Heap { -struct ErrorObject : Object { + +#define ErrorObjectMembers(class, Member) \ + Member(class, Pointer, stack) + +DECLARE_HEAP_OBJECT(ErrorObject, Object) { + DECLARE_MARK_TABLE(ErrorObject); enum ErrorType { Error, EvalError, @@ -72,6 +77,8 @@ struct ErrorObject : Object { TypeError, URIError }; + StackTrace *stackTrace; + ErrorType errorType; void init(); void init(const Value &message, ErrorType t = Error); @@ -80,10 +87,6 @@ struct ErrorObject : Object { delete stackTrace; Object::destroy(); } - - ErrorType errorType; - StackTrace *stackTrace; - Pointer stack; }; struct EvalErrorObject : ErrorObject { @@ -173,7 +176,6 @@ struct ErrorObject: Object { static const char *className(Heap::ErrorObject::ErrorType t); static void method_get_stack(const BuiltinFunction *, Scope &scope, CallData *callData); - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; template<> diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index e9431ed25e..ae1a403ea1 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -69,6 +69,8 @@ using namespace QV4; DEFINE_OBJECT_VTABLE(FunctionObject); +Q_STATIC_ASSERT((Heap::FunctionObject::markTable & Heap::Object::markTable) == Heap::Object::markTable); + void Heap::FunctionObject::init(QV4::ExecutionContext *scope, QV4::String *name, bool createProto) { Object::init(); @@ -149,15 +151,6 @@ void FunctionObject::call(const Managed *, Scope &scope, CallData *) scope.result = Encode::undefined(); } -void FunctionObject::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - Heap::FunctionObject *o = static_cast(that); - if (o->scope) - o->scope->mark(e); - - Object::markObjects(that, e); -} - Heap::FunctionObject *FunctionObject::createScriptFunction(ExecutionContext *scope, Function *function) { return scope->d()->engine->memoryManager->allocObject(scope, function); @@ -606,14 +599,3 @@ void BoundFunction::construct(const Managed *that, Scope &scope, CallData *dd) ScopedFunctionObject t(scope, f->target()); t->construct(scope, callData); } - -void BoundFunction::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - BoundFunction::Data *o = static_cast(that); - if (o->target) - o->target->mark(e); - o->boundThis.mark(e); - if (o->boundArgs) - o->boundArgs->mark(e); - FunctionObject::markObjects(that, e); -} diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index 45d7485f1b..083ff4343b 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -65,7 +65,12 @@ struct BuiltinFunction; namespace Heap { -struct Q_QML_PRIVATE_EXPORT FunctionObject : Object { +#define FunctionObjectMembers(class, Member) \ + Member(class, Pointer, scope) \ + Member(class, Function *, function) + +DECLARE_HEAP_OBJECT(FunctionObject, Object) { + DECLARE_MARK_TABLE(FunctionObject); enum { Index_Prototype = 0, Index_ProtoConstructor = 0 @@ -82,9 +87,6 @@ struct Q_QML_PRIVATE_EXPORT FunctionObject : Object { bool needsActivation() const { return function ? function->needsActivation() : false; } const QV4::Object *protoProperty() const { return propertyData(Index_Prototype)->cast(); } - - Pointer scope; - Function *function; }; struct FunctionCtor : FunctionObject { @@ -119,11 +121,15 @@ struct ScriptFunction : FunctionObject { void init(QV4::ExecutionContext *scope, Function *function); }; -struct BoundFunction : FunctionObject { +#define BoundFunctionMembers(class, Member) \ + Member(class, Pointer, target) \ + Member(class, Value, boundThis) \ + Member(class, Pointer, boundArgs) + +DECLARE_HEAP_OBJECT(BoundFunction, FunctionObject) { + DECLARE_MARK_TABLE(BoundFunction); + void init(QV4::ExecutionContext *scope, QV4::FunctionObject *target, const Value &boundThis, QV4::MemberData *boundArgs); - Pointer target; - Value boundThis; - Pointer boundArgs; }; } @@ -160,8 +166,6 @@ struct Q_QML_EXPORT FunctionObject: Object { bool isBoundFunction() const; QQmlSourceLocation sourceLocation() const; - - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; template<> @@ -259,8 +263,6 @@ struct BoundFunction: FunctionObject { static void construct(const Managed *, Scope &scope, CallData *d); static void call(const Managed *that, Scope &scope, CallData *dd); - - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; } diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index b0d14fc2b4..0f4859f0fa 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -184,6 +184,7 @@ namespace Heap { struct DataView; struct TypedArray; + template struct Pointer; } class MemoryManager; diff --git a/src/qml/jsruntime/qv4managed.cpp b/src/qml/jsruntime/qv4managed.cpp index 3a84a83b9c..1b43fd86e8 100644 --- a/src/qml/jsruntime/qv4managed.cpp +++ b/src/qml/jsruntime/qv4managed.cpp @@ -46,6 +46,7 @@ using namespace QV4; const VTable Managed::static_vtbl = { + 0, 0, Managed::IsExecutionContext, Managed::IsString, diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index 5c764e7ff0..d4cc31b96a 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -91,6 +91,7 @@ inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} dptr->_checkIsInitialized(); \ return dptr; \ } \ + static Q_CONSTEXPR quint64 markTable = QV4::Heap::DataClass::markTable; \ V4_ASSERT_IS_TRIVIAL(QV4::Heap::DataClass) #define V4_MANAGED(DataClass, superClass) \ @@ -129,6 +130,7 @@ inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} #define DEFINE_MANAGED_VTABLE_INT(classname, parentVTable) \ { \ parentVTable, \ + markTable, \ classname::IsExecutionContext, \ classname::IsString, \ classname::IsObject, \ @@ -139,7 +141,7 @@ inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} classname::MyType, \ #classname, \ Q_VTABLE_FUNCTION(classname, destroy), \ - markObjects, \ + Q_VTABLE_FUNCTION(classname, markObjects), \ isEqualTo \ } @@ -206,6 +208,7 @@ public: bool markBit() const { return d()->isMarked(); } static void destroy(Heap::Base *) {} + static void markObjects(Heap::Base *, ExecutionEngine *) {} Q_ALWAYS_INLINE Heap::Base *heapObject() const { return m(); diff --git a/src/qml/jsruntime/qv4memberdata.cpp b/src/qml/jsruntime/qv4memberdata.cpp index db45c77472..3a6d66a030 100644 --- a/src/qml/jsruntime/qv4memberdata.cpp +++ b/src/qml/jsruntime/qv4memberdata.cpp @@ -45,13 +45,6 @@ using namespace QV4; DEFINE_MANAGED_VTABLE(MemberData); -void MemberData::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - Heap::MemberData *m = static_cast(that); - for (uint i = 0; i < m->size; ++i) - m->data[i].mark(e); -} - Heap::MemberData *MemberData::allocate(ExecutionEngine *e, uint n, Heap::MemberData *old) { Q_ASSERT(!old || old->size < n); diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index 5c89dfe8ec..c4e797ff8d 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -59,12 +59,12 @@ namespace QV4 { namespace Heap { -struct MemberData : Base { - union { - uint size; - double _dummy; - }; - Value data[1]; +#define MemberDataMembers(class, Member) \ + Member(class, uint, size) \ + Member(class, ValueArray, data) + +DECLARE_HEAP_OBJECT(MemberData, Base) { + DECLARE_MARK_TABLE(MemberData); }; V4_ASSERT_IS_TRIVIAL(MemberData) @@ -80,8 +80,6 @@ struct MemberData : Managed inline uint size() const { return d()->size; } static Heap::MemberData *allocate(QV4::ExecutionEngine *e, uint n, Heap::MemberData *old = 0); - - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; } diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index dd3bbccde3..095aa6b4da 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -258,18 +258,6 @@ void Object::defineReadonlyConfigurableProperty(String *name, const Value &value insertMember(name, value, Attr_ReadOnly_ButConfigurable); } -void Object::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - Heap::Object *o = static_cast(that); - - if (o->memberData) - o->memberData->mark(e); - if (o->arrayData) - o->arrayData->mark(e); - if (o->prototype) - o->prototype->mark(e); -} - void Object::insertMember(String *s, const Property *p, PropertyAttributes attributes) { uint idx; diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 0d17afbf41..b0eec1adfc 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -67,17 +67,19 @@ struct BuiltinFunction; namespace Heap { -struct Object : Base { +#define ObjectMembers(class, Member) \ + Member(class, InternalClass *, internalClass) \ + Member(class, Pointer, prototype) \ + Member(class, Pointer, memberData) \ + Member(class, Pointer, arrayData) + +DECLARE_HEAP_OBJECT(Object, Base) { + DECLARE_MARK_TABLE(Object); void init() { Base::init(); } void destroy() { Base::destroy(); } const Value *propertyData(uint index) const { return memberData->data + index; } Value *propertyData(uint index) { return memberData->data + index; } - - InternalClass *internalClass; - Pointer prototype; - Pointer memberData; - Pointer arrayData; }; } @@ -114,7 +116,8 @@ struct Object : Base { dptr->_checkIsInitialized(); \ return dptr; \ } \ - V4_ASSERT_IS_TRIVIAL(QV4::Heap::DataClass); + V4_ASSERT_IS_TRIVIAL(QV4::Heap::DataClass); \ + static Q_CONSTEXPR quint64 markTable = QV4::Heap::DataClass::markTable; #define V4_INTERNALCLASS(c) \ static QV4::InternalClass *defaultInternalClass(QV4::ExecutionEngine *e) \ @@ -400,7 +403,6 @@ public: inline void call(Scope &scope, CallData *d) const { vtable()->call(this, scope, d); } protected: - static void markObjects(Heap::Base *that, ExecutionEngine *e); static void construct(const Managed *m, Scope &scope, CallData *); static void call(const Managed *m, Scope &scope, CallData *); static ReturnedValue get(const Managed *m, String *name, bool *hasProperty); diff --git a/src/qml/jsruntime/qv4persistent.cpp b/src/qml/jsruntime/qv4persistent.cpp index 987c322e47..de82bf835f 100644 --- a/src/qml/jsruntime/qv4persistent.cpp +++ b/src/qml/jsruntime/qv4persistent.cpp @@ -215,15 +215,6 @@ void PersistentValueStorage::free(Value *v) freePage(p); } -static void drainMarkStack(QV4::ExecutionEngine *engine, Value *markBase) -{ - while (engine->jsStackTop > markBase) { - Heap::Base *h = engine->popForGC(); - Q_ASSERT (h->vtable()->markObjects); - h->vtable()->markObjects(h, engine); - } -} - void PersistentValueStorage::mark(ExecutionEngine *e) { Value *markBase = e->jsStackTop; @@ -234,7 +225,7 @@ void PersistentValueStorage::mark(ExecutionEngine *e) if (Managed *m = p->values[i].as()) m->mark(e); } - drainMarkStack(e, markBase); + e->memoryManager->drainMarkStack(markBase); p = p->header.next; } diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index c9b4b433bd..deea893632 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -1841,15 +1841,6 @@ void QObjectMethod::callInternal(CallData *callData, Scope &scope) const } } -void QObjectMethod::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - QObjectMethod::Data *This = static_cast(that); - if (This->valueTypeWrapper) - This->valueTypeWrapper->mark(e); - - FunctionObject::markObjects(that, e); -} - DEFINE_OBJECT_VTABLE(QObjectMethod); diff --git a/src/qml/jsruntime/qv4qobjectwrapper_p.h b/src/qml/jsruntime/qv4qobjectwrapper_p.h index d81ef2a680..002e1f2eb0 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper_p.h +++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h @@ -95,7 +95,15 @@ private: QQmlQPointer qObj; }; -struct QObjectMethod : FunctionObject { +#define QObjectMethodMembers(class, Member) \ + Member(class, Pointer, valueTypeWrapper) \ + Member(class, QQmlQPointer, qObj) \ + Member(class, QQmlPropertyCache *, _propertyCache) \ + Member(class, int, index) + +DECLARE_HEAP_OBJECT(QObjectMethod, FunctionObject) { + DECLARE_MARK_TABLE(QObjectMethod); + void init(QV4::ExecutionContext *scope); void destroy() { @@ -113,18 +121,10 @@ struct QObjectMethod : FunctionObject { _propertyCache = c; } - Pointer valueTypeWrapper; - const QMetaObject *metaObject(); QObject *object() const { return qObj.data(); } void setObject(QObject *o) { qObj = o; } -private: - QQmlQPointer qObj; - QQmlPropertyCache *_propertyCache; - -public: - int index; }; struct QMetaObjectWrapper : FunctionObject { @@ -243,8 +243,6 @@ struct Q_QML_EXPORT QObjectMethod : public QV4::FunctionObject void callInternal(CallData *callData, Scope &scope) const; - static void markObjects(Heap::Base *that, QV4::ExecutionEngine *e); - static QPair extractQtMethod(const QV4::FunctionObject *function); }; diff --git a/src/qml/jsruntime/qv4regexp.cpp b/src/qml/jsruntime/qv4regexp.cpp index 9e94c58432..6778145ff1 100644 --- a/src/qml/jsruntime/qv4regexp.cpp +++ b/src/qml/jsruntime/qv4regexp.cpp @@ -126,9 +126,3 @@ void Heap::RegExp::destroy() delete pattern; Base::destroy(); } - -void RegExp::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - Q_UNUSED(that); - Q_UNUSED(e); -} diff --git a/src/qml/jsruntime/qv4regexp_p.h b/src/qml/jsruntime/qv4regexp_p.h index d3e63375a5..348af0fb14 100644 --- a/src/qml/jsruntime/qv4regexp_p.h +++ b/src/qml/jsruntime/qv4regexp_p.h @@ -119,8 +119,6 @@ struct RegExp : public Managed int captureCount() const { return subPatternCount() + 1; } - static void markObjects(Heap::Base *that, QV4::ExecutionEngine *e); - friend class RegExpCache; }; diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index 0894d0c25b..ca893839ef 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -162,15 +162,6 @@ void RegExpObject::initProperties() *propertyData(Index_Multiline) = Primitive::fromBoolean(value()->multiLine); } - -void RegExpObject::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - RegExpObject::Data *re = static_cast(that); - if (re->value) - re->value->mark(e); - Object::markObjects(that, e); -} - Value *RegExpObject::lastIndexProperty() { Q_ASSERT(0 == internalClass()->find(engine()->id_lastIndex())); @@ -303,15 +294,6 @@ void RegExpCtor::call(const Managed *that, Scope &scope, CallData *callData) construct(that, scope, callData); } -void RegExpCtor::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - RegExpCtor::Data *This = static_cast(that); - This->lastMatch.mark(e); - if (This->lastInput) - This->lastInput->mark(e); - FunctionObject::markObjects(that, e); -} - void RegExpPrototype::init(ExecutionEngine *engine, Object *constructor) { Scope scope(engine); diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index c0c7dfa78a..6726568eec 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -73,21 +73,28 @@ namespace QV4 { namespace Heap { -struct RegExpObject : Object { +#define RegExpObjectMembers(class, Member) \ + Member(class, Pointer, value) \ + Member(class, bool, global) + +DECLARE_HEAP_OBJECT(RegExpObject, Object) { + DECLARE_MARK_TABLE(RegExpObject); + void init(); void init(QV4::RegExp *value, bool global); void init(const QRegExp &re); - - Pointer value; - bool global; }; -struct RegExpCtor : FunctionObject { +#define RegExpCtorMembers(class, Member) \ + Member(class, Value, lastMatch) \ + Member(class, Pointer, lastInput) \ + Member(class, int, lastMatchStart) \ + Member(class, int, lastMatchEnd) + +DECLARE_HEAP_OBJECT(RegExpCtor, FunctionObject) { + DECLARE_MARK_TABLE(RegExpCtor); + void init(QV4::ExecutionContext *scope); - Value lastMatch; - Pointer lastInput; - int lastMatchStart; - int lastMatchEnd; void clearLastMatch(); }; @@ -126,9 +133,6 @@ struct RegExpObject: Object { QString toString() const; QString source() const; uint flags() const; - -protected: - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; struct RegExpCtor: FunctionObject @@ -142,7 +146,6 @@ struct RegExpCtor: FunctionObject static void construct(const Managed *m, Scope &scope, CallData *callData); static void call(const Managed *that, Scope &scope, CallData *callData); - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; struct RegExpPrototype: RegExpObject diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index 72be11eca0..c6cc5a4639 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -145,13 +145,6 @@ void StringObject::advanceIterator(Managed *m, ObjectIterator *it, Value *name, return Object::advanceIterator(m, it, name, index, p, attrs); } -void StringObject::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - StringObject::Data *o = static_cast(that); - o->string->mark(e); - Object::markObjects(that, e); -} - DEFINE_OBJECT_VTABLE(StringCtor); void Heap::StringCtor::init(QV4::ExecutionContext *scope) diff --git a/src/qml/jsruntime/qv4stringobject_p.h b/src/qml/jsruntime/qv4stringobject_p.h index aed3bc1e28..ae9377abb4 100644 --- a/src/qml/jsruntime/qv4stringobject_p.h +++ b/src/qml/jsruntime/qv4stringobject_p.h @@ -60,14 +60,18 @@ namespace QV4 { namespace Heap { -struct StringObject : Object { +#define StringObjectMembers(class, Member) \ + Member(class, Pointer, string) + +DECLARE_HEAP_OBJECT(StringObject, Object) { + DECLARE_MARK_TABLE(StringObject); + enum { LengthPropertyIndex = 0 }; void init(); void init(const QV4::String *string); - String *string; Heap::String *getIndex(uint index) const; uint length() const; @@ -96,7 +100,6 @@ struct StringObject: Object { protected: static void advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint *index, Property *p, PropertyAttributes *attrs); - static void markObjects(Heap::Base *that, ExecutionEngine *e); }; struct StringCtor: FunctionObject diff --git a/src/qml/jsruntime/qv4typedarray.cpp b/src/qml/jsruntime/qv4typedarray.cpp index 5573a2e57f..e936158ab1 100644 --- a/src/qml/jsruntime/qv4typedarray.cpp +++ b/src/qml/jsruntime/qv4typedarray.cpp @@ -375,12 +375,6 @@ Heap::TypedArray *TypedArray::create(ExecutionEngine *e, Heap::TypedArray::Type return e->memoryManager->allocObject(e->emptyClass, e->typedArrayPrototype + t, t); } -void TypedArray::markObjects(Heap::Base *that, ExecutionEngine *e) -{ - static_cast(that)->buffer->mark(e); - Object::markObjects(that, e); -} - ReturnedValue TypedArray::getIndexed(const Managed *m, uint index, bool *hasProperty) { Scope scope(static_cast(m)->engine()); diff --git a/src/qml/jsruntime/qv4typedarray_p.h b/src/qml/jsruntime/qv4typedarray_p.h index fbf13c9815..f6b302a396 100644 --- a/src/qml/jsruntime/qv4typedarray_p.h +++ b/src/qml/jsruntime/qv4typedarray_p.h @@ -72,7 +72,15 @@ struct TypedArrayOperations { namespace Heap { -struct TypedArray : Object { +#define TypedArrayMembers(class, Member) \ + Member(class, Pointer, buffer) \ + Member(class, const TypedArrayOperations *, type) \ + Member(class, uint, byteLength) \ + Member(class, uint, byteOffset) \ + Member(class, uint, arrayType) + +DECLARE_HEAP_OBJECT(TypedArray, Object) { + DECLARE_MARK_TABLE(TypedArray); enum Type { Int8Array, UInt8Array, @@ -87,12 +95,6 @@ struct TypedArray : Object { }; void init(Type t); - - const TypedArrayOperations *type; - Pointer buffer; - uint byteLength; - uint byteOffset; - Type arrayType; }; struct TypedArrayCtor : FunctionObject { @@ -128,10 +130,9 @@ struct Q_QML_PRIVATE_EXPORT TypedArray : Object } Heap::TypedArray::Type arrayType() const { - return d()->arrayType; + return static_cast(d()->arrayType); } - static void markObjects(Heap::Base *that, ExecutionEngine *e); static ReturnedValue getIndexed(const Managed *m, uint index, bool *hasProperty); static bool putIndexed(Managed *m, uint index, const Value &value); }; diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index 8285ef4de7..28d39b7fb7 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -72,6 +72,7 @@ namespace QV4 { struct VTable { const VTable * const parent; + const quint64 markTable; uint isExecutionContext : 1; uint isString : 1; uint isObject : 1; @@ -91,6 +92,8 @@ namespace Heap { struct Q_QML_EXPORT Base { void *operator new(size_t) = delete; + static Q_CONSTEXPR quint64 markTable = 0; + const VTable *vt; inline ReturnedValue asReturnedValue() const; diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index a829e902fb..bb600c6c0f 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -740,13 +740,58 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM return o; } -static void drainMarkStack(QV4::ExecutionEngine *engine, Value *markBase) +void MemoryManager::drainMarkStack(Value *markBase) { while (engine->jsStackTop > markBase) { Heap::Base *h = engine->popForGC(); Q_ASSERT(h); // at this point we should only have Heap::Base objects in this area on the stack. If not, weird things might happen. - Q_ASSERT (h->vtable()->markObjects); - h->vtable()->markObjects(h, engine); + if (h->vtable()->markObjects) + h->vtable()->markObjects(h, engine); + if (quint64 m = h->vtable()->markTable) { +// qDebug() << "using mark table:" << hex << m << "for" << h; + void **mem = reinterpret_cast(h); + while (m) { + MarkFlags mark = static_cast(m & 3); + switch (mark) { + case Mark_NoMark: + break; + case Mark_Value: +// qDebug() << "marking value at " << mem; + reinterpret_cast(mem)->mark(engine); + break; + case Mark_Pointer: { +// qDebug() << "marking pointer at " << mem; + Heap::Pointer *p = reinterpret_cast *>(mem); + if (*p) + (*p)->mark(engine); + break; + } + case Mark_ValueArray: { + Q_ASSERT(m == Mark_ValueArray); +// qDebug() << "marking Value Array at offset" << hex << (mem - reinterpret_cast(h)); + uint size; + Value *v = reinterpret_cast(mem); + if (h->vtable() == QV4::MemberData::staticVTable()) { + size = static_cast(h)->size; + } else if (h->vtable()->isArrayData) { + size = static_cast(h)->alloc; + } else { + size = 0; + Q_ASSERT(false); + } + const Value *end = v + size; + while (v < end) { + v->mark(engine); + ++v; + } + break; + } + } + + m >>= 2; + ++mem; + } + } } } @@ -788,10 +833,10 @@ void MemoryManager::mark() qobjectWrapper->mark(engine); if (engine->jsStackTop >= engine->jsStackLimit) - drainMarkStack(engine, markBase); + drainMarkStack(markBase); } - drainMarkStack(engine, markBase); + drainMarkStack(markBase); } void MemoryManager::sweep(bool lastSweep) diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 00daf8a622..016879799a 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -427,6 +427,7 @@ public: // called when a JS object grows itself. Specifically: Heap::String::append void changeUnmanagedHeapSizeUsage(qptrdiff delta) { unmanagedHeapSize += delta; } + void drainMarkStack(Value *markBase); protected: diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 588ae21ee0..90e7d9cb61 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -255,6 +255,54 @@ Q_STATIC_ASSERT(sizeof(HeapItem) == Chunk::SlotSize); Q_STATIC_ASSERT(QT_POINTER_SIZE*8 == Chunk::Bits); Q_STATIC_ASSERT((1 << Chunk::BitShift) == Chunk::Bits); +// Some helper classes and macros to automate the generation of our +// tables used for marking objects + +enum MarkFlags { + Mark_NoMark = 0, + Mark_Value = 1, + Mark_Pointer = 2, + Mark_ValueArray = 3 +}; + +template +struct MarkFlagsForType { + static const quint64 markFlags = Mark_NoMark; +}; +template +struct MarkFlagsForType> { + static const quint64 markFlags = Mark_Pointer; +}; +template<> +struct MarkFlagsForType { + static const quint64 markFlags = Mark_Value; +}; + +typedef Value ValueArray[1]; +template<> +struct MarkFlagsForType { + static const quint64 markFlags = Mark_ValueArray; +}; + +#define HEAP_OBJECT_MEMBER_EXPANSION(c, type, name) type name; + +#define HEAP_OBJECT_MARK_EXPANSION(class, type, name) \ + (MarkFlagsForType::markFlags << (offsetof(class, name) >> 2)) | + +#define DECLARE_HEAP_OBJECT(name, base) \ +struct name##Data { \ + name##Members(name, HEAP_OBJECT_MEMBER_EXPANSION) \ +}; \ +struct name##SizeStruct : base, name##Data {}; \ +static Q_CONSTEXPR quint64 name##_markTable = \ + (name##Members(name##Data, HEAP_OBJECT_MARK_EXPANSION) 0) << (((sizeof(name##SizeStruct) - sizeof(name##Data)) >> 2) | QV4::Heap::base::markTable; \ + \ +struct name : base, name##Data + +#define DECLARE_MARK_TABLE(class) static Q_CONSTEXPR quint64 markTable = class##_markTable + + + } QT_END_NAMESPACE diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index a04f47e6a4..487846f610 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1046,14 +1046,18 @@ namespace QV4 { namespace Heap { -struct QmlIncubatorObject : Object { +#define QmlIncubatorObjectMembers(class, Member) \ + Member(class, Value, valuemap) \ + Member(class, Value, statusChanged) \ + Member(class, Pointer, qmlContext) \ + Member(class, QQmlComponentIncubator *, incubator) \ + Member(class, QQmlQPointer, parent) + +DECLARE_HEAP_OBJECT(QmlIncubatorObject, Object) { + DECLARE_MARK_TABLE(QmlIncubatorObject); + void init(QQmlIncubator::IncubationMode = QQmlIncubator::Asynchronous); inline void destroy(); - QQmlComponentIncubator *incubator; - QQmlQPointer parent; - QV4::Value valuemap; - QV4::Value statusChanged; - Pointer qmlContext; }; } @@ -1069,8 +1073,6 @@ struct QmlIncubatorObject : public QV4::Object static void method_get_object(const BuiltinFunction *, Scope &scope, CallData *callData); static void method_forceCompletion(const BuiltinFunction *, Scope &scope, CallData *callData); - static void markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e); - void statusChanged(QQmlIncubator::Status); void setInitialState(QObject *); }; @@ -1497,16 +1499,6 @@ void QV4::QmlIncubatorObject::setInitialState(QObject *o) } } -void QV4::QmlIncubatorObject::markObjects(QV4::Heap::Base *that, QV4::ExecutionEngine *e) -{ - QmlIncubatorObject::Data *o = static_cast(that); - o->valuemap.mark(e); - o->statusChanged.mark(e); - if (o->qmlContext) - o->qmlContext->mark(e); - Object::markObjects(that, e); -} - void QV4::QmlIncubatorObject::statusChanged(QQmlIncubator::Status s) { QV4::Scope scope(engine()); diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index d0d9f080da..868120a2f6 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1597,10 +1597,12 @@ struct QQmlXMLHttpRequestWrapper : Object { QQmlXMLHttpRequest *request; }; -struct QQmlXMLHttpRequestCtor : FunctionObject { - void init(ExecutionEngine *engine); +#define QQmlXMLHttpRequestCtorMembers(class, Member) \ + Member(class, Pointer, proto) - Pointer proto; +DECLARE_HEAP_OBJECT(QQmlXMLHttpRequestCtor, FunctionObject) { + DECLARE_MARK_TABLE(QQmlXMLHttpRequestCtor); + void init(ExecutionEngine *engine); }; } @@ -1614,12 +1616,7 @@ struct QQmlXMLHttpRequestWrapper : public Object struct QQmlXMLHttpRequestCtor : public FunctionObject { V4_OBJECT2(QQmlXMLHttpRequestCtor, FunctionObject) - static void markObjects(Heap::Base *that, ExecutionEngine *e) { - QQmlXMLHttpRequestCtor::Data *c = static_cast(that); - if (c->proto) - c->proto->mark(e); - FunctionObject::markObjects(that, e); - } + static void construct(const Managed *that, Scope &scope, QV4::CallData *) { Scoped ctor(scope, that->as()); -- cgit v1.2.3 From 4de7e48ab160dacc7a09360e80264eac4945a8f4 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 25 Jan 2017 15:24:27 +0100 Subject: Move most of the ExecutionContext's over to the new mark handling CallContext still requires further work, as the handling of locals is different between a CallContext and a SimpleCallContext. Change-Id: I74945ef701f60907aab0fb1a9939da1331235f6e Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4context.cpp | 53 ++++++++----------------------------- src/qml/jsruntime/qv4context_p.h | 46 +++++++++++++++++++++----------- src/qml/jsruntime/qv4qmlcontext_p.h | 9 ++++--- 3 files changed, 48 insertions(+), 60 deletions(-) diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 740ebbe359..fe01b9abad 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -264,52 +264,21 @@ bool CallContext::needsOwnArguments() const return (f && f->needsActivation()) || (argc() < (f ? static_cast(f->nFormals) : 0)); } -void ExecutionContext::markObjects(Heap::Base *m, ExecutionEngine *engine) +void CallContext::markObjects(Heap::Base *m, ExecutionEngine *engine) { - ExecutionContext::Data *ctx = static_cast(m); + QV4::Heap::CallContext *ctx = static_cast(m); - if (ctx->outer) - ctx->outer->mark(engine); - - switch (ctx->type) { - case Heap::ExecutionContext::Type_CatchContext: { - CatchContext::Data *c = static_cast(ctx); - c->exceptionVarName->mark(engine); - c->exceptionValue.mark(engine); - break; - } - case Heap::ExecutionContext::Type_WithContext: { - WithContext::Data *w = static_cast(ctx); - if (w->withObject) - w->withObject->mark(engine); - break; - } - case Heap::ExecutionContext::Type_GlobalContext: { - GlobalContext::Data *g = static_cast(ctx); - g->global->mark(engine); - break; - } - case Heap::ExecutionContext::Type_SimpleCallContext: - break; - case Heap::ExecutionContext::Type_CallContext: { - QV4::Heap::CallContext *c = static_cast(ctx); - Q_ASSERT(c->v4Function); + if (ctx->type == Heap::ExecutionContext::Type_CallContext) { + Q_ASSERT(ctx->v4Function); ctx->callData->thisObject.mark(engine); - for (int arg = 0; arg < qMax(ctx->callData->argc, (int)c->v4Function->nFormals); ++arg) + for (int arg = 0; arg < qMax(ctx->callData->argc, (int)ctx->v4Function->nFormals); ++arg) ctx->callData->args[arg].mark(engine); - for (unsigned local = 0, lastLocal = c->v4Function->compiledFunction->nLocals; local < lastLocal; ++local) - c->locals[local].mark(engine); - if (c->activation) - c->activation->mark(engine); - if (c->function) - c->function->mark(engine); - break; - } - case Heap::ExecutionContext::Type_QmlContext: { - QmlContext::Data *g = static_cast(ctx); - g->qml->mark(engine); - break; - } + for (unsigned local = 0, lastLocal = ctx->v4Function->compiledFunction->nLocals; local < lastLocal; ++local) + ctx->locals[local].mark(engine); + if (ctx->activation) + ctx->activation->mark(engine); + if (ctx->function) + ctx->function->mark(engine); } } diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index bcfee2e1f8..cbf1ac9f7d 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -95,7 +95,11 @@ namespace Heap { struct QmlContext; -struct ExecutionContext : Base { +#define ExecutionContextMembers(class, Member) \ + Member(class, Pointer, outer) + +DECLARE_HEAP_OBJECT(ExecutionContext, Base) { + DECLARE_MARK_TABLE(ExecutionContext); enum ContextType { Type_GlobalContext = 0x1, Type_CatchContext = 0x2, @@ -117,7 +121,6 @@ struct ExecutionContext : Base { CallData *callData; ExecutionEngine *engine; - Pointer outer; Lookup *lookups; const QV4::Value *constantTable; CompiledData::CompilationUnit *compilationUnit; @@ -128,7 +131,12 @@ struct ExecutionContext : Base { }; V4_ASSERT_IS_TRIVIAL(ExecutionContext) -struct CallContext : ExecutionContext { +#define CallContextMembers(class, Member) \ + Member(class, Pointer, function) \ + Member(class, Pointer, activation) + +DECLARE_HEAP_OBJECT(CallContext, ExecutionContext) { + DECLARE_MARK_TABLE(CallContext); static CallContext *createSimpleContext(ExecutionEngine *v4); void freeSimpleCallContext(); @@ -139,27 +147,38 @@ struct CallContext : ExecutionContext { inline unsigned int formalParameterCount() const; - Pointer function; QV4::Function *v4Function; Value *locals; - Pointer activation; }; V4_ASSERT_IS_TRIVIAL(CallContext) -struct GlobalContext : ExecutionContext { +#define GlobalContextMembers(class, Member) \ + Member(class, Pointer, global) + +DECLARE_HEAP_OBJECT(GlobalContext, ExecutionContext) { + DECLARE_MARK_TABLE(GlobalContext); + void init(ExecutionEngine *engine); - Pointer global; }; V4_ASSERT_IS_TRIVIAL(GlobalContext) -struct CatchContext : ExecutionContext { +#define CatchContextMembers(class, Member) \ + Member(class, Pointer, exceptionVarName) \ + Member(class, Value, exceptionValue) + +DECLARE_HEAP_OBJECT(CatchContext, ExecutionContext) { + DECLARE_MARK_TABLE(CatchContext); + void init(ExecutionContext *outerContext, String *exceptionVarName, const Value &exceptionValue); - Pointer exceptionVarName; - Value exceptionValue; }; V4_ASSERT_IS_TRIVIAL(CatchContext) -struct WithContext : ExecutionContext { +#define WithContextMembers(class, Member) \ + Member(class, Pointer, withObject) + +DECLARE_HEAP_OBJECT(WithContext, ExecutionContext) { + DECLARE_MARK_TABLE(WithContext); + void init(ExecutionContext *outerContext, Object *with) { Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_WithContext); @@ -171,8 +190,6 @@ struct WithContext : ExecutionContext { withObject = with; } - - Pointer withObject; }; V4_ASSERT_IS_TRIVIAL(WithContext) @@ -207,8 +224,6 @@ struct Q_QML_EXPORT ExecutionContext : public Managed Function *getFunction() const; - static void markObjects(Heap::Base *m, ExecutionEngine *e); - Value &thisObject() const { return d()->callData->thisObject; } @@ -239,6 +254,7 @@ struct Q_QML_EXPORT CallContext : public ExecutionContext inline ReturnedValue argument(int i) const; bool needsOwnArguments() const; + static void markObjects(Heap::Base *m, ExecutionEngine *e); }; inline ReturnedValue CallContext::argument(int i) const { diff --git a/src/qml/jsruntime/qv4qmlcontext_p.h b/src/qml/jsruntime/qv4qmlcontext_p.h index 6e5e743609..73100807ae 100644 --- a/src/qml/jsruntime/qv4qmlcontext_p.h +++ b/src/qml/jsruntime/qv4qmlcontext_p.h @@ -77,10 +77,13 @@ struct QmlContextWrapper : Object { QQmlQPointer scopeObject; }; -struct QmlContext : ExecutionContext { - void init(QV4::ExecutionContext *outerContext, QV4::QmlContextWrapper *qml); +#define QmlContextMembers(class, Member) \ + Member(class, Pointer, qml) + +DECLARE_HEAP_OBJECT(QmlContext, ExecutionContext) { + DECLARE_MARK_TABLE(QmlContext); - Pointer qml; + void init(QV4::ExecutionContext *outerContext, QV4::QmlContextWrapper *qml); }; } -- cgit v1.2.3 From 58b882ad42f99e03ac8dca13ff9c0d39fcafbaa0 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 27 Jan 2017 09:05:54 +0100 Subject: Avoid one indirection when looking up local variables Simple CallContext's never have locals, as they get converted to temps in the compiler. For regular CallContext's, local variables always got appended to the callcontext. So there was no need to have an additional indirect pointer to them in the CallContext. This speeds up v8-bench by 1-2%. Change-Id: I3def7ba653aea5bc5761076f398450ae30c62823 Reviewed-by: Simon Hausmann --- src/qml/jit/qv4assembler.cpp | 3 +-- src/qml/jsruntime/qv4context.cpp | 4 +--- src/qml/jsruntime/qv4context_p.h | 2 +- src/qml/jsruntime/qv4function.cpp | 3 ++- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index e658977da1..0b3d0bd0cc 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -286,8 +286,7 @@ typename Assembler::Pointer Assembler: } break; case IR::ArgLocal::Local: case IR::ArgLocal::ScopedLocal: { - loadPtr(Address(baseReg, qOffsetOf(CallContext::Data, locals)), baseReg); - offset = al->index * sizeof(Value); + offset = qOffsetOf(CallContext::Data, locals) + al->index * sizeof(Value); } break; default: Q_UNREACHABLE(); diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index fe01b9abad..569523595c 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -61,7 +61,7 @@ DEFINE_MANAGED_VTABLE(GlobalContext); /* Function *f, int argc */ #define requiredMemoryForExecutionContect(f, argc) \ - ((sizeof(CallContext::Data) + 7) & ~7) + \ + sizeof(CallContext::Data) - sizeof(Value) + \ sizeof(Value) * (f->compiledFunction->nLocals + qMax((uint)argc, f->nFormals)) + sizeof(CallData) Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData *callData) @@ -80,7 +80,6 @@ Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData c->compilationUnit = function->compilationUnit; c->lookups = c->compilationUnit->runtimeLookups; c->constantTable = c->compilationUnit->constants; - c->locals = (Value *)((quintptr(c + 1) + 7) & ~7); const CompiledData::Function *compiledFunction = function->compiledFunction; int nLocals = compiledFunction->nLocals; @@ -314,7 +313,6 @@ void QV4::ExecutionContext::simpleCall(Scope &scope, CallData *callData, Functio ctx->lookups = function->compilationUnit->runtimeLookups; ctx->constantTable = function->compilationUnit->constants; ctx->outer = this->d(); - ctx->locals = scope.alloc(function->compiledFunction->nLocals); for (int i = callData->argc; i < (int)function->nFormals; ++i) callData->args[i] = Encode::undefined(); diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index cbf1ac9f7d..96cdb90db9 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -148,7 +148,7 @@ DECLARE_HEAP_OBJECT(CallContext, ExecutionContext) { inline unsigned int formalParameterCount() const; QV4::Function *v4Function; - Value *locals; + Value locals[1]; }; V4_ASSERT_IS_TRIVIAL(CallContext) diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp index 358c2d079c..dd3208c7e9 100644 --- a/src/qml/jsruntime/qv4function.cpp +++ b/src/qml/jsruntime/qv4function.cpp @@ -86,7 +86,8 @@ Function::Function(ExecutionEngine *engine, CompiledData::CompilationUnit *unit, activationRequired = compiledFunction->nInnerFunctions > 0 || (compiledFunction->flags & (CompiledData::Function::HasDirectEval | CompiledData::Function::UsesArgumentsObject)); canUseSimpleCall = !needsActivation() && !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) && - !(compiledFunction->nFormals > QV4::Global::ReservedArgumentCount) && !isNamedExpression(); + compiledFunction->nFormals <= QV4::Global::ReservedArgumentCount && + compiledFunction->nLocals == 0 && !isNamedExpression(); } Function::~Function() -- cgit v1.2.3 From 10c1e4053366085080a39ea84ebbd189c8d827ec Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 27 Jan 2017 09:57:00 +0100 Subject: Unify mark handling for MemberData and ArrayData Introduce a ValueArray class, that defines an array of Values at the end of a Heap Object. Change-Id: I00efbf6f5839a6687dd5bc5fc037ec8f06e0936e Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject.cpp | 4 +- src/qml/jsruntime/qv4arraydata.cpp | 144 +++++++++++++++---------------- src/qml/jsruntime/qv4arraydata_p.h | 46 +++++----- src/qml/jsruntime/qv4arrayobject.cpp | 4 +- src/qml/jsruntime/qv4engine.cpp | 6 +- src/qml/jsruntime/qv4functionobject.cpp | 4 +- src/qml/jsruntime/qv4global_p.h | 1 + src/qml/jsruntime/qv4lookup.cpp | 6 +- src/qml/jsruntime/qv4memberdata.cpp | 7 +- src/qml/jsruntime/qv4memberdata_p.h | 11 ++- src/qml/jsruntime/qv4object.cpp | 12 +-- src/qml/jsruntime/qv4object_p.h | 8 +- src/qml/jsruntime/qv4objectproto.cpp | 8 +- src/qml/jsruntime/qv4runtime.cpp | 2 +- src/qml/jsruntime/qv4value_p.h | 14 +++ src/qml/memory/qv4mm.cpp | 17 ++-- src/qml/memory/qv4mmdefs_p.h | 2 - src/qml/qml/qqmlvmemetaobject.cpp | 2 +- 18 files changed, 149 insertions(+), 149 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 39b99e9876..33cda59b72 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -91,7 +91,7 @@ void ArgumentsObject::fullyCreate() if (numAccessors) { d()->mappedArguments = md->allocate(engine(), numAccessors); for (uint i = 0; i < numAccessors; ++i) { - d()->mappedArguments->data[i] = context()->callData->args[i]; + d()->mappedArguments->values[i] = context()->callData->args[i]; arraySet(i, context()->engine->argumentsAccessors + i, Attr_Accessor); } } @@ -122,7 +122,7 @@ bool ArgumentsObject::defineOwnProperty(ExecutionEngine *engine, uint index, con map->copy(pd, mapAttrs); setArrayAttributes(index, Attr_Data); pd = arrayData()->getProperty(index); - pd->value = d()->mappedArguments->data[index]; + pd->value = d()->mappedArguments->values[index]; } bool strict = engine->current->strictMode; diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index 47d353ffd0..ef1a7bee3c 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -129,7 +129,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt if (d->type() < Heap::ArrayData::Sparse) { offset = d->d()->offset; - toCopy = d->d()->len; + toCopy = d->d()->values.size; } else { toCopy = d->alloc(); } @@ -150,7 +150,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt Heap::SimpleArrayData *n = scope.engine->memoryManager->allocManaged(size); n->init(); n->offset = 0; - n->len = d ? d->d()->len : 0; + n->values.size = d ? d->d()->values.size : 0; newData = n; } else { Heap::SparseArrayData *n = scope.engine->memoryManager->allocManaged(size); @@ -159,7 +159,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt } newData->setAlloc(alloc); newData->setType(newType); - newData->setAttrs(enforceAttributes ? reinterpret_cast(newData->d()->arrayData + alloc) : 0); + newData->setAttrs(enforceAttributes ? reinterpret_cast(newData->d()->values.v + alloc) : 0); o->setArrayData(newData); if (d) { @@ -171,12 +171,12 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt newData->attrs()[i] = Attr_Data; } - if (toCopy > d->d()->alloc - offset) { - uint copyFromStart = toCopy - (d->d()->alloc - offset); - memcpy(newData->d()->arrayData + toCopy - copyFromStart, d->d()->arrayData, sizeof(Value)*copyFromStart); + if (toCopy > d->d()->values.alloc - offset) { + uint copyFromStart = toCopy - (d->d()->values.alloc - offset); + memcpy(newData->d()->values.v + toCopy - copyFromStart, d->d()->values.v, sizeof(Value)*copyFromStart); toCopy -= copyFromStart; } - memcpy(newData->d()->arrayData, d->d()->arrayData + offset, sizeof(Value)*toCopy); + memcpy(newData->d()->values.v, d->d()->values.v + offset, sizeof(Value)*toCopy); } if (newType != Heap::ArrayData::Sparse) @@ -196,22 +196,22 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt lastFree = &sparse->freeList; storeValue(lastFree, 0); for (uint i = 0; i < toCopy; ++i) { - if (!sparse->arrayData[i].isEmpty()) { + if (!sparse->values[i].isEmpty()) { SparseArrayNode *n = sparse->sparse->insert(i); n->value = i; } else { storeValue(lastFree, i); - sparse->arrayData[i].setEmpty(); - lastFree = &sparse->arrayData[i].rawValueRef(); + sparse->values[i].setEmpty(); + lastFree = &sparse->values[i].rawValueRef(); } } } - if (toCopy < sparse->alloc) { - for (uint i = toCopy; i < sparse->alloc; ++i) { + if (toCopy < sparse->values.alloc) { + for (uint i = toCopy; i < sparse->values.alloc; ++i) { storeValue(lastFree, i); - sparse->arrayData[i].setEmpty(); - lastFree = &sparse->arrayData[i].rawValueRef(); + sparse->values[i].setEmpty(); + lastFree = &sparse->values[i].rawValueRef(); } storeValue(lastFree, UINT_MAX); } @@ -237,7 +237,7 @@ void ArrayData::ensureAttributes(Object *o) ReturnedValue SimpleArrayData::get(const Heap::ArrayData *d, uint index) { const Heap::SimpleArrayData *dd = static_cast(d); - if (index >= dd->len) + if (index >= dd->values.size) return Primitive::emptyValue().asReturnedValue(); return dd->data(index).asReturnedValue(); } @@ -245,13 +245,13 @@ ReturnedValue SimpleArrayData::get(const Heap::ArrayData *d, uint index) bool SimpleArrayData::put(Object *o, uint index, const Value &value) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); - Q_ASSERT(index >= dd->len || !dd->attrs || !dd->attrs[index].isAccessor()); + Q_ASSERT(index >= dd->values.size || !dd->attrs || !dd->attrs[index].isAccessor()); // ### honour attributes dd->data(index) = value; - if (index >= dd->len) { + if (index >= dd->values.size) { if (dd->attrs) dd->attrs[index] = Attr_Data; - dd->len = index + 1; + dd->values.size = index + 1; } return true; } @@ -259,7 +259,7 @@ bool SimpleArrayData::put(Object *o, uint index, const Value &value) bool SimpleArrayData::del(Object *o, uint index) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); - if (index >= dd->len) + if (index >= dd->values.size) return true; if (!dd->attrs || dd->attrs[index].isConfigurable()) { @@ -282,8 +282,8 @@ void SimpleArrayData::push_front(Object *o, const Value *values, uint n) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); Q_ASSERT(!dd->attrs); - if (dd->len + n > dd->alloc) { - realloc(o, Heap::ArrayData::Simple, dd->len + n, false); + if (dd->values.size + n > dd->values.alloc) { + realloc(o, Heap::ArrayData::Simple, dd->values.size + n, false); Q_ASSERT(o->d()->arrayData->type == Heap::ArrayData::Simple); dd = o->d()->arrayData.cast(); } @@ -291,10 +291,10 @@ void SimpleArrayData::push_front(Object *o, const Value *values, uint n) dd->offset -= n; // there is enough space left in front } else { // we need to wrap around, so: - dd->offset = dd->alloc - // start at the back, but subtract: + dd->offset = dd->values.alloc - // start at the back, but subtract: (n - dd->offset); // the number of items we can put in the free space at the start of the allocated array } - dd->len += n; + dd->values.size += n; for (uint i = 0; i < n; ++i) dd->data(i) = values[i].asReturnedValue(); } @@ -303,58 +303,58 @@ ReturnedValue SimpleArrayData::pop_front(Object *o) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); Q_ASSERT(!dd->attrs); - if (!dd->len) + if (!dd->values.size) return Encode::undefined(); ReturnedValue v = dd->data(0).isEmpty() ? Encode::undefined() : dd->data(0).asReturnedValue(); - dd->offset = (dd->offset + 1) % dd->alloc; - --dd->len; + dd->offset = (dd->offset + 1) % dd->values.alloc; + --dd->values.size; return v; } uint SimpleArrayData::truncate(Object *o, uint newLen) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); - if (dd->len < newLen) + if (dd->values.size < newLen) return newLen; if (!dd->attrs) { - dd->len = newLen; + dd->values.size = newLen; return newLen; } - while (dd->len > newLen) { - if (!dd->data(dd->len - 1).isEmpty() && !dd->attrs[dd->len - 1].isConfigurable()) - return dd->len; - --dd->len; + while (dd->values.size > newLen) { + if (!dd->data(dd->values.size - 1).isEmpty() && !dd->attrs[dd->values.size - 1].isConfigurable()) + return dd->values.size; + --dd->values.size; } - return dd->len; + return dd->values.size; } uint SimpleArrayData::length(const Heap::ArrayData *d) { - return d->len; + return d->values.size; } bool SimpleArrayData::putArray(Object *o, uint index, const Value *values, uint n) { Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); - if (index + n > dd->alloc) { + if (index + n > dd->values.alloc) { reallocate(o, index + n + 1, false); dd = o->d()->arrayData.cast(); } - for (uint i = dd->len; i < index; ++i) + for (uint i = dd->values.size; i < index; ++i) dd->data(i) = Primitive::emptyValue(); for (uint i = 0; i < n; ++i) dd->data(index + i) = values[i]; - dd->len = qMax(dd->len, index + n); + dd->values.size = qMax(dd->values.size, index + n); return true; } void SparseArrayData::free(Heap::ArrayData *d, uint idx) { Q_ASSERT(d && d->type == Heap::ArrayData::Sparse); - Value *v = d->arrayData + idx; + Value *v = d->values.v + idx; if (d->attrs && d->attrs[idx].isAccessor()) { // double slot, free both. Order is important, so we have a double slot for allocation again afterwards. v[1].setEmpty(Value::fromReturnedValue(d->freeList).emptyValue()); @@ -382,32 +382,32 @@ uint SparseArrayData::allocate(Object *o, bool doubleSlot) ReturnedValue *last = &dd->freeList; while (1) { if (Value::fromReturnedValue(*last).value() == UINT_MAX) { - reallocate(o, dd->alloc + 2, true); + reallocate(o, dd->values.alloc + 2, true); dd = o->d()->arrayData.cast(); last = &dd->freeList; Q_ASSERT(Value::fromReturnedValue(*last).value() != UINT_MAX); } - Q_ASSERT(dd->arrayData[Value::fromReturnedValue(*last).value()].value() != Value::fromReturnedValue(*last).value()); - if (dd->arrayData[Value::fromReturnedValue(*last).value()].value() == (Value::fromReturnedValue(*last).value() + 1)) { + Q_ASSERT(dd->values[Value::fromReturnedValue(*last).value()].value() != Value::fromReturnedValue(*last).value()); + if (dd->values[Value::fromReturnedValue(*last).value()].value() == (Value::fromReturnedValue(*last).value() + 1)) { // found two slots in a row uint idx = Value::fromReturnedValue(*last).emptyValue(); Value lastV = Value::fromReturnedValue(*last); - lastV.setEmpty(dd->arrayData[lastV.emptyValue() + 1].value()); + lastV.setEmpty(dd->values[lastV.emptyValue() + 1].value()); *last = lastV.rawValue(); dd->attrs[idx] = Attr_Accessor; return idx; } - last = &dd->arrayData[Value::fromReturnedValue(*last).value()].rawValueRef(); + last = &dd->values[Value::fromReturnedValue(*last).value()].rawValueRef(); } } else { if (Value::fromReturnedValue(dd->freeList).value() == UINT_MAX) { - reallocate(o, dd->alloc + 1, false); + reallocate(o, dd->values.alloc + 1, false); dd = o->d()->arrayData.cast(); } uint idx = Value::fromReturnedValue(dd->freeList).value(); Q_ASSERT(idx != UINT_MAX); - dd->freeList = dd->arrayData[idx].asReturnedValue(); + dd->freeList = dd->values[idx].asReturnedValue(); Q_ASSERT(Value::fromReturnedValue(dd->freeList).isEmpty()); if (dd->attrs) dd->attrs[idx] = Attr_Data; @@ -421,7 +421,7 @@ ReturnedValue SparseArrayData::get(const Heap::ArrayData *d, uint index) index = s->mappedIndex(index); if (index == UINT_MAX) return Primitive::emptyValue().asReturnedValue(); - return s->arrayData[index].asReturnedValue(); + return s->values[index].asReturnedValue(); } bool SparseArrayData::put(Object *o, uint index, const Value &value) @@ -435,7 +435,7 @@ bool SparseArrayData::put(Object *o, uint index, const Value &value) if (n->value == UINT_MAX) n->value = allocate(o); s = o->d()->arrayData.cast(); - s->arrayData[n->value] = value; + s->values[n->value] = value; if (s->attrs) s->attrs[n->value] = Attr_Data; return true; @@ -450,7 +450,7 @@ bool SparseArrayData::del(Object *o, uint index) return true; uint pidx = n->value; - Q_ASSERT(!dd->arrayData[pidx].isEmpty()); + Q_ASSERT(!dd->values[pidx].isEmpty()); bool isAccessor = false; if (dd->attrs) { @@ -463,11 +463,11 @@ bool SparseArrayData::del(Object *o, uint index) if (isAccessor) { // free up both indices - dd->arrayData[pidx + 1].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); - dd->arrayData[pidx].setEmpty(pidx + 1); + dd->values[pidx + 1].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); + dd->values[pidx].setEmpty(pidx + 1); } else { Q_ASSERT(dd->type == Heap::ArrayData::Sparse); - dd->arrayData[pidx].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); + dd->values[pidx].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); } dd->freeList = Primitive::emptyValue(pidx).asReturnedValue(); @@ -496,10 +496,10 @@ void SparseArrayData::push_front(Object *o, const Value *values, uint n) { Heap::SparseArrayData *d = o->d()->arrayData.cast(); Q_ASSERT(!d->attrs); - for (int i = n - 1; i >= 0; --i) { + for (int i = static_cast(n) - 1; i >= 0; --i) { uint idx = allocate(o); d = o->d()->arrayData.cast(); - d->arrayData[idx] = values[i]; + d->values[idx] = values[i]; d->sparse->push_front(idx); } } @@ -511,7 +511,7 @@ ReturnedValue SparseArrayData::pop_front(Object *o) uint idx = d->sparse->pop_front(); ReturnedValue v; if (idx != UINT_MAX) { - v = d->arrayData[idx].asReturnedValue(); + v = d->values[idx].asReturnedValue(); free(o->arrayData(), idx); } else { v = Encode::undefined(); @@ -589,24 +589,24 @@ uint ArrayData::append(Object *obj, ArrayObject *otherObj, uint n) ScopedValue v(scope); for (const SparseArrayNode *it = os->sparse->begin(); it != os->sparse->end(); it = it->nextNode()) { - v = otherObj->getValue(os->arrayData[it->value], other->d()->attrs[it->value]); + v = otherObj->getValue(os->values[it->value], other->d()->attrs[it->value]); obj->arraySet(oldSize + it->key(), v); } } else { for (const SparseArrayNode *it = other->d()->sparse->begin(); it != os->sparse->end(); it = it->nextNode()) - obj->arraySet(oldSize + it->key(), os->arrayData[it->value]); + obj->arraySet(oldSize + it->key(), os->values[it->value]); } } else { Heap::SimpleArrayData *os = static_cast(other->d()); uint toCopy = n; uint chunk = toCopy; - if (chunk > os->alloc - os->offset) - chunk -= os->alloc - os->offset; - obj->arrayPut(oldSize, os->arrayData + os->offset, chunk); + if (chunk > os->values.alloc - os->offset) + chunk -= os->values.alloc - os->offset; + obj->arrayPut(oldSize, os->values.v + os->offset, chunk); toCopy -= chunk; if (toCopy) - obj->arrayPut(oldSize + chunk, os->arrayData, toCopy); + obj->arrayPut(oldSize + chunk, os->values.v, toCopy); } return oldSize + n; @@ -616,18 +616,18 @@ void ArrayData::insert(Object *o, uint index, const Value *v, bool isAccessor) { if (!isAccessor && o->d()->arrayData->type != Heap::ArrayData::Sparse) { Heap::SimpleArrayData *d = o->d()->arrayData.cast(); - if (index < 0x1000 || index < d->len + (d->len >> 2)) { - if (index >= d->alloc) { + if (index < 0x1000 || index < d->values.size + (d->values.size >> 2)) { + if (index >= d->values.alloc) { o->arrayReserve(index + 1); d = o->d()->arrayData.cast(); } - if (index >= d->len) { + if (index >= d->values.size) { // mark possible hole in the array - for (uint i = d->len; i < index; ++i) + for (uint i = d->values.size; i < index; ++i) d->data(i) = Primitive::emptyValue(); - d->len = index + 1; + d->values.size = index + 1; } - d->arrayData[d->mappedIndex(index)] = *v; + d->values[d->mappedIndex(index)] = *v; return; } } @@ -638,9 +638,9 @@ void ArrayData::insert(Object *o, uint index, const Value *v, bool isAccessor) if (n->value == UINT_MAX) n->value = SparseArrayData::allocate(o, isAccessor); s = o->d()->arrayData.cast(); - s->arrayData[n->value] = *v; + s->values[n->value] = *v; if (isAccessor) - s->arrayData[n->value + Object::SetterOffset] = v[Object::SetterOffset]; + s->values[n->value + Object::SetterOffset] = v[Object::SetterOffset]; } @@ -792,7 +792,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c ++i; } } - d->len = i; + d->values.size = i; if (len > i) len = i; if (n != sparse->sparse()->end()) { @@ -808,8 +808,8 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c } } else { Heap::SimpleArrayData *d = thisObject->d()->arrayData.cast(); - if (len > d->len) - len = d->len; + if (len > d->values.size) + len = d->values.size; // sort empty values to the end for (uint i = 0; i < len; i++) { @@ -830,7 +830,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c ArrayElementLessThan lessThan(engine, thisObject, comparefn); - Value *begin = thisObject->arrayData()->arrayData; + Value *begin = thisObject->arrayData()->values.v; sortHelper(begin, begin + len, *begin, lessThan); #ifdef CHECK_SPARSE_ARRAYS diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 919bd84762..882f8d1f8d 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -98,21 +98,15 @@ struct ArrayDataData { Custom = 3 }; - uint alloc; Type type; + uint offset; PropertyAttributes *attrs; - union { - uint len; - ReturnedValue freeList; - }; - union { - uint offset; - SparseArray *sparse; - }; - Value arrayData[1]; + ReturnedValue freeList; + SparseArray *sparse; + ValueArray values; }; static Q_CONSTEXPR quint64 ArrayData_markTable = \ - (MarkFlagsForType::markFlags << (offsetof(ArrayDataData, arrayData) >> 2)) \ + (MarkFlagsForType::markFlags << (offsetof(ArrayDataData, values) >> 2)) \ << (sizeof(Base) >> 2) | QV4::Heap::Base::markTable; struct ArrayData : public Base, ArrayDataData { @@ -135,7 +129,7 @@ struct ArrayData : public Base, ArrayDataData { return get(i) == Primitive::emptyValue().asReturnedValue(); } - inline ReturnedValue length() const { + inline uint length() const { return vtable()->length(this); } @@ -143,17 +137,17 @@ struct ArrayData : public Base, ArrayDataData { V4_ASSERT_IS_TRIVIAL(ArrayData) struct SimpleArrayData : public ArrayData { - uint mappedIndex(uint index) const { return (index + offset) % alloc; } - Value data(uint index) const { return arrayData[mappedIndex(index)]; } - Value &data(uint index) { return arrayData[mappedIndex(index)]; } + uint mappedIndex(uint index) const { return (index + offset) % values.alloc; } + Value data(uint index) const { return values[mappedIndex(index)]; } + Value &data(uint index) { return values[mappedIndex(index)]; } Property *getProperty(uint index) { - if (index >= len) + if (index >= values.size) return 0; index = mappedIndex(index); - if (arrayData[index].isEmpty()) + if (values[index].isEmpty()) return 0; - return reinterpret_cast(arrayData + index); + return reinterpret_cast(values.v + index); } PropertyAttributes attributes(uint i) const { @@ -179,7 +173,7 @@ struct SparseArrayData : public ArrayData { SparseArrayNode *n = sparse->findNode(index); if (!n) return 0; - return reinterpret_cast(arrayData + n->value); + return reinterpret_cast(values.v + n->value); } PropertyAttributes attributes(uint i) const { @@ -200,15 +194,15 @@ struct Q_QML_EXPORT ArrayData : public Managed IsArrayData = true }; - uint alloc() const { return d()->alloc; } - uint &alloc() { return d()->alloc; } - void setAlloc(uint a) { d()->alloc = a; } + uint alloc() const { return d()->values.alloc; } + uint &alloc() { return d()->values.alloc; } + void setAlloc(uint a) { d()->values.alloc = a; } Type type() const { return d()->type; } void setType(Type t) { d()->type = t; } PropertyAttributes *attrs() const { return d()->attrs; } void setAttrs(PropertyAttributes *a) { d()->attrs = a; } - const Value *arrayData() const { return &d()->arrayData[0]; } - Value *arrayData() { return &d()->arrayData[0]; } + const Value *arrayData() const { return d()->values.v; } + Value *arrayData() { return d()->values.v; } const ArrayVTable *vtable() const { return d()->vtable(); } bool isSparse() const { return type() == Heap::ArrayData::Sparse; } @@ -251,8 +245,8 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData Value data(uint index) const { return d()->data(index); } Value &data(uint index) { return d()->data(index); } - uint &len() { return d()->len; } - uint len() const { return d()->len; } + uint &len() { return d()->values.size; } + uint len() const { return d()->values.size; } static Heap::ArrayData *reallocate(Object *o, uint n, bool enforceAttributes); diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index 759354f4e2..a2c19e1f2d 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -690,8 +690,8 @@ void ArrayPrototype::method_indexOf(const BuiltinFunction *, Scope &scope, CallD } else { Q_ASSERT(instance->arrayType() == Heap::ArrayData::Simple || instance->arrayType() == Heap::ArrayData::Complex); Heap::SimpleArrayData *sa = instance->d()->arrayData.cast(); - if (len > sa->len) - len = sa->len; + if (len > sa->values.size) + len = sa->values.size; uint idx = fromIndex; while (idx < len) { value = sa->data(idx); diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 39b433e5f9..19298f3803 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -600,11 +600,11 @@ Heap::ArrayObject *ExecutionEngine::newArrayObject(const Value *values, int leng size_t size = sizeof(Heap::ArrayData) + (length-1)*sizeof(Value); Heap::SimpleArrayData *d = scope.engine->memoryManager->allocManaged(size); d->init(); - d->alloc = length; d->type = Heap::ArrayData::Simple; d->offset = 0; - d->len = length; - memcpy(&d->arrayData, values, length*sizeof(Value)); + d->values.alloc = length; + d->values.size = length; + memcpy(&d->values.v, values, length*sizeof(Value)); a->d()->arrayData = d; a->setArrayLengthUnchecked(length); } diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index ae1a403ea1..94555a6679 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -302,7 +302,7 @@ void FunctionPrototype::method_apply(const BuiltinFunction *, Scope &scope, Call cData->args[i] = Primitive::undefinedValue(); } else if (arr->arrayType() == Heap::ArrayData::Simple && !arr->protoHasArray()) { auto sad = static_cast(arr->arrayData()); - uint alen = sad ? sad->len : 0; + uint alen = sad ? sad->values.size : 0; if (alen > len) alen = len; for (uint i = 0; i < alen; ++i) @@ -345,7 +345,7 @@ void FunctionPrototype::method_bind(const BuiltinFunction *, Scope &scope, CallD Scoped boundArgs(scope, (Heap::MemberData *)0); if (callData->argc > 1) { boundArgs = MemberData::allocate(scope.engine, callData->argc - 1); - boundArgs->d()->size = callData->argc - 1; + boundArgs->d()->values.size = callData->argc - 1; memcpy(boundArgs->data(), callData->args + 1, (callData->argc - 1)*sizeof(Value)); } diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 0f4859f0fa..677f0ebea9 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -199,6 +199,7 @@ struct ScriptFunction; struct InternalClass; struct Property; struct Value; +struct ValueArray; struct Lookup; struct ArrayData; struct VTable; diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index 52ed449664..f85ead1852 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -182,7 +182,7 @@ ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const Value &object, con Heap::Object *o = static_cast(b); if (o->arrayData && o->arrayData->type == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = o->arrayData.cast(); - if (idx < s->len) + if (idx < s->values.size) if (!s->data(idx).isEmpty()) return s->data(idx).asReturnedValue(); } @@ -217,7 +217,7 @@ void Lookup::indexedSetterFallback(Lookup *l, const Value &object, const Value & if (index.asArrayIndex(idx)) { if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = o->d()->arrayData.cast(); - if (idx < s->len) { + if (idx < s->values.size) { s->data(idx) = value; return; } @@ -239,7 +239,7 @@ void Lookup::indexedSetterObjectInt(Lookup *l, const Value &object, const Value Heap::Object *o = static_cast(b); if (o->arrayData && o->arrayData->type == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = o->arrayData.cast(); - if (idx < s->len) { + if (idx < s->values.size) { s->data(idx) = v; return; } diff --git a/src/qml/jsruntime/qv4memberdata.cpp b/src/qml/jsruntime/qv4memberdata.cpp index 3a6d66a030..ce1c8b614e 100644 --- a/src/qml/jsruntime/qv4memberdata.cpp +++ b/src/qml/jsruntime/qv4memberdata.cpp @@ -47,15 +47,16 @@ DEFINE_MANAGED_VTABLE(MemberData); Heap::MemberData *MemberData::allocate(ExecutionEngine *e, uint n, Heap::MemberData *old) { - Q_ASSERT(!old || old->size < n); + Q_ASSERT(!old || old->values.size < n); Q_ASSERT(n); size_t alloc = MemoryManager::align(sizeof(Heap::MemberData) + (n - 1)*sizeof(Value)); Heap::MemberData *m = e->memoryManager->allocManaged(alloc); if (old) - memcpy(m, old, sizeof(Heap::MemberData) + (old->size - 1)* sizeof(Value)); + memcpy(m, old, sizeof(Heap::MemberData) + (old->values.size - 1) * sizeof(Value)); else m->init(); - m->size = static_cast((alloc - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); + m->values.alloc = static_cast((alloc - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); + m->values.size = m->values.alloc; return m; } diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index c4e797ff8d..a531d3303f 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -60,8 +60,7 @@ namespace QV4 { namespace Heap { #define MemberDataMembers(class, Member) \ - Member(class, uint, size) \ - Member(class, ValueArray, data) + Member(class, ValueArray, values) DECLARE_HEAP_OBJECT(MemberData, Base) { DECLARE_MARK_TABLE(MemberData); @@ -74,10 +73,10 @@ struct MemberData : Managed { V4_MANAGED(MemberData, Managed) - Value &operator[] (uint idx) { return d()->data[idx]; } - const Value *data() const { return d()->data; } - Value *data() { return d()->data; } - inline uint size() const { return d()->size; } + Value &operator[] (uint idx) { return d()->values[idx]; } + const Value *data() const { return d()->values.v; } + Value *data() { return d()->values.v; } + inline uint size() const { return d()->values.size; } static Heap::MemberData *allocate(QV4::ExecutionEngine *e, uint n, Heap::MemberData *old = 0); }; diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index 095aa6b4da..7886dd24fa 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -62,7 +62,7 @@ void Object::setInternalClass(InternalClass *ic) { d()->internalClass = ic; bool hasMD = d()->memberData != nullptr; - if ((!hasMD && ic->size) || (hasMD && d()->memberData->size < ic->size)) + if ((!hasMD && ic->size) || (hasMD && d()->memberData->values.size < ic->size)) d()->memberData = MemberData::allocate(ic->engine, ic->size, d()->memberData); } @@ -582,7 +582,7 @@ void Object::advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint * int k = it->arrayNode->key(); uint pidx = it->arrayNode->value; Heap::SparseArrayData *sa = o->d()->arrayData.cast(); - Property *p = reinterpret_cast(sa->arrayData + pidx); + Property *p = reinterpret_cast(sa->values.v + pidx); it->arrayNode = it->arrayNode->nextNode(); PropertyAttributes a = sa->attrs ? sa->attrs[pidx] : Attr_Data; if (!(it->flags & ObjectIterator::EnumerableOnly) || a.isEnumerable()) { @@ -597,7 +597,7 @@ void Object::advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint * it->arrayIndex = UINT_MAX; } // dense arrays - while (it->arrayIndex < o->d()->arrayData->len) { + while (it->arrayIndex < o->d()->arrayData->values.size) { Heap::SimpleArrayData *sa = o->d()->arrayData.cast(); Value &val = sa->data(it->arrayIndex); PropertyAttributes a = o->arrayData()->attributes(it->arrayIndex); @@ -1132,7 +1132,7 @@ void Object::copyArrayData(Object *other) ; } else { Q_ASSERT(!arrayData() && other->arrayData()); - ArrayData::realloc(this, other->d()->arrayData->type, other->d()->arrayData->alloc, false); + ArrayData::realloc(this, other->d()->arrayData->type, other->d()->arrayData->values.alloc, false); if (other->arrayType() == Heap::ArrayData::Sparse) { Heap::ArrayData *od = other->d()->arrayData; Heap::ArrayData *dd = d()->arrayData; @@ -1140,10 +1140,10 @@ void Object::copyArrayData(Object *other) dd->freeList = od->freeList; } else { Heap::ArrayData *dd = d()->arrayData; - dd->len = other->d()->arrayData->len; + dd->values.size = other->d()->arrayData->values.size; dd->offset = other->d()->arrayData->offset; } - memcpy(d()->arrayData->arrayData, other->d()->arrayData->arrayData, other->d()->arrayData->alloc*sizeof(Value)); + memcpy(d()->arrayData->values.v, other->d()->arrayData->values.v, other->d()->arrayData->values.alloc*sizeof(Value)); } setArrayLengthUnchecked(other->getLength()); } diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index b0eec1adfc..2affcd1af9 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -78,8 +78,8 @@ DECLARE_HEAP_OBJECT(Object, Base) { void init() { Base::init(); } void destroy() { Base::destroy(); } - const Value *propertyData(uint index) const { return memberData->data + index; } - Value *propertyData(uint index) { return memberData->data + index; } + const Value *propertyData(uint index) const { return memberData->values.v + index; } + Value *propertyData(uint index) { return memberData->values.v + index; } }; } @@ -524,7 +524,7 @@ inline void Object::arraySet(uint index, const Property *p, PropertyAttributes a { // ### Clean up arrayCreate(); - if (attributes.isAccessor() || (index > 0x1000 && index > 2*d()->arrayData->alloc)) { + if (attributes.isAccessor() || (index > 0x1000 && index > 2*d()->arrayData->values.alloc)) { initSparseArray(); } else { arrayData()->vtable()->reallocate(this, index + 1, false); @@ -539,7 +539,7 @@ inline void Object::arraySet(uint index, const Property *p, PropertyAttributes a inline void Object::arraySet(uint index, const Value &value) { arrayCreate(); - if (index > 0x1000 && index > 2*d()->arrayData->alloc) { + if (index > 0x1000 && index > 2*d()->arrayData->values.alloc) { initSparseArray(); } ArrayData::insert(this, index, &value); diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index f650ffc7b1..2e72c0f13f 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -295,7 +295,7 @@ void ObjectPrototype::method_seal(const BuiltinFunction *, Scope &scope, CallDat if (o->arrayData()) { ArrayData::ensureAttributes(o); - for (uint i = 0; i < o->d()->arrayData->alloc; ++i) { + for (uint i = 0; i < o->d()->arrayData->values.alloc; ++i) { if (!o->arrayData()->isEmpty(i)) o->d()->arrayData->attrs[i].setConfigurable(false); } @@ -320,7 +320,7 @@ void ObjectPrototype::method_freeze(const BuiltinFunction *, Scope &scope, CallD if (o->arrayData()) { ArrayData::ensureAttributes(o); - for (uint i = 0; i < o->arrayData()->alloc; ++i) { + for (uint i = 0; i < o->arrayData()->values.alloc; ++i) { if (!o->arrayData()->isEmpty(i)) o->arrayData()->attrs[i].setConfigurable(false); if (o->arrayData()->attrs[i].isData()) @@ -371,7 +371,7 @@ void ObjectPrototype::method_isSealed(const BuiltinFunction *, Scope &scope, Cal return; } - for (uint i = 0; i < o->arrayData()->alloc; ++i) { + for (uint i = 0; i < o->arrayData()->values.alloc; ++i) { if (!o->arrayData()->isEmpty(i)) if (o->arrayData()->attributes(i).isConfigurable()) { scope.result = Encode(false); @@ -411,7 +411,7 @@ void ObjectPrototype::method_isFrozen(const BuiltinFunction *, Scope &scope, Cal return; } - for (uint i = 0; i < o->arrayData()->alloc; ++i) { + for (uint i = 0; i < o->arrayData()->values.alloc; ++i) { if (!o->arrayData()->isEmpty(i)) if (o->arrayData()->attributes(i).isConfigurable() || o->arrayData()->attributes(i).isWritable()) { scope.result = Encode(false); diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 6590054bf3..4459af0e66 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -643,7 +643,7 @@ void Runtime::method_setElement(ExecutionEngine *engine, const Value &object, co if (idx < UINT_MAX) { if (o->arrayType() == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = static_cast(o->arrayData()); - if (s && idx < s->len && !s->data(idx).isEmpty()) { + if (s && idx < s->values.size && !s->data(idx).isEmpty()) { s->data(idx) = value; return; } diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 4ff0565f9b..6d25abba9a 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -708,6 +708,20 @@ inline unsigned int Value::toUInt32() const return (unsigned int)toInt32(); } +struct ValueArray { + uint size; + uint alloc; + Value v[1]; + + inline Value &operator[] (uint index) { + Q_ASSERT(index < alloc); + return v[index]; + } + inline const Value &operator[] (uint index) const { + Q_ASSERT(index < alloc); + return v[index]; + } +}; } diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index bb600c6c0f..259f221a86 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -733,7 +733,8 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM memset(m, 0, memberSize); o->memberData = static_cast(m); o->memberData->setVtable(MemberData::staticVTable()); - o->memberData->size = static_cast((memberSize - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); + o->memberData->values.alloc = static_cast((memberSize - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); + o->memberData->values.size = o->memberData->values.alloc; o->memberData->init(); // qDebug() << " got" << o->memberData << o->memberData->size; } @@ -769,17 +770,9 @@ void MemoryManager::drainMarkStack(Value *markBase) case Mark_ValueArray: { Q_ASSERT(m == Mark_ValueArray); // qDebug() << "marking Value Array at offset" << hex << (mem - reinterpret_cast(h)); - uint size; - Value *v = reinterpret_cast(mem); - if (h->vtable() == QV4::MemberData::staticVTable()) { - size = static_cast(h)->size; - } else if (h->vtable()->isArrayData) { - size = static_cast(h)->alloc; - } else { - size = 0; - Q_ASSERT(false); - } - const Value *end = v + size; + ValueArray *a = reinterpret_cast(mem); + Value *v = a->v; + const Value *end = v + a->alloc; while (v < end) { v->mark(engine); ++v; diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 90e7d9cb61..a987c3a200 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -277,8 +277,6 @@ template<> struct MarkFlagsForType { static const quint64 markFlags = Mark_Value; }; - -typedef Value ValueArray[1]; template<> struct MarkFlagsForType { static const quint64 markFlags = Mark_ValueArray; diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 490a4e19ab..2c3476f63a 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -329,7 +329,7 @@ QQmlVMEMetaObject::QQmlVMEMetaObject(QObject *obj, if (size) { QV4::Heap::MemberData *data = QV4::MemberData::allocate(v4, size); propertyAndMethodStorage.set(v4, data); - std::fill(data->data, data->data + data->size, QV4::Encode::undefined()); + std::fill(data->values.v, data->values.v + data->values.size, QV4::Encode::undefined()); } // Need JS wrapper to ensure properties/methods are marked. -- cgit v1.2.3 From 3a0bb11d730390ce9fd64932f58269cfbe8c378e Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2017 11:59:58 +0100 Subject: Separate SimpleCallData and CallData SimpleCallData doesn't need any loca variables, so move it into a separate CallData Heap object. This also allows getting rid of the manual markObjects() implementation for CallContext. Change-Id: I9014eb2f815d3e2fe63a951a9d126c38e8aaa0a3 Reviewed-by: Simon Hausmann --- .../qmldbg_debugger/qv4datacollector.cpp | 14 +-- .../qmltooling/qmldbg_debugger/qv4datacollector.h | 4 +- .../qqmlnativedebugservice.cpp | 17 ++-- src/qml/jit/qv4assembler.cpp | 2 +- src/qml/jsruntime/qv4context.cpp | 110 ++++++++------------- src/qml/jsruntime/qv4context_p.h | 53 +++++----- src/qml/jsruntime/qv4engine.cpp | 2 +- src/qml/jsruntime/qv4function_p.h | 2 +- src/qml/jsruntime/qv4functionobject.cpp | 4 +- src/qml/jsruntime/qv4vme_moth.cpp | 8 +- src/qml/memory/qv4mm_p.h | 6 +- 11 files changed, 106 insertions(+), 116 deletions(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index a4bad5618b..225a1fa27d 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -55,11 +55,11 @@ QT_BEGIN_NAMESPACE -QV4::CallContext *QV4DataCollector::findContext(int frame) +QV4::SimpleCallContext *QV4DataCollector::findContext(int frame) { QV4::ExecutionContext *ctx = engine()->currentContext; while (ctx) { - QV4::CallContext *cCtxt = ctx->asCallContext(); + QV4::SimpleCallContext *cCtxt = ctx->asSimpleCallContext(); if (cCtxt && cCtxt->d()->v4Function) { if (frame < 1) return cCtxt; @@ -71,7 +71,7 @@ QV4::CallContext *QV4DataCollector::findContext(int frame) return 0; } -QV4::Heap::CallContext *QV4DataCollector::findScope(QV4::ExecutionContext *ctxt, int scope) +QV4::Heap::SimpleCallContext *QV4DataCollector::findScope(QV4::ExecutionContext *ctxt, int scope) { if (!ctxt) return 0; @@ -81,7 +81,7 @@ QV4::Heap::CallContext *QV4DataCollector::findScope(QV4::ExecutionContext *ctxt, for (; scope > 0 && ctx; --scope) ctx = ctx->d()->outer; - return (ctx && ctx->d()) ? ctx->asCallContext()->d() : 0; + return (ctx && ctx->d()) ? ctx->asSimpleCallContext()->d() : 0; } QVector QV4DataCollector::getScopeTypes(int frame) @@ -89,7 +89,7 @@ QVector QV4DataCollector::getScopeType QVector types; QV4::Scope scope(engine()); - QV4::CallContext *sctxt = findContext(frame); + QV4::SimpleCallContext *sctxt = findContext(frame); if (!sctxt || sctxt->d()->type < QV4::Heap::ExecutionContext::Type_QmlContext) return types; @@ -310,7 +310,7 @@ QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int QV4::Scope scope(engine()); QV4::ScopedContext ctxt(scope, findContext(frameNr)); while (ctxt) { - if (QV4::CallContext *cCtxt = ctxt->asCallContext()) { + if (QV4::SimpleCallContext *cCtxt = ctxt->asSimpleCallContext()) { if (cCtxt->d()->activation) break; } @@ -318,7 +318,7 @@ QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int } if (ctxt) { - QV4::ScopedValue o(scope, ctxt->asCallContext()->d()->activation); + QV4::ScopedValue o(scope, ctxt->asSimpleCallContext()->d()->activation); frame[QLatin1String("receiver")] = toRef(collect(o)); } diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h index fd6356f22e..09a0d683ba 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h @@ -58,11 +58,11 @@ public: typedef uint Ref; typedef QVector Refs; - static QV4::Heap::CallContext *findScope(QV4::ExecutionContext *ctxt, int scope); + static QV4::Heap::SimpleCallContext *findScope(QV4::ExecutionContext *ctxt, int scope); static int encodeScopeType(QV4::Heap::ExecutionContext::ContextType scopeType); QVector getScopeTypes(int frame); - QV4::CallContext *findContext(int frame); + QV4::SimpleCallContext *findContext(int frame); QV4DataCollector(QV4::ExecutionEngine *engine); diff --git a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp index 7f842419e7..6cb1ab4051 100644 --- a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp @@ -481,17 +481,20 @@ void NativeDebugger::handleVariables(QJsonObject *response, const QJsonObject &a QJsonArray output; QV4::Scope scope(engine); - if (QV4::CallContext *callContext = executionContext->asCallContext()) { + if (QV4::SimpleCallContext *callContext = executionContext->asSimpleCallContext()) { QV4::Value thisObject = callContext->thisObject(); collector.collect(&output, QString(), QStringLiteral("this"), thisObject); QV4::Identifier *const *variables = callContext->variables(); QV4::Identifier *const *formals = callContext->formals(); - for (unsigned i = 0, ei = callContext->variableCount(); i != ei; ++i) { - QString qName; - if (QV4::Identifier *name = variables[i]) - qName = name->string; - QV4::Value val = callContext->d()->locals[i]; - collector.collect(&output, QString(), qName, val); + if (callContext->d()->type == QV4::Heap::ExecutionContext::Type_CallContext) { + QV4::CallContext *ctx = static_cast(callContext); + for (unsigned i = 0, ei = ctx->variableCount(); i != ei; ++i) { + QString qName; + if (QV4::Identifier *name = variables[i]) + qName = name->string; + QV4::Value val = ctx->d()->locals[i]; + collector.collect(&output, QString(), qName, val); + } } for (unsigned i = 0, ei = callContext->formalCount(); i != ei; ++i) { QString qName; diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 0b3d0bd0cc..83baef8453 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -286,7 +286,7 @@ typename Assembler::Pointer Assembler: } break; case IR::ArgLocal::Local: case IR::ArgLocal::ScopedLocal: { - offset = qOffsetOf(CallContext::Data, locals) + al->index * sizeof(Value); + offset = qOffsetOf(CallContext::Data, locals.v) + al->index * sizeof(Value); } break; default: Q_UNREACHABLE(); diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 569523595c..ec11422c15 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -54,20 +54,19 @@ using namespace QV4; DEFINE_MANAGED_VTABLE(ExecutionContext); +DEFINE_MANAGED_VTABLE(SimpleCallContext); DEFINE_MANAGED_VTABLE(CallContext); DEFINE_MANAGED_VTABLE(WithContext); DEFINE_MANAGED_VTABLE(CatchContext); DEFINE_MANAGED_VTABLE(GlobalContext); -/* Function *f, int argc */ -#define requiredMemoryForExecutionContect(f, argc) \ - sizeof(CallContext::Data) - sizeof(Value) + \ - sizeof(Value) * (f->compiledFunction->nLocals + qMax((uint)argc, f->nFormals)) + sizeof(CallData) - Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData *callData) { - Heap::CallContext *c = d()->engine->memoryManager->allocManaged( - requiredMemoryForExecutionContect(function, callData->argc)); + uint localsAndFormals = function->compiledFunction->nLocals + qMax(static_cast(callData->argc), function->nFormals); + size_t requiredMemory = sizeof(CallContext::Data) - sizeof(Value) + \ + sizeof(Value) * (localsAndFormals) + sizeof(CallData) - sizeof(Value); + + Heap::CallContext *c = d()->engine->memoryManager->allocManaged(requiredMemory); c->init(d()->engine, Heap::ExecutionContext::Type_CallContext); c->v4Function = function; @@ -75,36 +74,25 @@ Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData c->strictMode = function->isStrict(); c->outer = this->d(); - c->activation = 0; - c->compilationUnit = function->compilationUnit; c->lookups = c->compilationUnit->runtimeLookups; c->constantTable = c->compilationUnit->constants; const CompiledData::Function *compiledFunction = function->compiledFunction; - int nLocals = compiledFunction->nLocals; + uint nLocals = compiledFunction->nLocals; + c->locals.size = nLocals; + c->locals.alloc = localsAndFormals; if (nLocals) - std::fill(c->locals, c->locals + nLocals, Primitive::undefinedValue()); + std::fill(c->locals.v, c->locals.v + nLocals, Primitive::undefinedValue()); - c->callData = reinterpret_cast(c->locals + nLocals); - ::memcpy(c->callData, callData, sizeof(CallData) + (callData->argc - 1) * sizeof(Value)); + c->callData = reinterpret_cast(c->locals.v + nLocals); + ::memcpy(c->callData, callData, sizeof(CallData) - sizeof(Value) + static_cast(callData->argc) * sizeof(Value)); if (callData->argc < static_cast(compiledFunction->nFormals)) std::fill(c->callData->args + c->callData->argc, c->callData->args + compiledFunction->nFormals, Primitive::undefinedValue()); return c; } -Heap::CallContext *Heap::CallContext::createSimpleContext(ExecutionEngine *v4) -{ - Heap::CallContext *ctxt = v4->memoryManager->allocSimpleCallContext(v4); - return ctxt; -} - -void Heap::CallContext::freeSimpleCallContext() -{ - engine->memoryManager->freeSimpleCallContext(); -} - Heap::WithContext *ExecutionContext::newWithContext(Heap::Object *with) { return d()->engine->memoryManager->alloc(d(), with); @@ -128,7 +116,7 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) switch (ctx->d()->type) { case Heap::ExecutionContext::Type_CallContext: case Heap::ExecutionContext::Type_SimpleCallContext: { - Heap::CallContext *c = static_cast(ctx->d()); + Heap::SimpleCallContext *c = static_cast(ctx->d()); if (!activation) { if (!c->activation) c->activation = scope.engine->newObject(); @@ -184,22 +172,22 @@ void Heap::CatchContext::init(ExecutionContext *outerContext, String *exceptionV } -Identifier * const *CallContext::formals() const +Identifier * const *SimpleCallContext::formals() const { return d()->v4Function ? d()->v4Function->internalClass->nameMap.constData() : 0; } -unsigned int CallContext::formalCount() const +unsigned int SimpleCallContext::formalCount() const { return d()->v4Function ? d()->v4Function->nFormals : 0; } -Identifier * const *CallContext::variables() const +Identifier * const *SimpleCallContext::variables() const { return d()->v4Function ? d()->v4Function->internalClass->nameMap.constData() + d()->v4Function->nFormals : 0; } -unsigned int CallContext::variableCount() const +unsigned int SimpleCallContext::variableCount() const { return d()->v4Function ? d()->v4Function->compiledFunction->nLocals : 0; } @@ -234,7 +222,7 @@ bool ExecutionContext::deleteProperty(String *name) } case Heap::ExecutionContext::Type_CallContext: case Heap::ExecutionContext::Type_SimpleCallContext: { - Heap::CallContext *c = static_cast(ctx->d()); + Heap::SimpleCallContext *c = static_cast(ctx->d()); if (c->v4Function && (c->v4Function->needsActivation() || hasWith)) { uint index = c->v4Function->internalClass->find(name); if (index < UINT_MAX) @@ -257,30 +245,6 @@ bool ExecutionContext::deleteProperty(String *name) return true; } -bool CallContext::needsOwnArguments() const -{ - QV4::Function *f = d()->v4Function; - return (f && f->needsActivation()) || (argc() < (f ? static_cast(f->nFormals) : 0)); -} - -void CallContext::markObjects(Heap::Base *m, ExecutionEngine *engine) -{ - QV4::Heap::CallContext *ctx = static_cast(m); - - if (ctx->type == Heap::ExecutionContext::Type_CallContext) { - Q_ASSERT(ctx->v4Function); - ctx->callData->thisObject.mark(engine); - for (int arg = 0; arg < qMax(ctx->callData->argc, (int)ctx->v4Function->nFormals); ++arg) - ctx->callData->args[arg].mark(engine); - for (unsigned local = 0, lastLocal = ctx->v4Function->compiledFunction->nLocals; local < lastLocal; ++local) - ctx->locals[local].mark(engine); - if (ctx->activation) - ctx->activation->mark(engine); - if (ctx->function) - ctx->function->mark(engine); - } -} - // Do a standard call with this execution context as the outer scope void ExecutionContext::call(Scope &scope, CallData *callData, Function *function, const FunctionObject *f) { @@ -304,7 +268,7 @@ void QV4::ExecutionContext::simpleCall(Scope &scope, CallData *callData, Functio ExecutionContextSaver ctxSaver(scope); - CallContext::Data *ctx = scope.engine->memoryManager->allocSimpleCallContext(scope.engine); + SimpleCallContext::Data *ctx = scope.engine->memoryManager->allocSimpleCallContext(scope.engine); ctx->strictMode = function->isStrict(); ctx->callData = callData; @@ -357,15 +321,16 @@ void ExecutionContext::setProperty(String *name, const Value &value) } case Heap::ExecutionContext::Type_CallContext: case Heap::ExecutionContext::Type_SimpleCallContext: { - Heap::CallContext *c = static_cast(ctx->d()); + Heap::SimpleCallContext *c = static_cast(ctx->d()); if (c->v4Function) { uint index = c->v4Function->internalClass->find(name); if (index < UINT_MAX) { if (index < c->v4Function->nFormals) { c->callData->args[c->v4Function->nFormals - index - 1] = value; } else { + Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); index -= c->v4Function->nFormals; - c->locals[index] = value; + static_cast(c)->locals[index] = value; } return; } @@ -438,13 +403,14 @@ ReturnedValue ExecutionContext::getProperty(String *name) } case Heap::ExecutionContext::Type_CallContext: case Heap::ExecutionContext::Type_SimpleCallContext: { - Heap::CallContext *c = static_cast(ctx->d()); + Heap::SimpleCallContext *c = static_cast(ctx->d()); if (c->v4Function && (c->v4Function->needsActivation() || hasWith || hasCatchScope)) { uint index = c->v4Function->internalClass->find(name); if (index < UINT_MAX) { if (index < c->v4Function->nFormals) return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); - return c->locals[index - c->v4Function->nFormals].asReturnedValue(); + Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); + return static_cast(c)->locals[index - c->v4Function->nFormals].asReturnedValue(); } } ScopedObject activation(scope, c->activation); @@ -454,9 +420,12 @@ ReturnedValue ExecutionContext::getProperty(String *name) if (hasProperty) return v->asReturnedValue(); } - if (c->function && c->v4Function->isNamedExpression() - && name->equals(ScopedString(scope, c->v4Function->name()))) - return c->function->asReturnedValue(); + if (c->v4Function->isNamedExpression()) { + Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); + Heap::CallContext *ctx = static_cast(c); + if (ctx->function && name->equals(ScopedString(scope, c->v4Function->name()))) + return ctx->function->asReturnedValue(); + } break; } case Heap::ExecutionContext::Type_QmlContext: { @@ -516,13 +485,15 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) } case Heap::ExecutionContext::Type_CallContext: case Heap::ExecutionContext::Type_SimpleCallContext: { - Heap::CallContext *c = static_cast(ctx->d()); + Heap::SimpleCallContext *c = static_cast(ctx->d()); if (c->v4Function && (c->v4Function->needsActivation() || hasWith || hasCatchScope)) { + Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); + Heap::CallContext *ctx = static_cast(c); uint index = c->v4Function->internalClass->find(name); if (index < UINT_MAX) { if (index < c->v4Function->nFormals) return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); - return c->locals[index - c->v4Function->nFormals].asReturnedValue(); + return ctx->locals[index - c->v4Function->nFormals].asReturnedValue(); } } ScopedObject activation(scope, c->activation); @@ -532,9 +503,12 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) if (hasProperty) return v->asReturnedValue(); } - if (c->function && c->v4Function->isNamedExpression() - && name->equals(ScopedString(scope, c->v4Function->name()))) - return c->function->asReturnedValue(); + if (c->v4Function->isNamedExpression()) { + Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); + Heap::CallContext *ctx = static_cast(c); + if (ctx->function && name->equals(ScopedString(scope, c->v4Function->name()))) + return ctx->function->asReturnedValue(); + } break; } case Heap::ExecutionContext::Type_QmlContext: { @@ -558,7 +532,7 @@ Function *ExecutionContext::getFunction() const Scope scope(d()->engine); ScopedContext it(scope, this->d()); for (; it; it = it->d()->outer) { - if (const CallContext *callCtx = it->asCallContext()) + if (const SimpleCallContext *callCtx = it->asSimpleCallContext()) return callCtx->d()->v4Function; else if (it->asCatchContext() || it->asWithContext()) continue; // look in the parent context for a FunctionObject diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 96cdb90db9..3d4a9ba1d7 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -68,6 +68,7 @@ struct Function; struct Function; struct Identifier; struct CallContext; +struct SimpleCallContext; struct CatchContext; struct WithContext; struct QmlContext; @@ -131,14 +132,12 @@ DECLARE_HEAP_OBJECT(ExecutionContext, Base) { }; V4_ASSERT_IS_TRIVIAL(ExecutionContext) -#define CallContextMembers(class, Member) \ - Member(class, Pointer, function) \ - Member(class, Pointer, activation) +#define SimpleCallContextMembers(class, Member) \ + Member(class, Pointer, activation) \ + Member(class, QV4::Function *, v4Function) -DECLARE_HEAP_OBJECT(CallContext, ExecutionContext) { - DECLARE_MARK_TABLE(CallContext); - static CallContext *createSimpleContext(ExecutionEngine *v4); - void freeSimpleCallContext(); +DECLARE_HEAP_OBJECT(SimpleCallContext, ExecutionContext) { + DECLARE_MARK_TABLE(SimpleCallContext); void init(ExecutionEngine *engine, ContextType t = Type_SimpleCallContext) { @@ -147,10 +146,18 @@ DECLARE_HEAP_OBJECT(CallContext, ExecutionContext) { inline unsigned int formalParameterCount() const; - QV4::Function *v4Function; - Value locals[1]; }; -V4_ASSERT_IS_TRIVIAL(CallContext) +V4_ASSERT_IS_TRIVIAL(SimpleCallContext) + +#define CallContextMembers(class, Member) \ + Member(class, Pointer, function) \ + Member(class, ValueArray, locals) \ + +DECLARE_HEAP_OBJECT(CallContext, SimpleCallContext) { + DECLARE_MARK_TABLE(CallContext); + + using SimpleCallContext::formalParameterCount; +}; #define GlobalContextMembers(class, Member) \ Member(class, Pointer, global) @@ -217,8 +224,8 @@ struct Q_QML_EXPORT ExecutionContext : public Managed ReturnedValue getPropertyAndBase(String *name, Value *base); bool deleteProperty(String *name); - inline CallContext *asCallContext(); - inline const CallContext *asCallContext() const; + inline SimpleCallContext *asSimpleCallContext(); + inline const SimpleCallContext *asSimpleCallContext() const; inline const CatchContext *asCatchContext() const; inline const WithContext *asWithContext() const; @@ -241,9 +248,9 @@ struct Q_QML_EXPORT ExecutionContext : public Managed void simpleCall(Scope &scope, CallData *callData, QV4::Function *function); }; -struct Q_QML_EXPORT CallContext : public ExecutionContext +struct Q_QML_EXPORT SimpleCallContext : public ExecutionContext { - V4_MANAGED(CallContext, ExecutionContext) + V4_MANAGED(SimpleCallContext, ExecutionContext) // formals are in reverse order Identifier * const *formals() const; @@ -252,15 +259,17 @@ struct Q_QML_EXPORT CallContext : public ExecutionContext unsigned int variableCount() const; inline ReturnedValue argument(int i) const; - bool needsOwnArguments() const; - - static void markObjects(Heap::Base *m, ExecutionEngine *e); }; -inline ReturnedValue CallContext::argument(int i) const { +inline ReturnedValue SimpleCallContext::argument(int i) const { return i < argc() ? args()[i].asReturnedValue() : Primitive::undefinedValue().asReturnedValue(); } +struct Q_QML_EXPORT CallContext : public SimpleCallContext +{ + V4_MANAGED(CallContext, SimpleCallContext) +}; + struct GlobalContext : public ExecutionContext { V4_MANAGED(GlobalContext, ExecutionContext) @@ -277,14 +286,14 @@ struct WithContext : public ExecutionContext V4_MANAGED(WithContext, ExecutionContext) }; -inline CallContext *ExecutionContext::asCallContext() +inline SimpleCallContext *ExecutionContext::asSimpleCallContext() { - return d()->type >= Heap::ExecutionContext::Type_SimpleCallContext ? static_cast(this) : 0; + return d()->type >= Heap::ExecutionContext::Type_SimpleCallContext ? static_cast(this) : 0; } -inline const CallContext *ExecutionContext::asCallContext() const +inline const SimpleCallContext *ExecutionContext::asSimpleCallContext() const { - return d()->type >= Heap::ExecutionContext::Type_SimpleCallContext ? static_cast(this) : 0; + return d()->type >= Heap::ExecutionContext::Type_SimpleCallContext ? static_cast(this) : 0; } inline const CatchContext *ExecutionContext::asCatchContext() const diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 19298f3803..bc618e3e7a 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -886,7 +886,7 @@ QUrl ExecutionEngine::resolvedUrl(const QString &file) QUrl base; ExecutionContext *c = currentContext; while (c) { - CallContext *callCtx = c->asCallContext(); + SimpleCallContext *callCtx = c->asSimpleCallContext(); if (callCtx && callCtx->d()->v4Function) { base.setUrl(callCtx->d()->v4Function->sourceFile()); break; diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index 54d0528c42..ff5febd19c 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -102,7 +102,7 @@ struct Q_QML_EXPORT Function { }; -inline unsigned int Heap::CallContext::formalParameterCount() const +inline unsigned int Heap::SimpleCallContext::formalParameterCount() const { return v4Function ? v4Function->nFormals : 0; } diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 94555a6679..9afea01141 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -472,7 +472,7 @@ void OldBuiltinFunction::call(const Managed *that, Scope &scope, CallData *callD ExecutionContextSaver ctxSaver(scope); - CallContext::Data *ctx = v4->memoryManager->allocSimpleCallContext(v4); + SimpleCallContext::Data *ctx = v4->memoryManager->allocSimpleCallContext(v4); ctx->strictMode = f->scope()->strictMode; // ### needed? scope or parent context? ctx->callData = callData; v4->pushContext(ctx); @@ -519,7 +519,7 @@ void IndexedBuiltinFunction::call(const Managed *that, Scope &scope, CallData *c ExecutionContextSaver ctxSaver(scope); - CallContext::Data *ctx = v4->memoryManager->allocSimpleCallContext(v4); + SimpleCallContext::Data *ctx = v4->memoryManager->allocSimpleCallContext(v4); ctx->strictMode = f->scope()->strictMode; // ### needed? scope or parent context? ctx->callData = callData; v4->pushContext(ctx); diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index be2772c23f..8afeb5b4da 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -410,10 +410,14 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code QV4::Heap::ExecutionContext *scope = context->d(); int i = 0; while (scope) { - if (scope->type >= QV4::Heap::ExecutionContext::Type_SimpleCallContext) { + if (scope->type == QV4::Heap::ExecutionContext::Type_SimpleCallContext) { + QV4::Heap::SimpleCallContext *cc = static_cast(scope); + scopes[2*i + 2] = cc->callData->args; + scopes[2*i + 3] = 0; + } else if (scope->type == QV4::Heap::ExecutionContext::Type_CallContext) { QV4::Heap::CallContext *cc = static_cast(scope); scopes[2*i + 2] = cc->callData->args; - scopes[2*i + 3] = cc->locals; + scopes[2*i + 3] = cc->locals.v; } else { scopes[2*i + 2] = 0; scopes[2*i + 3] = 0; diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 016879799a..0bd9229792 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -206,11 +206,11 @@ public: Q_DECL_CONSTEXPR static inline std::size_t align(std::size_t size) { return (size + Chunk::SlotSize - 1) & ~(Chunk::SlotSize - 1); } - QV4::Heap::CallContext *allocSimpleCallContext(QV4::ExecutionEngine *v4) + QV4::Heap::SimpleCallContext *allocSimpleCallContext(QV4::ExecutionEngine *v4) { Heap::CallContext *ctxt = stackAllocator.allocate(); - memset(ctxt, 0, sizeof(Heap::CallContext)); - ctxt->setVtable(QV4::CallContext::staticVTable()); + memset(ctxt, 0, sizeof(Heap::SimpleCallContext)); + ctxt->setVtable(QV4::SimpleCallContext::staticVTable()); ctxt->init(v4); return ctxt; -- cgit v1.2.3 From d8c195149c784e3cf11df681229bcf6defba9256 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2017 12:00:23 +0100 Subject: Cleanup Property class Disable copying and remove some unused methods Change-Id: I2ae56f29260255e1ed759a4656e76ce4a30a2e89 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4property_p.h | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/qml/jsruntime/qv4property_p.h b/src/qml/jsruntime/qv4property_p.h index 5069d7690b..2a5b6f7f74 100644 --- a/src/qml/jsruntime/qv4property_p.h +++ b/src/qml/jsruntime/qv4property_p.h @@ -78,12 +78,6 @@ struct Property { attrs->resolve(); } - static Property genericDescriptor() { - Property pd; - pd.value = Primitive::emptyValue(); - return pd; - } - inline bool isSubset(const PropertyAttributes &attrs, const Property *other, PropertyAttributes otherAttrs) const; inline void merge(PropertyAttributes &attrs, const Property *other, PropertyAttributes otherAttrs); @@ -99,19 +93,12 @@ struct Property { } explicit Property() { value = Encode::undefined(); set = Value::fromHeapObject(0); } - explicit Property(Value v) : value(v) { set = Value::fromHeapObject(0); } - Property(FunctionObject *getter, FunctionObject *setter) { - value = reinterpret_cast(getter); - set = reinterpret_cast(setter); - } Property(Heap::FunctionObject *getter, Heap::FunctionObject *setter) { value.setM(reinterpret_cast(getter)); set.setM(reinterpret_cast(setter)); } - Property &operator=(Value v) { value = v; return *this; } private: - Property(const Property &); - Property &operator=(const Property &); + Q_DISABLE_COPY(Property) }; inline bool Property::isSubset(const PropertyAttributes &attrs, const Property *other, PropertyAttributes otherAttrs) const -- cgit v1.2.3 From 2fbb5c93c765ea53c3bd5f30b8bf769ccc88874a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2017 14:04:33 +0100 Subject: Always pass the ExecutionEngine into lookup calls This is required in preparation for proper write barriers, where we'll need to check the engine whether the barrier is enabled. It also makes the lookup calls more consistent, and doesn't affect performance in any measurable way. Change-Id: Ia838237a44ba809d4643e2626bc81560388276e2 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4compileddata.cpp | 2 -- src/qml/jit/qv4isel_masm.cpp | 2 ++ src/qml/jit/qv4isel_masm_p.h | 12 +++++++++--- src/qml/jsruntime/qv4lookup.cpp | 30 +++++++++++++++--------------- src/qml/jsruntime/qv4lookup_p.h | 17 ++++++++--------- src/qml/jsruntime/qv4vme_moth.cpp | 4 ++-- 6 files changed, 36 insertions(+), 31 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index a8f065210b..c25a139379 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -174,8 +174,6 @@ QV4::Function *CompilationUnit::linkToEngine(ExecutionEngine *engine) l->level = -1; l->index = UINT_MAX; l->nameIndex = compiledLookups[i].nameIndex; - if (type == CompiledData::Lookup::Type_IndexedGetter || type == CompiledData::Lookup::Type_IndexedSetter) - l->engine = engine; } } diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 69d6951bb9..6d3066aea1 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -621,6 +621,7 @@ void InstructionSelection::getElement(IR::Expr *base, IR::Expr *in if (useFastLookups) { uint lookup = registerIndexedGetterLookup(); generateLookupCall(target, lookup, qOffsetOf(QV4::Lookup, indexedGetter), + JITTargetPlatform::EngineRegister, PointerToValue(base), PointerToValue(index)); return; @@ -636,6 +637,7 @@ void InstructionSelection::setElement(IR::Expr *source, IR::Expr * if (useFastLookups) { uint lookup = registerIndexedSetterLookup(); generateLookupCall(JITAssembler::Void, lookup, qOffsetOf(QV4::Lookup, indexedSetter), + JITTargetPlatform::EngineRegister, PointerToValue(targetBase), PointerToValue(targetIndex), PointerToValue(source)); return; diff --git a/src/qml/jit/qv4isel_masm_p.h b/src/qml/jit/qv4isel_masm_p.h index 5c046cb397..5764c3946e 100644 --- a/src/qml/jit/qv4isel_masm_p.h +++ b/src/qml/jit/qv4isel_masm_p.h @@ -260,8 +260,8 @@ private: void calculateRegistersToSave(const RegisterInformation &used); - template - void generateLookupCall(Retval retval, uint index, uint getterSetterOffset, Arg1 arg1, Arg2 arg2, Arg3 arg3) + template + void generateLookupCall(Retval retval, uint index, uint getterSetterOffset, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) { // Note: using the return value register is intentional: for ABIs where the first parameter // goes into the same register as the return value (currently only ARM), the prepareCall @@ -271,7 +271,7 @@ private: _as->generateFunctionCallImp(true, retval, "lookup getter/setter", typename JITAssembler::LookupCall(lookupAddr, getterSetterOffset), lookupAddr, - arg1, arg2, arg3); + arg1, arg2, arg3, arg4); } template @@ -280,6 +280,12 @@ private: generateLookupCall(retval, index, getterSetterOffset, arg1, arg2, typename JITAssembler::VoidType()); } + template + void generateLookupCall(Retval retval, uint index, uint getterSetterOffset, Arg1 arg1, Arg2 arg2, Arg3 arg3) + { + generateLookupCall(retval, index, getterSetterOffset, arg1, arg2, arg3, typename JITAssembler::VoidType()); + } + IR::BasicBlock *_block; BitVector _removableJumps; JITAssembler* _as; diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index f85ead1852..bd677483b5 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -116,20 +116,20 @@ ReturnedValue Lookup::lookup(const Object *thisObject, PropertyAttributes *attrs return Primitive::emptyValue().asReturnedValue(); } -ReturnedValue Lookup::indexedGetterGeneric(Lookup *l, const Value &object, const Value &index) +ReturnedValue Lookup::indexedGetterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index) { uint idx; if (object.isObject() && index.asArrayIndex(idx)) { l->indexedGetter = indexedGetterObjectInt; - return indexedGetterObjectInt(l, object, index); + return indexedGetterObjectInt(l, engine, object, index); } - return indexedGetterFallback(l, object, index); + return indexedGetterFallback(l, engine, object, index); } -ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const Value &object, const Value &index) +ReturnedValue Lookup::indexedGetterFallback(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index) { Q_UNUSED(l); - Scope scope(l->engine); + Scope scope(engine); uint idx = 0; bool isInt = index.asArrayIndex(idx); @@ -147,7 +147,7 @@ ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const Value &object, cons if (object.isNullOrUndefined()) { QString message = QStringLiteral("Cannot read property '%1' of %2").arg(index.toQStringNoThrow()).arg(object.toQStringNoThrow()); - return l->engine->throwTypeError(message); + return engine->throwTypeError(message); } o = RuntimeHelpers::convertToObject(scope.engine, object); @@ -173,7 +173,7 @@ ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const Value &object, cons } -ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const Value &object, const Value &index) +ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index) { uint idx; if (index.asArrayIndex(idx)) { @@ -190,25 +190,25 @@ ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const Value &object, con } } - return indexedGetterFallback(l, object, index); + return indexedGetterFallback(l, engine, object, index); } -void Lookup::indexedSetterGeneric(Lookup *l, const Value &object, const Value &index, const Value &v) +void Lookup::indexedSetterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &v) { if (Object *o = object.objectValue()) { uint idx; if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple && index.asArrayIndex(idx)) { l->indexedSetter = indexedSetterObjectInt; - indexedSetterObjectInt(l, object, index, v); + indexedSetterObjectInt(l, engine, object, index, v); return; } } - indexedSetterFallback(l, object, index, v); + indexedSetterFallback(l, engine, object, index, v); } -void Lookup::indexedSetterFallback(Lookup *l, const Value &object, const Value &index, const Value &value) +void Lookup::indexedSetterFallback(Lookup *, ExecutionEngine *engine, const Value &object, const Value &index, const Value &value) { - Scope scope(l->engine); + Scope scope(engine); ScopedObject o(scope, object.toObject(scope.engine)); if (scope.engine->hasException) return; @@ -230,7 +230,7 @@ void Lookup::indexedSetterFallback(Lookup *l, const Value &object, const Value & o->put(name, value); } -void Lookup::indexedSetterObjectInt(Lookup *l, const Value &object, const Value &index, const Value &v) +void Lookup::indexedSetterObjectInt(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &v) { uint idx; if (index.asArrayIndex(idx)) { @@ -247,7 +247,7 @@ void Lookup::indexedSetterObjectInt(Lookup *l, const Value &object, const Value } } } - indexedSetterFallback(l, object, index, v); + indexedSetterFallback(l, engine, object, index, v); } ReturnedValue Lookup::getterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object) diff --git a/src/qml/jsruntime/qv4lookup_p.h b/src/qml/jsruntime/qv4lookup_p.h index c5ee92fedd..1b1c307530 100644 --- a/src/qml/jsruntime/qv4lookup_p.h +++ b/src/qml/jsruntime/qv4lookup_p.h @@ -67,14 +67,13 @@ namespace QV4 { struct Lookup { enum { Size = 4 }; union { - ReturnedValue (*indexedGetter)(Lookup *l, const Value &object, const Value &index); - void (*indexedSetter)(Lookup *l, const Value &object, const Value &index, const Value &v); + ReturnedValue (*indexedGetter)(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index); + void (*indexedSetter)(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &v); ReturnedValue (*getter)(Lookup *l, ExecutionEngine *engine, const Value &object); ReturnedValue (*globalGetter)(Lookup *l, ExecutionEngine *engine); void (*setter)(Lookup *l, ExecutionEngine *engine, Value &object, const Value &v); }; union { - ExecutionEngine *engine; InternalClass *classList[Size]; struct { void *dummy0; @@ -90,13 +89,13 @@ struct Lookup { uint index; uint nameIndex; - static ReturnedValue indexedGetterGeneric(Lookup *l, const Value &object, const Value &index); - static ReturnedValue indexedGetterFallback(Lookup *l, const Value &object, const Value &index); - static ReturnedValue indexedGetterObjectInt(Lookup *l, const Value &object, const Value &index); + static ReturnedValue indexedGetterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index); + static ReturnedValue indexedGetterFallback(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index); + static ReturnedValue indexedGetterObjectInt(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index); - static void indexedSetterGeneric(Lookup *l, const Value &object, const Value &index, const Value &v); - static void indexedSetterFallback(Lookup *l, const Value &object, const Value &index, const Value &value); - static void indexedSetterObjectInt(Lookup *l, const Value &object, const Value &index, const Value &v); + static void indexedSetterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &v); + static void indexedSetterFallback(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &value); + static void indexedSetterObjectInt(Lookup *l, ExecutionEngine *engine, const Value &object, const Value &index, const Value &v); static ReturnedValue getterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object); static ReturnedValue getterTwoClasses(Lookup *l, ExecutionEngine *engine, const Value &object); diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 8afeb5b4da..73db76e105 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -484,7 +484,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(LoadElementLookup) QV4::Lookup *l = context->d()->lookups + instr.lookup; - STOREVALUE(instr.result, l->indexedGetter(l, VALUE(instr.base), VALUE(instr.index))); + STOREVALUE(instr.result, l->indexedGetter(l, engine, VALUE(instr.base), VALUE(instr.index))); MOTH_END_INSTR(LoadElementLookup) MOTH_BEGIN_INSTR(StoreElement) @@ -494,7 +494,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(StoreElementLookup) QV4::Lookup *l = context->d()->lookups + instr.lookup; - l->indexedSetter(l, VALUE(instr.base), VALUE(instr.index), VALUE(instr.source)); + l->indexedSetter(l, engine, VALUE(instr.base), VALUE(instr.index), VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreElementLookup) -- cgit v1.2.3 From 8b3cbc4403e3eac286613691c11aa1ded588da59 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2017 22:22:00 +0100 Subject: Refactor how we define Heap objects Declare the type of Heap object in the Member() macro, instead of deducing it from templates. This allows us to encode the offset of the member in the second template argument to Pointer<> in a second step. Change-Id: I2cfb73785749d3fb991689b4e0554a72b3e5e13f Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject_p.h | 10 +++++----- src/qml/jsruntime/qv4arraydata_p.h | 33 ++++++++++++-------------------- src/qml/jsruntime/qv4context_p.h | 18 ++++++++--------- src/qml/jsruntime/qv4dataview_p.h | 6 +++--- src/qml/jsruntime/qv4errorobject_p.h | 2 +- src/qml/jsruntime/qv4functionobject_p.h | 10 +++++----- src/qml/jsruntime/qv4global_p.h | 5 +++-- src/qml/jsruntime/qv4memberdata_p.h | 2 +- src/qml/jsruntime/qv4object.cpp | 3 ++- src/qml/jsruntime/qv4object_p.h | 10 +++++----- src/qml/jsruntime/qv4qmlcontext_p.h | 2 +- src/qml/jsruntime/qv4qobjectwrapper_p.h | 8 ++++---- src/qml/jsruntime/qv4regexpobject_p.h | 12 ++++++------ src/qml/jsruntime/qv4stringobject_p.h | 2 +- src/qml/jsruntime/qv4typedarray_p.h | 10 +++++----- src/qml/jsruntime/qv4value_p.h | 1 + src/qml/memory/qv4heap_p.h | 13 +++++++------ src/qml/memory/qv4mm.cpp | 8 ++++---- src/qml/memory/qv4mmdefs_p.h | 29 ++++++++-------------------- src/qml/qml/qqmlcomponent.cpp | 10 +++++----- src/qml/qml/qqmlxmlhttprequest.cpp | 2 +- 21 files changed, 89 insertions(+), 107 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h index f579afff14..46e1f884e8 100644 --- a/src/qml/jsruntime/qv4argumentsobject_p.h +++ b/src/qml/jsruntime/qv4argumentsobject_p.h @@ -60,7 +60,7 @@ namespace QV4 { namespace Heap { #define ArgumentsGetterFunctionMembers(class, Member) \ - Member(class, uint, index) + Member(class, NoMark, uint, index) DECLARE_HEAP_OBJECT(ArgumentsGetterFunction, FunctionObject) { DECLARE_MARK_TABLE(ArgumentsGetterFunction); @@ -68,7 +68,7 @@ DECLARE_HEAP_OBJECT(ArgumentsGetterFunction, FunctionObject) { }; #define ArgumentsSetterFunctionMembers(class, Member) \ - Member(class, uint, index) + Member(class, NoMark, uint, index) DECLARE_HEAP_OBJECT(ArgumentsSetterFunction, FunctionObject) { DECLARE_MARK_TABLE(ArgumentsSetterFunction); @@ -76,9 +76,9 @@ DECLARE_HEAP_OBJECT(ArgumentsSetterFunction, FunctionObject) { }; #define ArgumentsObjectMembers(class, Member) \ - Member(class, Pointer, context) \ - Member(class, Pointer, mappedArguments) \ - Member(class, bool, fullyCreated) + Member(class, Pointer, CallContext *, context) \ + Member(class, Pointer, MemberData *, mappedArguments) \ + Member(class, NoMark, bool, fullyCreated) DECLARE_HEAP_OBJECT(ArgumentsObject, Object) { DECLARE_MARK_TABLE(ArgumentsObject); diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 882f8d1f8d..1ede463d6d 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -90,28 +90,19 @@ struct ArrayVTable namespace Heap { -struct ArrayDataData { - enum Type { - Simple = 0, - Complex = 1, - Sparse = 2, - Custom = 3 - }; - - Type type; - uint offset; - PropertyAttributes *attrs; - ReturnedValue freeList; - SparseArray *sparse; - ValueArray values; -}; -static Q_CONSTEXPR quint64 ArrayData_markTable = \ - (MarkFlagsForType::markFlags << (offsetof(ArrayDataData, values) >> 2)) \ - << (sizeof(Base) >> 2) | QV4::Heap::Base::markTable; - -struct ArrayData : public Base, ArrayDataData { +#define ArrayDataMembers(class, Member) \ + Member(class, NoMark, uint, type) \ + Member(class, NoMark, uint, offset) \ + Member(class, NoMark, PropertyAttributes *, attrs) \ + Member(class, NoMark, ReturnedValue, freeList) \ + Member(class, NoMark, SparseArray *, sparse) \ + Member(class, ValueArray, ValueArray, values) + +DECLARE_HEAP_OBJECT(ArrayData, Base) { DECLARE_MARK_TABLE(ArrayData); + enum Type { Simple = 0, Complex = 1, Sparse = 2, Custom = 3 }; + bool isSparse() const { return type == Sparse; } const ArrayVTable *vtable() const { return reinterpret_cast(Base::vtable()); } @@ -197,7 +188,7 @@ struct Q_QML_EXPORT ArrayData : public Managed uint alloc() const { return d()->values.alloc; } uint &alloc() { return d()->values.alloc; } void setAlloc(uint a) { d()->values.alloc = a; } - Type type() const { return d()->type; } + Type type() const { return static_cast(d()->type); } void setType(Type t) { d()->type = t; } PropertyAttributes *attrs() const { return d()->attrs; } void setAttrs(PropertyAttributes *a) { d()->attrs = a; } diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 3d4a9ba1d7..ccea1dbc80 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -97,7 +97,7 @@ namespace Heap { struct QmlContext; #define ExecutionContextMembers(class, Member) \ - Member(class, Pointer, outer) + Member(class, Pointer, ExecutionContext *, outer) DECLARE_HEAP_OBJECT(ExecutionContext, Base) { DECLARE_MARK_TABLE(ExecutionContext); @@ -133,8 +133,8 @@ DECLARE_HEAP_OBJECT(ExecutionContext, Base) { V4_ASSERT_IS_TRIVIAL(ExecutionContext) #define SimpleCallContextMembers(class, Member) \ - Member(class, Pointer, activation) \ - Member(class, QV4::Function *, v4Function) + Member(class, Pointer, Object *, activation) \ + Member(class, NoMark, QV4::Function *, v4Function) DECLARE_HEAP_OBJECT(SimpleCallContext, ExecutionContext) { DECLARE_MARK_TABLE(SimpleCallContext); @@ -150,8 +150,8 @@ DECLARE_HEAP_OBJECT(SimpleCallContext, ExecutionContext) { V4_ASSERT_IS_TRIVIAL(SimpleCallContext) #define CallContextMembers(class, Member) \ - Member(class, Pointer, function) \ - Member(class, ValueArray, locals) \ + Member(class, Pointer, FunctionObject *, function) \ + Member(class, ValueArray, ValueArray, locals) \ DECLARE_HEAP_OBJECT(CallContext, SimpleCallContext) { DECLARE_MARK_TABLE(CallContext); @@ -160,7 +160,7 @@ DECLARE_HEAP_OBJECT(CallContext, SimpleCallContext) { }; #define GlobalContextMembers(class, Member) \ - Member(class, Pointer, global) + Member(class, Pointer, Object *, global) DECLARE_HEAP_OBJECT(GlobalContext, ExecutionContext) { DECLARE_MARK_TABLE(GlobalContext); @@ -170,8 +170,8 @@ DECLARE_HEAP_OBJECT(GlobalContext, ExecutionContext) { V4_ASSERT_IS_TRIVIAL(GlobalContext) #define CatchContextMembers(class, Member) \ - Member(class, Pointer, exceptionVarName) \ - Member(class, Value, exceptionValue) + Member(class, Pointer, String *, exceptionVarName) \ + Member(class, Value, Value, exceptionValue) DECLARE_HEAP_OBJECT(CatchContext, ExecutionContext) { DECLARE_MARK_TABLE(CatchContext); @@ -181,7 +181,7 @@ DECLARE_HEAP_OBJECT(CatchContext, ExecutionContext) { V4_ASSERT_IS_TRIVIAL(CatchContext) #define WithContextMembers(class, Member) \ - Member(class, Pointer, withObject) + Member(class, Pointer, Object *, withObject) DECLARE_HEAP_OBJECT(WithContext, ExecutionContext) { DECLARE_MARK_TABLE(WithContext); diff --git a/src/qml/jsruntime/qv4dataview_p.h b/src/qml/jsruntime/qv4dataview_p.h index f61a2a1780..5c50df4655 100644 --- a/src/qml/jsruntime/qv4dataview_p.h +++ b/src/qml/jsruntime/qv4dataview_p.h @@ -64,9 +64,9 @@ struct DataViewCtor : FunctionObject { }; #define DataViewMembers(class, Member) \ - Member(class, Pointer, buffer) \ - Member(class, uint, byteLength) \ - Member(class, uint, byteOffset) + Member(class, Pointer, ArrayBuffer *, buffer) \ + Member(class, NoMark, uint, byteLength) \ + Member(class, NoMark, uint, byteOffset) DECLARE_HEAP_OBJECT(DataView, Object) { DECLARE_MARK_TABLE(DataView); diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h index a5af0b6ab6..5afd9efcba 100644 --- a/src/qml/jsruntime/qv4errorobject_p.h +++ b/src/qml/jsruntime/qv4errorobject_p.h @@ -64,7 +64,7 @@ namespace Heap { #define ErrorObjectMembers(class, Member) \ - Member(class, Pointer, stack) + Member(class, Pointer, String *, stack) DECLARE_HEAP_OBJECT(ErrorObject, Object) { DECLARE_MARK_TABLE(ErrorObject); diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index 083ff4343b..1fc40e6ff6 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -66,8 +66,8 @@ struct BuiltinFunction; namespace Heap { #define FunctionObjectMembers(class, Member) \ - Member(class, Pointer, scope) \ - Member(class, Function *, function) + Member(class, Pointer, ExecutionContext *, scope) \ + Member(class, NoMark, Function *, function) DECLARE_HEAP_OBJECT(FunctionObject, Object) { DECLARE_MARK_TABLE(FunctionObject); @@ -122,9 +122,9 @@ struct ScriptFunction : FunctionObject { }; #define BoundFunctionMembers(class, Member) \ - Member(class, Pointer, target) \ - Member(class, Value, boundThis) \ - Member(class, Pointer, boundArgs) + Member(class, Pointer, FunctionObject *, target) \ + Member(class, Value, Value, boundThis) \ + Member(class, Pointer, MemberData *, boundArgs) DECLARE_HEAP_OBJECT(BoundFunction, FunctionObject) { DECLARE_MARK_TABLE(BoundFunction); diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 677f0ebea9..ea3e1d750e 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -184,7 +184,7 @@ namespace Heap { struct DataView; struct TypedArray; - template struct Pointer; + template struct Pointer; } class MemoryManager; @@ -199,10 +199,11 @@ struct ScriptFunction; struct InternalClass; struct Property; struct Value; -struct ValueArray; +template struct ValueArray; struct Lookup; struct ArrayData; struct VTable; +struct Function; struct BooleanObject; struct NumberObject; diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index a531d3303f..e486895754 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -60,7 +60,7 @@ namespace QV4 { namespace Heap { #define MemberDataMembers(class, Member) \ - Member(class, ValueArray, values) + Member(class, ValueArray, ValueArray, values) DECLARE_HEAP_OBJECT(MemberData, Base) { DECLARE_MARK_TABLE(MemberData); diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index 7886dd24fa..cb7ce03c5c 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -1132,7 +1132,8 @@ void Object::copyArrayData(Object *other) ; } else { Q_ASSERT(!arrayData() && other->arrayData()); - ArrayData::realloc(this, other->d()->arrayData->type, other->d()->arrayData->values.alloc, false); + ArrayData::realloc(this, static_cast(other->d()->arrayData->type), + other->d()->arrayData->values.alloc, false); if (other->arrayType() == Heap::ArrayData::Sparse) { Heap::ArrayData *od = other->d()->arrayData; Heap::ArrayData *dd = d()->arrayData; diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 2affcd1af9..5b43710c03 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -68,10 +68,10 @@ struct BuiltinFunction; namespace Heap { #define ObjectMembers(class, Member) \ - Member(class, InternalClass *, internalClass) \ - Member(class, Pointer, prototype) \ - Member(class, Pointer, memberData) \ - Member(class, Pointer, arrayData) + Member(class, NoMark, InternalClass *, internalClass) \ + Member(class, Pointer, Object *, prototype) \ + Member(class, Pointer, MemberData *, memberData) \ + Member(class, Pointer, ArrayData *, arrayData) DECLARE_HEAP_OBJECT(Object, Base) { DECLARE_MARK_TABLE(Object); @@ -299,7 +299,7 @@ public: void push_back(const Value &v); ArrayData::Type arrayType() const { - return arrayData() ? d()->arrayData->type : Heap::ArrayData::Simple; + return arrayData() ? static_cast(d()->arrayData->type) : Heap::ArrayData::Simple; } // ### remove me void setArrayType(ArrayData::Type t) { diff --git a/src/qml/jsruntime/qv4qmlcontext_p.h b/src/qml/jsruntime/qv4qmlcontext_p.h index 73100807ae..835c9236fe 100644 --- a/src/qml/jsruntime/qv4qmlcontext_p.h +++ b/src/qml/jsruntime/qv4qmlcontext_p.h @@ -78,7 +78,7 @@ struct QmlContextWrapper : Object { }; #define QmlContextMembers(class, Member) \ - Member(class, Pointer, qml) + Member(class, Pointer, QmlContextWrapper *, qml) DECLARE_HEAP_OBJECT(QmlContext, ExecutionContext) { DECLARE_MARK_TABLE(QmlContext); diff --git a/src/qml/jsruntime/qv4qobjectwrapper_p.h b/src/qml/jsruntime/qv4qobjectwrapper_p.h index 002e1f2eb0..c031a40211 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper_p.h +++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h @@ -96,10 +96,10 @@ private: }; #define QObjectMethodMembers(class, Member) \ - Member(class, Pointer, valueTypeWrapper) \ - Member(class, QQmlQPointer, qObj) \ - Member(class, QQmlPropertyCache *, _propertyCache) \ - Member(class, int, index) + Member(class, Pointer, QQmlValueTypeWrapper *, valueTypeWrapper) \ + Member(class, NoMark, QQmlQPointer, qObj) \ + Member(class, NoMark, QQmlPropertyCache *, _propertyCache) \ + Member(class, NoMark, int, index) DECLARE_HEAP_OBJECT(QObjectMethod, FunctionObject) { DECLARE_MARK_TABLE(QObjectMethod); diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index 6726568eec..b429524b71 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -74,8 +74,8 @@ namespace QV4 { namespace Heap { #define RegExpObjectMembers(class, Member) \ - Member(class, Pointer, value) \ - Member(class, bool, global) + Member(class, Pointer, RegExp *, value) \ + Member(class, NoMark, bool, global) DECLARE_HEAP_OBJECT(RegExpObject, Object) { DECLARE_MARK_TABLE(RegExpObject); @@ -86,10 +86,10 @@ DECLARE_HEAP_OBJECT(RegExpObject, Object) { }; #define RegExpCtorMembers(class, Member) \ - Member(class, Value, lastMatch) \ - Member(class, Pointer, lastInput) \ - Member(class, int, lastMatchStart) \ - Member(class, int, lastMatchEnd) + Member(class, Value, Value, lastMatch) \ + Member(class, Pointer, String *, lastInput) \ + Member(class, NoMark, int, lastMatchStart) \ + Member(class, NoMark, int, lastMatchEnd) DECLARE_HEAP_OBJECT(RegExpCtor, FunctionObject) { DECLARE_MARK_TABLE(RegExpCtor); diff --git a/src/qml/jsruntime/qv4stringobject_p.h b/src/qml/jsruntime/qv4stringobject_p.h index ae9377abb4..5ccee3335e 100644 --- a/src/qml/jsruntime/qv4stringobject_p.h +++ b/src/qml/jsruntime/qv4stringobject_p.h @@ -61,7 +61,7 @@ namespace QV4 { namespace Heap { #define StringObjectMembers(class, Member) \ - Member(class, Pointer, string) + Member(class, Pointer, String *, string) DECLARE_HEAP_OBJECT(StringObject, Object) { DECLARE_MARK_TABLE(StringObject); diff --git a/src/qml/jsruntime/qv4typedarray_p.h b/src/qml/jsruntime/qv4typedarray_p.h index f6b302a396..96786c8231 100644 --- a/src/qml/jsruntime/qv4typedarray_p.h +++ b/src/qml/jsruntime/qv4typedarray_p.h @@ -73,11 +73,11 @@ struct TypedArrayOperations { namespace Heap { #define TypedArrayMembers(class, Member) \ - Member(class, Pointer, buffer) \ - Member(class, const TypedArrayOperations *, type) \ - Member(class, uint, byteLength) \ - Member(class, uint, byteOffset) \ - Member(class, uint, arrayType) + Member(class, Pointer, ArrayBuffer *, buffer) \ + Member(class, NoMark, const TypedArrayOperations *, type) \ + Member(class, NoMark, uint, byteLength) \ + Member(class, NoMark, uint, byteOffset) \ + Member(class, NoMark, uint, arrayType) DECLARE_HEAP_OBJECT(TypedArray, Object) { DECLARE_MARK_TABLE(TypedArray); diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 6d25abba9a..771d28dce8 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -708,6 +708,7 @@ inline unsigned int Value::toUInt32() const return (unsigned int)toInt32(); } +template struct ValueArray { uint size; uint alloc; diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index 28d39b7fb7..febe4e6446 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -164,19 +164,20 @@ struct Q_QML_EXPORT Base { }; V4_ASSERT_IS_TRIVIAL(Base) -template +template struct Pointer { - T *operator->() const { return ptr; } - operator T *() const { return ptr; } + T operator->() const { return ptr; } + operator T () const { return ptr; } - Pointer &operator =(T *t) { ptr = t; return *this; } + Pointer &operator =(T t) { ptr = t; return *this; } template Type *cast() { return static_cast(ptr); } - T *ptr; + T ptr; }; -V4_ASSERT_IS_TRIVIAL(Pointer) +typedef Pointer V4PointerCheck; +V4_ASSERT_IS_TRIVIAL(V4PointerCheck) } diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 259f221a86..89cf9caf9e 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -762,15 +762,15 @@ void MemoryManager::drainMarkStack(Value *markBase) break; case Mark_Pointer: { // qDebug() << "marking pointer at " << mem; - Heap::Pointer *p = reinterpret_cast *>(mem); - if (*p) - (*p)->mark(engine); + Heap::Base *p = reinterpret_cast(mem); + if (p) + p->mark(engine); break; } case Mark_ValueArray: { Q_ASSERT(m == Mark_ValueArray); // qDebug() << "marking Value Array at offset" << hex << (mem - reinterpret_cast(h)); - ValueArray *a = reinterpret_cast(mem); + ValueArray<0> *a = reinterpret_cast *>(mem); Value *v = a->v; const Value *end = v + a->alloc; while (v < end) { diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index a987c3a200..e4d5ce9da2 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -265,27 +265,16 @@ enum MarkFlags { Mark_ValueArray = 3 }; -template -struct MarkFlagsForType { - static const quint64 markFlags = Mark_NoMark; -}; -template -struct MarkFlagsForType> { - static const quint64 markFlags = Mark_Pointer; -}; -template<> -struct MarkFlagsForType { - static const quint64 markFlags = Mark_Value; -}; -template<> -struct MarkFlagsForType { - static const quint64 markFlags = Mark_ValueArray; -}; +#define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name) \ + HEAP_OBJECT_MEMBER_EXPANSION_##gcType(c, type, name) -#define HEAP_OBJECT_MEMBER_EXPANSION(c, type, name) type name; +#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer(c, type, name) Pointer name; +#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark(c, type, name) type name; +#define HEAP_OBJECT_MEMBER_EXPANSION_Value(c, type, name) type name; +#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name) ValueArray<0> name; -#define HEAP_OBJECT_MARK_EXPANSION(class, type, name) \ - (MarkFlagsForType::markFlags << (offsetof(class, name) >> 2)) | +#define HEAP_OBJECT_MARK_EXPANSION(class, gcType, type, name) \ + (Mark_##gcType << (offsetof(class, name) >> 2)) | #define DECLARE_HEAP_OBJECT(name, base) \ struct name##Data { \ @@ -299,8 +288,6 @@ struct name : base, name##Data #define DECLARE_MARK_TABLE(class) static Q_CONSTEXPR quint64 markTable = class##_markTable - - } QT_END_NAMESPACE diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index 487846f610..79e52f3914 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1047,11 +1047,11 @@ namespace QV4 { namespace Heap { #define QmlIncubatorObjectMembers(class, Member) \ - Member(class, Value, valuemap) \ - Member(class, Value, statusChanged) \ - Member(class, Pointer, qmlContext) \ - Member(class, QQmlComponentIncubator *, incubator) \ - Member(class, QQmlQPointer, parent) + Member(class, Value, Value, valuemap) \ + Member(class, Value, Value, statusChanged) \ + Member(class, Pointer, QmlContext *, qmlContext) \ + Member(class, NoMark, QQmlComponentIncubator *, incubator) \ + Member(class, NoMark, QQmlQPointer, parent) DECLARE_HEAP_OBJECT(QmlIncubatorObject, Object) { DECLARE_MARK_TABLE(QmlIncubatorObject); diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index 868120a2f6..502a693d5c 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1598,7 +1598,7 @@ struct QQmlXMLHttpRequestWrapper : Object { }; #define QQmlXMLHttpRequestCtorMembers(class, Member) \ - Member(class, Pointer, proto) + Member(class, Pointer, Object *, proto) DECLARE_HEAP_OBJECT(QQmlXMLHttpRequestCtor, FunctionObject) { DECLARE_MARK_TABLE(QQmlXMLHttpRequestCtor); -- cgit v1.2.3 From 518e258d59adc976e2e8aa9a7f9ef36d8b8cdb66 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 31 Jan 2017 13:25:09 +0100 Subject: Make every member of a Heap object aware of its offset inside the object This will allow adding a write barrier to those fields with manageable effort. Change-Id: I7d06d7ffccbcefe66e2524c64c962353c91c2766 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4context_p.h | 2 +- src/qml/jsruntime/qv4functionobject_p.h | 2 +- src/qml/jsruntime/qv4global_p.h | 1 + src/qml/jsruntime/qv4object_p.h | 2 ++ src/qml/jsruntime/qv4regexpobject_p.h | 2 +- src/qml/jsruntime/qv4value_p.h | 5 ++++ src/qml/memory/qv4heap_p.h | 4 ++- src/qml/memory/qv4mm.cpp | 2 +- src/qml/memory/qv4mmdefs_p.h | 48 ++++++++++++++++++++++++++++----- src/qml/qml/qqmlcomponent.cpp | 4 +-- 10 files changed, 58 insertions(+), 14 deletions(-) diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index ccea1dbc80..f544821729 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -171,7 +171,7 @@ V4_ASSERT_IS_TRIVIAL(GlobalContext) #define CatchContextMembers(class, Member) \ Member(class, Pointer, String *, exceptionVarName) \ - Member(class, Value, Value, exceptionValue) + Member(class, HeapValue, HeapValue, exceptionValue) DECLARE_HEAP_OBJECT(CatchContext, ExecutionContext) { DECLARE_MARK_TABLE(CatchContext); diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index 1fc40e6ff6..c7dac7d3e5 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -123,7 +123,7 @@ struct ScriptFunction : FunctionObject { #define BoundFunctionMembers(class, Member) \ Member(class, Pointer, FunctionObject *, target) \ - Member(class, Value, Value, boundThis) \ + Member(class, HeapValue, HeapValue, boundThis) \ Member(class, Pointer, MemberData *, boundArgs) DECLARE_HEAP_OBJECT(BoundFunction, FunctionObject) { diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index ea3e1d750e..cd8fb91f7a 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -199,6 +199,7 @@ struct ScriptFunction; struct InternalClass; struct Property; struct Value; +template struct HeapValue; template struct ValueArray; struct Lookup; struct ArrayData; diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 5b43710c03..63b132c2e6 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -82,6 +82,8 @@ DECLARE_HEAP_OBJECT(Object, Base) { Value *propertyData(uint index) { return memberData->values.v + index; } }; +Q_STATIC_ASSERT(Object::markTable == ((2 << 4) | (2 << 6) | (2 << 8))); + } #define V4_OBJECT(superClass) \ diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index b429524b71..c2eeb32b88 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -86,7 +86,7 @@ DECLARE_HEAP_OBJECT(RegExpObject, Object) { }; #define RegExpCtorMembers(class, Member) \ - Member(class, Value, Value, lastMatch) \ + Member(class, HeapValue, HeapValue, lastMatch) \ Member(class, Pointer, String *, lastInput) \ Member(class, NoMark, int, lastMatchStart) \ Member(class, NoMark, int, lastMatchEnd) diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 771d28dce8..3d7776b736 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -708,6 +708,11 @@ inline unsigned int Value::toUInt32() const return (unsigned int)toInt32(); } +template +struct HeapValue : Value { + HeapValue &operator = (const Value &other) { setRawValue(other.rawValue()); return *this; } +}; + template struct ValueArray { uint size; diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index febe4e6446..b3dfa407f8 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -164,8 +164,10 @@ struct Q_QML_EXPORT Base { }; V4_ASSERT_IS_TRIVIAL(Base) -template +template struct Pointer { + static Q_CONSTEXPR size_t offset = o; + static Q_CONSTEXPR quint64 markBits = Mark_Pointer << (o >> 2); T operator->() const { return ptr; } operator T () const { return ptr; } diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 89cf9caf9e..edd26cf982 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -762,7 +762,7 @@ void MemoryManager::drainMarkStack(Value *markBase) break; case Mark_Pointer: { // qDebug() << "marking pointer at " << mem; - Heap::Base *p = reinterpret_cast(mem); + Heap::Base *p = *reinterpret_cast(mem); if (p) p->mark(engine); break; diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index e4d5ce9da2..63e51f9742 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -265,24 +265,58 @@ enum MarkFlags { Mark_ValueArray = 3 }; +template +struct MarkFlagEvaluator { + static Q_CONSTEXPR quint64 value = 0; +}; +template +struct MarkFlagEvaluator> { + static Q_CONSTEXPR quint64 value = static_cast(Mark_Pointer) << (2*o / sizeof(quintptr)); +}; +template +struct MarkFlagEvaluator> { + static Q_CONSTEXPR quint64 value = static_cast(Mark_ValueArray) << (2*o / sizeof(quintptr)); +}; +template +struct MarkFlagEvaluator> { + static Q_CONSTEXPR quint64 value = static_cast(Mark_Value) << (2 *o / sizeof(quintptr)); +}; + +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION(c, gcType, type, name) \ + HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_##gcType(c, type, name) + +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer(c, type, name) Pointer name; +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark(c, type, name) type name; +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue(c, type, name) HeapValue<0> name; +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray(c, type, name) ValueArray<0> name; + #define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name) \ HEAP_OBJECT_MEMBER_EXPANSION_##gcType(c, type, name) -#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer(c, type, name) Pointer name; -#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark(c, type, name) type name; -#define HEAP_OBJECT_MEMBER_EXPANSION_Value(c, type, name) type name; -#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name) ValueArray<0> name; +#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer(c, type, name) \ + Pointer name; +#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark(c, type, name) \ + type name; +#define HEAP_OBJECT_MEMBER_EXPANSION_HeapValue(c, type, name) \ + HeapValue name; +#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name) \ + ValueArray name; #define HEAP_OBJECT_MARK_EXPANSION(class, gcType, type, name) \ - (Mark_##gcType << (offsetof(class, name) >> 2)) | + MarkFlagEvaluator::value | #define DECLARE_HEAP_OBJECT(name, base) \ +struct name##OffsetStruct { \ + name##Members(name, HEAP_OBJECT_OFFSET_MEMBER_EXPANSION) \ +}; \ +struct name##SizeStruct : base, name##OffsetStruct {}; \ struct name##Data { \ + static Q_CONSTEXPR size_t baseOffset = sizeof(name##SizeStruct) - sizeof(name##OffsetStruct); \ name##Members(name, HEAP_OBJECT_MEMBER_EXPANSION) \ }; \ -struct name##SizeStruct : base, name##Data {}; \ +Q_STATIC_ASSERT(sizeof(name##SizeStruct) == sizeof(name##Data) + name##Data::baseOffset); \ static Q_CONSTEXPR quint64 name##_markTable = \ - (name##Members(name##Data, HEAP_OBJECT_MARK_EXPANSION) 0) << (((sizeof(name##SizeStruct) - sizeof(name##Data)) >> 2) | QV4::Heap::base::markTable; \ + (name##Members(name##Data, HEAP_OBJECT_MARK_EXPANSION) 0) | QV4::Heap::base::markTable; \ \ struct name : base, name##Data diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index 79e52f3914..c1a0637d00 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1047,8 +1047,8 @@ namespace QV4 { namespace Heap { #define QmlIncubatorObjectMembers(class, Member) \ - Member(class, Value, Value, valuemap) \ - Member(class, Value, Value, statusChanged) \ + Member(class, HeapValue, HeapValue, valuemap) \ + Member(class, HeapValue, HeapValue, statusChanged) \ Member(class, Pointer, QmlContext *, qmlContext) \ Member(class, NoMark, QQmlComponentIncubator *, incubator) \ Member(class, NoMark, QQmlQPointer, parent) -- cgit v1.2.3 From 91714e004e0c91527e7049ff43565dda682fc2bd Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 31 Jan 2017 14:03:51 +0100 Subject: Make all write operations to Pointer<> types go through a set() method The new set() method also taked an ExecutionEngine pointer. This makes it trivial to now add a write barrier for those operations. Change-Id: I321eccfe6fb279cc240b5c84910e6854f71759f6 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject.cpp | 7 ++++--- src/qml/jsruntime/qv4context.cpp | 14 +++++++------- src/qml/jsruntime/qv4context_p.h | 4 ++-- src/qml/jsruntime/qv4dataview.cpp | 2 +- src/qml/jsruntime/qv4engine.cpp | 4 ++-- src/qml/jsruntime/qv4errorobject.cpp | 2 +- src/qml/jsruntime/qv4functionobject.cpp | 14 +++++++------- src/qml/jsruntime/qv4object.cpp | 4 ++-- src/qml/jsruntime/qv4object_p.h | 2 +- src/qml/jsruntime/qv4qmlcontext.cpp | 4 ++-- src/qml/jsruntime/qv4qobjectwrapper.cpp | 2 +- src/qml/jsruntime/qv4regexpobject.cpp | 15 ++++++++------- src/qml/jsruntime/qv4stringobject.cpp | 4 ++-- src/qml/jsruntime/qv4typedarray.cpp | 16 ++++++++-------- src/qml/memory/qv4heap_p.h | 7 +++++-- src/qml/memory/qv4mm.cpp | 2 +- src/qml/memory/qv4mm_p.h | 12 ++++++------ src/qml/qml/qqmlcomponent.cpp | 4 ++-- src/qml/qml/qqmlxmlhttprequest.cpp | 2 +- 19 files changed, 63 insertions(+), 58 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 33cda59b72..bc832c3349 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -48,12 +48,13 @@ DEFINE_OBJECT_VTABLE(ArgumentsObject); void Heap::ArgumentsObject::init(QV4::CallContext *context) { + ExecutionEngine *v4 = context->d()->engine; + Object::init(); fullyCreated = false; - this->context = context->d(); + this->context.set(v4, context->d()); Q_ASSERT(vtable() == QV4::ArgumentsObject::staticVTable()); - ExecutionEngine *v4 = context->d()->engine; Scope scope(v4); Scoped args(scope, this); @@ -89,7 +90,7 @@ void ArgumentsObject::fullyCreate() Scope scope(engine()); Scoped md(scope, d()->mappedArguments); if (numAccessors) { - d()->mappedArguments = md->allocate(engine(), numAccessors); + d()->mappedArguments.set(scope.engine, md->allocate(engine(), numAccessors)); for (uint i = 0; i < numAccessors; ++i) { d()->mappedArguments->values[i] = context()->callData->args[i]; arraySet(i, context()->engine->argumentsAccessors + i, Attr_Accessor); diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index ec11422c15..3918d25326 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -72,7 +72,7 @@ Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData c->v4Function = function; c->strictMode = function->isStrict(); - c->outer = this->d(); + c->outer.set(d()->engine, this->d()); c->compilationUnit = function->compilationUnit; c->lookups = c->compilationUnit->runtimeLookups; @@ -119,7 +119,7 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) Heap::SimpleCallContext *c = static_cast(ctx->d()); if (!activation) { if (!c->activation) - c->activation = scope.engine->newObject(); + c->activation.set(scope.engine, scope.engine->newObject()); activation = c->activation; } break; @@ -153,21 +153,21 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) void Heap::GlobalContext::init(ExecutionEngine *eng) { Heap::ExecutionContext::init(eng, Heap::ExecutionContext::Type_GlobalContext); - global = eng->globalObject->d(); + global.set(eng, eng->globalObject->d()); } void Heap::CatchContext::init(ExecutionContext *outerContext, String *exceptionVarName, const Value &exceptionValue) { Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_CatchContext); - outer = outerContext; + outer.set(engine, outerContext); strictMode = outer->strictMode; callData = outer->callData; lookups = outer->lookups; constantTable = outer->constantTable; compilationUnit = outer->compilationUnit; - this->exceptionVarName = exceptionVarName; + this->exceptionVarName.set(engine, exceptionVarName); this->exceptionValue = exceptionValue; } @@ -252,7 +252,7 @@ void ExecutionContext::call(Scope &scope, CallData *callData, Function *function Scoped ctx(scope, newCallContext(function, callData)); if (f) - ctx->d()->function = f->d(); + ctx->d()->function.set(scope.engine, f->d()); scope.engine->pushContext(ctx); scope.result = Q_V4_PROFILE(scope.engine, function); @@ -276,7 +276,7 @@ void QV4::ExecutionContext::simpleCall(Scope &scope, CallData *callData, Functio ctx->compilationUnit = function->compilationUnit; ctx->lookups = function->compilationUnit->runtimeLookups; ctx->constantTable = function->compilationUnit->constants; - ctx->outer = this->d(); + ctx->outer.set(scope.engine, this->d()); for (int i = callData->argc; i < (int)function->nFormals; ++i) callData->args[i] = Encode::undefined(); diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index f544821729..a405da0f57 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -189,13 +189,13 @@ DECLARE_HEAP_OBJECT(WithContext, ExecutionContext) { void init(ExecutionContext *outerContext, Object *with) { Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_WithContext); - outer = outerContext; + outer.set(engine, outerContext); callData = outer->callData; lookups = outer->lookups; constantTable = outer->constantTable; compilationUnit = outer->compilationUnit; - withObject = with; + withObject.set(engine, with); } }; V4_ASSERT_IS_TRIVIAL(WithContext) diff --git a/src/qml/jsruntime/qv4dataview.cpp b/src/qml/jsruntime/qv4dataview.cpp index aa7d01d16c..f1405e08ee 100644 --- a/src/qml/jsruntime/qv4dataview.cpp +++ b/src/qml/jsruntime/qv4dataview.cpp @@ -73,7 +73,7 @@ void DataViewCtor::construct(const Managed *, Scope &scope, CallData *callData) } Scoped a(scope, scope.engine->memoryManager->allocObject()); - a->d()->buffer = buffer->d(); + a->d()->buffer.set(scope.engine, buffer->d()); a->d()->byteLength = byteLength; a->d()->byteOffset = byteOffset; scope.result = a.asReturnedValue(); diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index bc618e3e7a..f38580e5f8 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -398,7 +398,7 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) // // set up the global object // - rootContext()->d()->global = globalObject->d(); + rootContext()->d()->global.set(scope.engine, globalObject->d()); rootContext()->d()->callData->thisObject = globalObject; Q_ASSERT(globalObject->d()->vtable()); @@ -605,7 +605,7 @@ Heap::ArrayObject *ExecutionEngine::newArrayObject(const Value *values, int leng d->values.alloc = length; d->values.size = length; memcpy(&d->values.v, values, length*sizeof(Value)); - a->d()->arrayData = d; + a->d()->arrayData.set(this, d); a->setArrayLengthUnchecked(length); } return a->d(); diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp index 798a14086d..daa4f2d9a6 100644 --- a/src/qml/jsruntime/qv4errorobject.cpp +++ b/src/qml/jsruntime/qv4errorobject.cpp @@ -168,7 +168,7 @@ void ErrorObject::method_get_stack(const BuiltinFunction *, Scope &scope, CallDa if (frame.line >= 0) trace += QLatin1Char(':') + QString::number(frame.line); } - This->d()->stack = scope.engine->newString(trace); + This->d()->stack.set(scope.engine, scope.engine->newString(trace)); } scope.result = This->d()->stack; } diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 9afea01141..a2433e7471 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -75,7 +75,7 @@ void Heap::FunctionObject::init(QV4::ExecutionContext *scope, QV4::String *name, { Object::init(); function = nullptr; - this->scope = scope->d(); + this->scope.set(scope->engine(), scope->d()); Scope s(scope->engine()); ScopedFunctionObject f(s, this); f->init(name, createProto); @@ -86,7 +86,7 @@ void Heap::FunctionObject::init(QV4::ExecutionContext *scope, Function *function Object::init(); this->function = function; function->compilationUnit->addref(); - this->scope = scope->d(); + this->scope.set(scope->engine(), scope->d()); Scope s(scope->engine()); ScopedString name(s, function->name()); ScopedFunctionObject f(s, this); @@ -104,7 +104,7 @@ void Heap::FunctionObject::init() { Object::init(); function = nullptr; - this->scope = internalClass->engine->rootContext()->d(); + this->scope.set(internalClass->engine, internalClass->engine->rootContext()->d()); Q_ASSERT(internalClass && internalClass->find(internalClass->engine->id_prototype()) == Index_Prototype); *propertyData(Index_Prototype) = Encode::undefined(); } @@ -413,7 +413,7 @@ void ScriptFunction::call(const Managed *that, Scope &scope, CallData *callData) void Heap::ScriptFunction::init(QV4::ExecutionContext *scope, Function *function) { FunctionObject::init(); - this->scope = scope->d(); + this->scope.set(scope->engine(), scope->d()); this->function = function; function->compilationUnit->addref(); @@ -536,12 +536,12 @@ DEFINE_OBJECT_VTABLE(BoundFunction); void Heap::BoundFunction::init(QV4::ExecutionContext *scope, QV4::FunctionObject *target, const Value &boundThis, QV4::MemberData *boundArgs) { + Scope s(scope); Heap::FunctionObject::init(scope, QStringLiteral("__bound function__")); - this->target = target->d(); - this->boundArgs = boundArgs ? boundArgs->d() : 0; + this->target.set(s.engine, target->d()); + this->boundArgs.set(s.engine, boundArgs ? boundArgs->d() : 0); this->boundThis = boundThis; - Scope s(scope); ScopedObject f(s, this); ScopedValue l(s, target->get(s.engine->id_length())); diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index cb7ce03c5c..006615e580 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -63,7 +63,7 @@ void Object::setInternalClass(InternalClass *ic) d()->internalClass = ic; bool hasMD = d()->memberData != nullptr; if ((!hasMD && ic->size) || (hasMD && d()->memberData->values.size < ic->size)) - d()->memberData = MemberData::allocate(ic->engine, ic->size, d()->memberData); + d()->memberData.set(engine(), MemberData::allocate(ic->engine, ic->size, d()->memberData)); } void Object::getProperty(uint index, Property *p, PropertyAttributes *attrs) const @@ -89,7 +89,7 @@ bool Object::setPrototype(Object *proto) return false; pp = pp->prototype; } - d()->prototype = proto ? proto->d() : 0; + d()->prototype.set(engine(), proto ? proto->d() : 0); return true; } diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 63b132c2e6..df987c88f9 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -198,7 +198,7 @@ struct Q_QML_EXPORT Object: Managed { Value *propertyData(uint index) { return d()->propertyData(index); } Heap::ArrayData *arrayData() const { return d()->arrayData; } - void setArrayData(ArrayData *a) { d()->arrayData = a->d(); } + void setArrayData(ArrayData *a) { d()->arrayData.set(engine(), a->d()); } void getProperty(uint index, Property *p, PropertyAttributes *attrs) const; void setProperty(uint index, const Property *p); diff --git a/src/qml/jsruntime/qv4qmlcontext.cpp b/src/qml/jsruntime/qv4qmlcontext.cpp index cdc29c8b9c..56ecc9f682 100644 --- a/src/qml/jsruntime/qv4qmlcontext.cpp +++ b/src/qml/jsruntime/qv4qmlcontext.cpp @@ -298,14 +298,14 @@ bool QmlContextWrapper::put(Managed *m, String *name, const Value &value) void Heap::QmlContext::init(QV4::ExecutionContext *outerContext, QV4::QmlContextWrapper *qml) { Heap::ExecutionContext::init(outerContext->engine(), Heap::ExecutionContext::Type_QmlContext); - outer = outerContext->d(); + outer.set(engine, outerContext->d()); strictMode = false; callData = outer->callData; lookups = outer->lookups; constantTable = outer->constantTable; compilationUnit = outer->compilationUnit; - this->qml = qml->d(); + this->qml.set(engine, qml->d()); } Heap::QmlContext *QmlContext::createWorkerContext(ExecutionContext *parent, const QUrl &source, Value *sendFunction) diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index deea893632..4f6c179026 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -1704,7 +1704,7 @@ ReturnedValue QObjectMethod::create(ExecutionContext *scope, const QQmlValueType Scoped method(valueScope, valueScope.engine->memoryManager->allocObject(scope)); method->d()->setPropertyCache(valueType->d()->propertyCache()); method->d()->index = index; - method->d()->valueTypeWrapper = valueType->d(); + method->d()->valueTypeWrapper.set(valueScope.engine, valueType->d()); return method.asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index ca893839ef..3ec24edb5d 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -74,7 +74,7 @@ void Heap::RegExpObject::init() Object::init(); Scope scope(internalClass->engine); Scoped o(scope, this); - o->d()->value = QV4::RegExp::create(scope.engine, QString(), false, false); + o->d()->value.set(scope.engine, QV4::RegExp::create(scope.engine, QString(), false, false)); o->d()->global = false; o->initProperties(); } @@ -82,9 +82,9 @@ void Heap::RegExpObject::init() void Heap::RegExpObject::init(QV4::RegExp *value, bool global) { Object::init(); - this->global = global; - this->value = value->d(); Scope scope(internalClass->engine); + this->global = global; + this->value.set(scope.engine, value->d()); Scoped o(scope, this); o->initProperties(); } @@ -137,7 +137,8 @@ void Heap::RegExpObject::init(const QRegExp &re) Scope scope(internalClass->engine); Scoped o(scope, this); - o->d()->value = QV4::RegExp::create(scope.engine, pattern, re.caseSensitivity() == Qt::CaseInsensitive, false); + o->d()->value.set(scope.engine, + QV4::RegExp::create(scope.engine, pattern, re.caseSensitivity() == Qt::CaseInsensitive, false)); o->initProperties(); } @@ -220,7 +221,7 @@ void Heap::RegExpCtor::init(QV4::ExecutionContext *scope) void Heap::RegExpCtor::clearLastMatch() { lastMatch = Primitive::nullValue(); - lastInput = internalClass->engine->id_empty()->d(); + lastInput.set(internalClass->engine, internalClass->engine->id_empty()->d()); lastMatchStart = 0; lastMatchEnd = 0; } @@ -377,7 +378,7 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat RegExpCtor::Data *dd = regExpCtor->d(); dd->lastMatch = array; - dd->lastInput = str->d(); + dd->lastInput.set(scope.engine, str->d()); dd->lastMatchStart = matchOffsets[0]; dd->lastMatchEnd = matchOffsets[1]; @@ -414,7 +415,7 @@ void RegExpPrototype::method_compile(const BuiltinFunction *, Scope &scope, Call scope.engine->regExpCtor()->as()->construct(scope, cData); Scoped re(scope, scope.result.asReturnedValue()); - r->d()->value = re->value(); + r->d()->value.set(scope.engine, re->value()); r->d()->global = re->global(); RETURN_UNDEFINED(); } diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index c6cc5a4639..628c220bae 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -77,14 +77,14 @@ void Heap::StringObject::init() { Object::init(); Q_ASSERT(vtable() == QV4::StringObject::staticVTable()); - string = internalClass->engine->id_empty()->d(); + string.set(internalClass->engine, internalClass->engine->id_empty()->d()); *propertyData(LengthPropertyIndex) = Primitive::fromInt32(0); } void Heap::StringObject::init(const QV4::String *str) { Object::init(); - string = str->d(); + string.set(internalClass->engine, str->d()); *propertyData(LengthPropertyIndex) = Primitive::fromInt32(length()); } diff --git a/src/qml/jsruntime/qv4typedarray.cpp b/src/qml/jsruntime/qv4typedarray.cpp index e936158ab1..a34a8922e1 100644 --- a/src/qml/jsruntime/qv4typedarray.cpp +++ b/src/qml/jsruntime/qv4typedarray.cpp @@ -229,8 +229,8 @@ void TypedArrayCtor::construct(const Managed *m, Scope &scope, CallData *callDat return; } - Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); - array->d()->buffer = buffer->d(); + Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); + array->d()->buffer.set(scope.engine, buffer->d()); array->d()->byteLength = byteLength; array->d()->byteOffset = 0; @@ -252,8 +252,8 @@ void TypedArrayCtor::construct(const Managed *m, Scope &scope, CallData *callDat return; } - Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); - array->d()->buffer = newBuffer->d(); + Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); + array->d()->buffer.set(scope.engine, newBuffer->d()); array->d()->byteLength = destByteLength; array->d()->byteOffset = 0; @@ -311,8 +311,8 @@ void TypedArrayCtor::construct(const Managed *m, Scope &scope, CallData *callDat byteLength = (uint)l; } - Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); - array->d()->buffer = buffer->d(); + Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); + array->d()->buffer.set(scope.engine, buffer->d()); array->d()->byteLength = byteLength; array->d()->byteOffset = byteOffset; scope.result = array.asReturnedValue(); @@ -335,8 +335,8 @@ void TypedArrayCtor::construct(const Managed *m, Scope &scope, CallData *callDat return; } - Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); - array->d()->buffer = newBuffer->d(); + Scoped array(scope, TypedArray::create(scope.engine, that->d()->type)); + array->d()->buffer.set(scope.engine, newBuffer->d()); array->d()->byteLength = l * elementSize; array->d()->byteOffset = 0; diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index b3dfa407f8..2cf3e721f9 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -167,15 +167,18 @@ V4_ASSERT_IS_TRIVIAL(Base) template struct Pointer { static Q_CONSTEXPR size_t offset = o; - static Q_CONSTEXPR quint64 markBits = Mark_Pointer << (o >> 2); T operator->() const { return ptr; } operator T () const { return ptr; } - Pointer &operator =(T t) { ptr = t; return *this; } + void set(ExecutionEngine *e, T newVal) { + Q_UNUSED(e); + ptr = newVal; + } template Type *cast() { return static_cast(ptr); } +private: T ptr; }; typedef Pointer V4PointerCheck; diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index edd26cf982..39272850b4 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -731,7 +731,7 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM else m = *blockAllocator.allocate(memberSize, true); memset(m, 0, memberSize); - o->memberData = static_cast(m); + o->memberData.set(engine, static_cast(m)); o->memberData->setVtable(MemberData::staticVTable()); o->memberData->values.alloc = static_cast((memberSize - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); o->memberData->values.size = o->memberData->values.alloc; diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 0bd9229792..6e9303acb6 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -245,7 +245,7 @@ public: o->setVtable(ObjectType::staticVTable()); Object *prototype = ObjectType::defaultPrototype(engine); o->internalClass = ic; - o->prototype = prototype->d(); + o->prototype.set(engine, prototype->d()); return static_cast(o); } @@ -272,7 +272,7 @@ public: { Scope scope(engine); Scoped t(scope, allocateObject(ic)); - t->d_unchecked()->prototype = prototype->d(); + t->d_unchecked()->prototype.set(engine, prototype->d()); t->d_unchecked()->init(); return t->d(); } @@ -282,7 +282,7 @@ public: { Scope scope(engine); Scoped t(scope, allocateObject(ic)); - t->d_unchecked()->prototype = prototype->d(); + t->d_unchecked()->prototype.set(engine, prototype->d()); t->d_unchecked()->init(arg1); return t->d(); } @@ -292,7 +292,7 @@ public: { Scope scope(engine); Scoped t(scope, allocateObject(ic)); - t->d_unchecked()->prototype = prototype->d(); + t->d_unchecked()->prototype.set(engine, prototype->d()); t->d_unchecked()->init(arg1, arg2); return t->d(); } @@ -302,7 +302,7 @@ public: { Scope scope(engine); Scoped t(scope, allocateObject(ic)); - t->d_unchecked()->prototype = prototype->d(); + t->d_unchecked()->prototype.set(engine, prototype->d()); t->d_unchecked()->init(arg1, arg2, arg3); return t->d(); } @@ -312,7 +312,7 @@ public: { Scope scope(engine); Scoped t(scope, allocateObject(ic)); - t->d_unchecked()->prototype = prototype->d(); + t->d_unchecked()->prototype.set(engine, prototype->d()); t->d_unchecked()->init(arg1, arg2, arg3, arg4); return t->d(); } diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index c1a0637d00..993ad10639 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1377,7 +1377,7 @@ void QQmlComponent::incubateObject(QQmlV4Function *args) if (!valuemap->isUndefined()) r->d()->valuemap = valuemap; - r->d()->qmlContext = v4->qmlContext(); + r->d()->qmlContext.set(scope.engine, v4->qmlContext()); r->d()->parent = parent; QQmlIncubator *incubator = r->d()->incubator; @@ -1476,7 +1476,7 @@ void QV4::Heap::QmlIncubatorObject::init(QQmlIncubator::IncubationMode m) valuemap = QV4::Primitive::undefinedValue(); statusChanged = QV4::Primitive::undefinedValue(); parent.init(); - qmlContext = nullptr; + qmlContext.set(internalClass->engine, nullptr); incubator = new QQmlComponentIncubator(this, m); } diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index 502a693d5c..b18904fc73 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1683,7 +1683,7 @@ void QQmlXMLHttpRequestCtor::setupProto() ExecutionEngine *v4 = engine(); Scope scope(v4); ScopedObject p(scope, v4->newObject()); - d()->proto = p->d(); + d()->proto.set(scope.engine, p->d()); // Methods p->defineDefaultProperty(QStringLiteral("open"), method_open); -- cgit v1.2.3 From 9242e5a685695356b2c9101a5e1642a726a6fede Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 31 Jan 2017 15:00:06 +0100 Subject: Add a set() method to HeapValue as well And use it instead of simply assigning to it, so we can add a write barrier later on. Change-Id: I31c0d0b20ed5d37fee046aa02af17875679b22bf Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4context.cpp | 4 ++-- src/qml/jsruntime/qv4functionobject.cpp | 2 +- src/qml/jsruntime/qv4regexpobject.cpp | 4 ++-- src/qml/jsruntime/qv4value_p.h | 5 ++++- src/qml/qml/qqmlcomponent.cpp | 8 ++++---- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 3918d25326..667b8dbb24 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -168,7 +168,7 @@ void Heap::CatchContext::init(ExecutionContext *outerContext, String *exceptionV compilationUnit = outer->compilationUnit; this->exceptionVarName.set(engine, exceptionVarName); - this->exceptionValue = exceptionValue; + this->exceptionValue.set(engine, exceptionValue); } @@ -302,7 +302,7 @@ void ExecutionContext::setProperty(String *name, const Value &value) case Heap::ExecutionContext::Type_CatchContext: { Heap::CatchContext *c = static_cast(ctx->d()); if (c->exceptionVarName->isEqualTo(name->d())) { - c->exceptionValue = value; + c->exceptionValue.set(scope.engine, value); return; } break; diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index a2433e7471..55b0175a47 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -540,7 +540,7 @@ void Heap::BoundFunction::init(QV4::ExecutionContext *scope, QV4::FunctionObject Heap::FunctionObject::init(scope, QStringLiteral("__bound function__")); this->target.set(s.engine, target->d()); this->boundArgs.set(s.engine, boundArgs ? boundArgs->d() : 0); - this->boundThis = boundThis; + this->boundThis.set(scope->engine(), boundThis); ScopedObject f(s, this); diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index 3ec24edb5d..7b15494ea9 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -220,7 +220,7 @@ void Heap::RegExpCtor::init(QV4::ExecutionContext *scope) void Heap::RegExpCtor::clearLastMatch() { - lastMatch = Primitive::nullValue(); + lastMatch.set(internalClass->engine, Primitive::nullValue()); lastInput.set(internalClass->engine, internalClass->engine->id_empty()->d()); lastMatchStart = 0; lastMatchEnd = 0; @@ -377,7 +377,7 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat *array->propertyData(Index_ArrayInput) = str; RegExpCtor::Data *dd = regExpCtor->d(); - dd->lastMatch = array; + dd->lastMatch.set(scope.engine, array); dd->lastInput.set(scope.engine, str->d()); dd->lastMatchStart = matchOffsets[0]; dd->lastMatchEnd = matchOffsets[1]; diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 3d7776b736..ce7dd8fb0d 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -710,7 +710,10 @@ inline unsigned int Value::toUInt32() const template struct HeapValue : Value { - HeapValue &operator = (const Value &other) { setRawValue(other.rawValue()); return *this; } + void set(ExecutionEngine *e, const Value &newVal) { + Q_UNUSED(e); + setRawValue(newVal.rawValue()); + } }; template diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index 993ad10639..75968ffc43 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1376,7 +1376,7 @@ void QQmlComponent::incubateObject(QQmlV4Function *args) r->setPrototype(p); if (!valuemap->isUndefined()) - r->d()->valuemap = valuemap; + r->d()->valuemap.set(scope.engine, valuemap); r->d()->qmlContext.set(scope.engine, v4->qmlContext()); r->d()->parent = parent; @@ -1461,7 +1461,7 @@ void QV4::QmlIncubatorObject::method_set_statusChanged(const BuiltinFunction *, if (!o || callData->argc < 1) THROW_TYPE_ERROR(); - o->d()->statusChanged = callData->args[0]; + o->d()->statusChanged.set(scope.engine, callData->args[0]); RETURN_UNDEFINED(); } @@ -1473,8 +1473,8 @@ QQmlComponentExtension::~QQmlComponentExtension() void QV4::Heap::QmlIncubatorObject::init(QQmlIncubator::IncubationMode m) { Object::init(); - valuemap = QV4::Primitive::undefinedValue(); - statusChanged = QV4::Primitive::undefinedValue(); + valuemap.set(internalClass->engine, QV4::Primitive::undefinedValue()); + statusChanged.set(internalClass->engine, QV4::Primitive::undefinedValue()); parent.init(); qmlContext.set(internalClass->engine, nullptr); incubator = new QQmlComponentIncubator(this, m); -- cgit v1.2.3 From 38c9bc6b9f5f019f55896369c3b46c77fc29fb41 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 17 Feb 2017 11:18:35 +0100 Subject: Change getValueOrSetter to be write barrier friendly Don't return a naked pointer into the heap, as this makes it impossible to track where and when we're writing into it. Change-Id: I2b9b81779ef8e9fb7a643ddda82aa6af8af459a7 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4arraydata_p.h | 37 ++++++++++++--- src/qml/jsruntime/qv4memberdata_p.h | 12 +++++ src/qml/jsruntime/qv4object.cpp | 94 ++++++++++++++++++++----------------- src/qml/jsruntime/qv4object_p.h | 4 +- src/qml/jsruntime/qv4value_p.h | 5 ++ 5 files changed, 100 insertions(+), 52 deletions(-) diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 1ede463d6d..71ed96a9a5 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -103,6 +103,18 @@ DECLARE_HEAP_OBJECT(ArrayData, Base) { enum Type { Simple = 0, Complex = 1, Sparse = 2, Custom = 3 }; + struct Index { + Heap::ArrayData *arrayData; + uint index; + + void set(ExecutionEngine *e, Value newVal) { + arrayData->values.set(e, index, newVal); + } + const Value *operator->() const { return &arrayData->values[index]; } + const Value &operator*() const { return arrayData->values[index]; } + bool isNull() const { return !arrayData; } + }; + bool isSparse() const { return type == Sparse; } const ArrayVTable *vtable() const { return reinterpret_cast(Base::vtable()); } @@ -113,7 +125,7 @@ DECLARE_HEAP_OBJECT(ArrayData, Base) { inline void getProperty(uint index, Property *p, PropertyAttributes *attrs); inline void setProperty(uint index, const Property *p); inline Property *getProperty(uint index); - inline Value *getValueOrSetter(uint index, PropertyAttributes *attrs); + inline Index getValueOrSetter(uint index, PropertyAttributes *attrs); inline PropertyAttributes attributes(uint i) const; bool isEmpty(uint i) const { @@ -124,6 +136,7 @@ DECLARE_HEAP_OBJECT(ArrayData, Base) { return vtable()->length(this); } + uint mappedIndex(uint index) const; }; V4_ASSERT_IS_TRIVIAL(ArrayData) @@ -185,6 +198,8 @@ struct Q_QML_EXPORT ArrayData : public Managed IsArrayData = true }; + typedef Heap::ArrayData::Index Index; + uint alloc() const { return d()->values.alloc; } uint &alloc() { return d()->values.alloc; } void setAlloc(uint a) { d()->values.alloc = a; } @@ -281,6 +296,16 @@ struct Q_QML_EXPORT SparseArrayData : public ArrayData namespace Heap { +inline uint ArrayData::mappedIndex(uint index) const +{ + if (isSparse()) + return static_cast(this)->mappedIndex(index); + if (index >= values.size) + return UINT_MAX; + uint idx = static_cast(this)->mappedIndex(index); + return values[idx].isEmpty() ? UINT_MAX : idx; +} + void ArrayData::getProperty(uint index, Property *p, PropertyAttributes *attrs) { Property *pd = getProperty(index); @@ -314,16 +339,16 @@ inline PropertyAttributes ArrayData::attributes(uint i) const return static_cast(this)->attributes(i); } -Value *ArrayData::getValueOrSetter(uint index, PropertyAttributes *attrs) +ArrayData::Index ArrayData::getValueOrSetter(uint index, PropertyAttributes *attrs) { - Property *p = getProperty(index); - if (!p) { + uint idx = mappedIndex(index); + if (idx == UINT_MAX) { *attrs = Attr_Invalid; - return 0; + return { 0, 0 }; } *attrs = attributes(index); - return attrs->isAccessor() ? &p->set : &p->value; + return { this, attrs->isAccessor() ? idx + 1 /* QV4::Object::SetterOffset*/ : idx }; } diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index e486895754..302553464e 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -73,6 +73,18 @@ struct MemberData : Managed { V4_MANAGED(MemberData, Managed) + struct Index { + Heap::MemberData *memberData; + uint index; + + void set(ExecutionEngine *e, Value newVal) { + memberData->values.set(e, index, newVal); + } + const Value *operator->() const { return &memberData->values[index]; } + const Value &operator*() const { return memberData->values[index]; } + bool isNull() const { return !memberData; } + }; + Value &operator[] (uint idx) { return d()->values[idx]; } const Value *data() const { return d()->values.v; } Value *data() { return d()->values.v; } diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index 006615e580..5522c78849 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -316,7 +316,7 @@ void Object::getOwnProperty(uint index, PropertyAttributes *attrs, Property *p) } // Section 8.12.2 -Value *Object::getValueOrSetter(String *name, PropertyAttributes *attrs) +MemberData::Index Object::getValueOrSetter(String *name, PropertyAttributes *attrs) { Q_ASSERT(name->asArrayIndex() == UINT_MAX); @@ -325,36 +325,38 @@ Value *Object::getValueOrSetter(String *name, PropertyAttributes *attrs) uint idx = o->internalClass->find(name); if (idx < UINT_MAX) { *attrs = o->internalClass->propertyData[idx]; - return o->propertyData(attrs->isAccessor() ? idx + SetterOffset : idx); + return MemberData::Index{ o->memberData, attrs->isAccessor() ? idx + SetterOffset : idx }; } o = o->prototype; } *attrs = Attr_Invalid; - return 0; + return { 0, 0 }; } -Value *Object::getValueOrSetter(uint index, PropertyAttributes *attrs) +ArrayData::Index Object::getValueOrSetter(uint index, PropertyAttributes *attrs) { Heap::Object *o = d(); while (o) { - Property *p = o->arrayData ? o->arrayData->getProperty(index) : 0; - if (p) { - *attrs = o->arrayData->attributes(index); - return attrs->isAccessor() ? &p->set : &p->value; + if (o->arrayData) { + uint idx = o->arrayData->mappedIndex(index); + if (idx != UINT_MAX) { + *attrs = o->arrayData->attributes(index); + return { o->arrayData , attrs->isAccessor() ? idx + SetterOffset : idx }; + } } if (o->vtable()->type == Type_StringObject) { if (index < static_cast(o)->length()) { // this is an evil hack, but it works, as the method is only ever called from putIndexed, // where we don't use the returned pointer there for non writable attributes *attrs = (Attr_NotWritable|Attr_NotConfigurable); - return reinterpret_cast(0x1); + return { reinterpret_cast(0x1), 0 }; } } o = o->prototype; } *attrs = Attr_Invalid; - return 0; + return { 0, 0 }; } bool Object::hasProperty(String *name) const @@ -703,43 +705,44 @@ ReturnedValue Object::internalGetIndexed(uint index, bool *hasProperty) const // Section 8.12.5 bool Object::internalPut(String *name, const Value &value) { - if (internalClass()->engine->hasException) + ExecutionEngine *engine = this->engine(); + if (engine->hasException) return false; uint idx = name->asArrayIndex(); if (idx != UINT_MAX) return putIndexed(idx, value); - name->makeIdentifier(engine()); + name->makeIdentifier(engine); + MemberData::Index memberIndex{0, 0}; uint member = internalClass()->find(name); - Value *v = 0; PropertyAttributes attrs; if (member < UINT_MAX) { attrs = internalClass()->propertyData[member]; - v = propertyData(attrs.isAccessor() ? member + SetterOffset : member); + memberIndex = { d()->memberData, (attrs.isAccessor() ? member + SetterOffset : member) }; } // clause 1 - if (v) { + if (!memberIndex.isNull()) { if (attrs.isAccessor()) { - if (v->as()) + if (memberIndex->as()) goto cont; goto reject; } else if (!attrs.isWritable()) goto reject; - else if (isArrayObject() && name->equals(engine()->id_length())) { + else if (isArrayObject() && name->equals(engine->id_length())) { bool ok; uint l = value.asArrayLength(&ok); if (!ok) { - engine()->throwRangeError(value); + engine->throwRangeError(value); return false; } ok = setArrayLength(l); if (!ok) goto reject; } else { - *v = value; + memberIndex.set(engine, value); } return true; } else if (!prototype()) { @@ -747,10 +750,11 @@ bool Object::internalPut(String *name, const Value &value) goto reject; } else { // clause 4 - Scope scope(engine()); - if ((v = ScopedObject(scope, prototype())->getValueOrSetter(name, &attrs))) { + Scope scope(engine); + memberIndex = ScopedObject(scope, prototype())->getValueOrSetter(name, &attrs); + if (!memberIndex.isNull()) { if (attrs.isAccessor()) { - if (!v->as()) + if (!memberIndex->as()) goto reject; } else if (!isExtensible() || !attrs.isWritable()) { goto reject; @@ -763,11 +767,11 @@ bool Object::internalPut(String *name, const Value &value) cont: // Clause 5 - if (v && attrs.isAccessor()) { - Q_ASSERT(v->as()); + if (!memberIndex.isNull() && attrs.isAccessor()) { + Q_ASSERT(memberIndex->as()); - Scope scope(engine()); - ScopedFunctionObject setter(scope, *v); + Scope scope(engine); + ScopedFunctionObject setter(scope, *memberIndex); ScopedCallData callData(scope, 1); callData->args[0] = value; callData->thisObject = this; @@ -780,49 +784,51 @@ bool Object::internalPut(String *name, const Value &value) reject: // ### this should be removed once everything is ported to use Object::set() - if (engine()->current->strictMode) { + if (engine->current->strictMode) { QString message = QLatin1String("Cannot assign to read-only property \"") + name->toQString() + QLatin1Char('\"'); - engine()->throwTypeError(message); + engine->throwTypeError(message); } return false; } bool Object::internalPutIndexed(uint index, const Value &value) { - if (internalClass()->engine->hasException) + ExecutionEngine *engine = this->engine(); + if (engine->hasException) return false; PropertyAttributes attrs; - Value *v = arrayData() ? arrayData()->getValueOrSetter(index, &attrs) : 0; + ArrayData::Index arrayIndex = arrayData() ? arrayData()->getValueOrSetter(index, &attrs) : ArrayData::Index{ 0, 0 }; - if (!v && isStringObject()) { + if (arrayIndex.isNull() && isStringObject()) { if (index < static_cast(this)->length()) // not writable goto reject; } // clause 1 - if (v) { + if (!arrayIndex.isNull()) { if (attrs.isAccessor()) { - if (v->as()) + if (arrayIndex->as()) goto cont; goto reject; } else if (!attrs.isWritable()) goto reject; - else - *v = value; + + arrayIndex.set(engine, value); return true; } else if (!prototype()) { if (!isExtensible()) goto reject; } else { // clause 4 - Scope scope(engine()); - if ((v = ScopedObject(scope, prototype())->getValueOrSetter(index, &attrs))) { + Scope scope(engine); + arrayIndex = ScopedObject(scope, prototype())->getValueOrSetter(index, &attrs); + if (!arrayIndex.isNull()) { if (attrs.isAccessor()) { - if (!v->as()) + if (!arrayIndex->as()) goto reject; } else if (!isExtensible() || !attrs.isWritable()) { goto reject; @@ -835,11 +841,11 @@ bool Object::internalPutIndexed(uint index, const Value &value) cont: // Clause 5 - if (v && attrs.isAccessor()) { - Q_ASSERT(v->as()); + if (!arrayIndex.isNull() && attrs.isAccessor()) { + Q_ASSERT(arrayIndex->as()); - Scope scope(engine()); - ScopedFunctionObject setter(scope, *v); + Scope scope(engine); + ScopedFunctionObject setter(scope, *arrayIndex); ScopedCallData callData(scope, 1); callData->args[0] = value; callData->thisObject = this; @@ -852,8 +858,8 @@ bool Object::internalPutIndexed(uint index, const Value &value) reject: // ### this should be removed once everything is ported to use Object::setIndexed() - if (engine()->current->strictMode) - engine()->throwTypeError(); + if (engine->current->strictMode) + engine->throwTypeError(); return false; } diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index df987c88f9..3db52bf3d3 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -210,8 +210,8 @@ struct Q_QML_EXPORT Object: Managed { void getOwnProperty(String *name, PropertyAttributes *attrs, Property *p = 0); void getOwnProperty(uint index, PropertyAttributes *attrs, Property *p = 0); - Value *getValueOrSetter(String *name, PropertyAttributes *attrs); - Value *getValueOrSetter(uint index, PropertyAttributes *attrs); + MemberData::Index getValueOrSetter(String *name, PropertyAttributes *attrs); + ArrayData::Index getValueOrSetter(uint index, PropertyAttributes *attrs); bool hasProperty(String *name) const; bool hasProperty(uint index) const; diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index ce7dd8fb0d..93b0dfb6d4 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -722,6 +722,11 @@ struct ValueArray { uint alloc; Value v[1]; + void set(ExecutionEngine *e, uint index, Value newVal) { + Q_UNUSED(e); + v[index] = newVal; + } + inline Value &operator[] (uint index) { Q_ASSERT(index < alloc); return v[index]; -- cgit v1.2.3 From ae92e34a0c3e8a2df88a854081678fa35c4f6b42 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 3 Feb 2017 14:55:22 +0100 Subject: Get rid of methods returning a pointer to a Property structure Those are unsafe to use when we introduce write barriers. Change-Id: I686b3544437fc344d14f3561173521600ecb77a0 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject.cpp | 19 +++++------ src/qml/jsruntime/qv4arraydata_p.h | 56 ++++++++++---------------------- src/qml/jsruntime/qv4object.cpp | 26 +++++++-------- 3 files changed, 37 insertions(+), 64 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index bc832c3349..4a83c4e8dc 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -108,22 +108,22 @@ bool ArgumentsObject::defineOwnProperty(ExecutionEngine *engine, uint index, con fullyCreate(); Scope scope(engine); - Property *pd = arrayData() ? arrayData()->getProperty(index) : 0; ScopedProperty map(scope); PropertyAttributes mapAttrs; + uint numAccessors = qMin(context()->formalParameterCount(), static_cast(context()->callData->argc)); bool isMapped = false; - uint numAccessors = qMin((int)context()->formalParameterCount(), context()->callData->argc); - if (pd && index < (uint)numAccessors) - isMapped = arrayData()->attributes(index).isAccessor() && - pd->getter() == context()->engine->argumentsAccessors[index].getter(); + if (arrayData() && index < numAccessors && + arrayData()->attributes(index).isAccessor() && + arrayData()->get(index) == context()->engine->argumentsAccessors[index].getter()->asReturnedValue()) + isMapped = true; if (isMapped) { Q_ASSERT(arrayData()); mapAttrs = arrayData()->attributes(index); - map->copy(pd, mapAttrs); + arrayData()->getProperty(index, map, &mapAttrs); setArrayAttributes(index, Attr_Data); - pd = arrayData()->getProperty(index); - pd->value = d()->mappedArguments->values[index]; + ArrayData::Index arrayIndex{ arrayData(), arrayData()->mappedIndex(index) }; + arrayIndex.set(scope.engine, d()->mappedArguments->values[index]); } bool strict = engine->current->strictMode; @@ -141,8 +141,7 @@ bool ArgumentsObject::defineOwnProperty(ExecutionEngine *engine, uint index, con if (attrs.isWritable()) { setArrayAttributes(index, mapAttrs); - pd = arrayData()->getProperty(index); - pd->copy(map, mapAttrs); + arrayData()->setProperty(engine, index, map); } } diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 71ed96a9a5..65cf69f6cd 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -122,9 +122,8 @@ DECLARE_HEAP_OBJECT(ArrayData, Base) { inline ReturnedValue get(uint i) const { return vtable()->get(this, i); } - inline void getProperty(uint index, Property *p, PropertyAttributes *attrs); - inline void setProperty(uint index, const Property *p); - inline Property *getProperty(uint index); + inline bool getProperty(uint index, Property *p, PropertyAttributes *attrs); + inline void setProperty(ExecutionEngine *e, uint index, const Property *p); inline Index getValueOrSetter(uint index, PropertyAttributes *attrs); inline PropertyAttributes attributes(uint i) const; @@ -145,15 +144,6 @@ struct SimpleArrayData : public ArrayData { Value data(uint index) const { return values[mappedIndex(index)]; } Value &data(uint index) { return values[mappedIndex(index)]; } - Property *getProperty(uint index) { - if (index >= values.size) - return 0; - index = mappedIndex(index); - if (values[index].isEmpty()) - return 0; - return reinterpret_cast(values.v + index); - } - PropertyAttributes attributes(uint i) const { return attrs ? attrs[i] : Attr_Data; } @@ -173,13 +163,6 @@ struct SparseArrayData : public ArrayData { return n->value; } - Property *getProperty(uint index) { - SparseArrayNode *n = sparse->findNode(index); - if (!n) - return 0; - return reinterpret_cast(values.v + n->value); - } - PropertyAttributes attributes(uint i) const { if (!attrs) return Attr_Data; @@ -231,9 +214,6 @@ struct Q_QML_EXPORT ArrayData : public Managed ReturnedValue get(uint i) const { return d()->get(i); } - inline Property *getProperty(uint index) { - return d()->getProperty(index); - } static void ensureAttributes(Object *o); static void realloc(Object *o, Type newType, uint alloc, bool enforceAttributes); @@ -306,30 +286,28 @@ inline uint ArrayData::mappedIndex(uint index) const return values[idx].isEmpty() ? UINT_MAX : idx; } -void ArrayData::getProperty(uint index, Property *p, PropertyAttributes *attrs) +bool ArrayData::getProperty(uint index, Property *p, PropertyAttributes *attrs) { - Property *pd = getProperty(index); - Q_ASSERT(pd); + uint mapped = mappedIndex(index); + if (mapped == UINT_MAX) { + *attrs = Attr_Invalid; + return false; + } + *attrs = attributes(index); - p->value = pd->value; + p->value = *(Index{ this, mapped }); if (attrs->isAccessor()) - p->set = pd->set; + p->set = *(Index{ this, mapped + 1 /*Object::SetterOffset*/ }); + return true; } -void ArrayData::setProperty(uint index, const Property *p) +void ArrayData::setProperty(QV4::ExecutionEngine *e, uint index, const Property *p) { - Property *pd = getProperty(index); - Q_ASSERT(pd); - pd->value = p->value; + uint mapped = mappedIndex(index); + Q_ASSERT(mapped != UINT_MAX); + values.set(e, mapped, p->value); if (attributes(index).isAccessor()) - pd->set = p->set; -} - -inline Property *ArrayData::getProperty(uint index) -{ - if (isSparse()) - return static_cast(this)->getProperty(index); - return static_cast(this)->getProperty(index); + values.set(e, mapped + 1 /*QV4::Object::SetterOffset*/, p->set); } inline PropertyAttributes ArrayData::attributes(uint i) const diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index 5522c78849..3fe1ac71b4 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -296,12 +296,9 @@ void Object::getOwnProperty(String *name, PropertyAttributes *attrs, Property *p void Object::getOwnProperty(uint index, PropertyAttributes *attrs, Property *p) { - Property *pd = arrayData() ? arrayData()->getProperty(index) : 0; - if (pd) { - *attrs = arrayData()->attributes(index); - if (p) - p->copy(pd, *attrs); - return; + if (arrayData()) { + if (arrayData()->getProperty(index, p, attrs)) + return; } if (isStringObject()) { *attrs = Attr_NotConfigurable|Attr_NotWritable; @@ -667,15 +664,14 @@ ReturnedValue Object::internalGet(String *name, bool *hasProperty) const ReturnedValue Object::internalGetIndexed(uint index, bool *hasProperty) const { - Property *pd = 0; PropertyAttributes attrs; Scope scope(engine()); ScopedObject o(scope, this); + ScopedProperty pd(scope); + bool exists = false; while (o) { - Property *p = o->arrayData() ? o->arrayData()->getProperty(index) : 0; - if (p) { - pd = p; - attrs = o->arrayData()->attributes(index); + if (o->arrayData() && o->arrayData()->getProperty(index, pd, &attrs)) { + exists = true; break; } if (o->isStringObject()) { @@ -690,7 +686,7 @@ ReturnedValue Object::internalGetIndexed(uint index, bool *hasProperty) const o = o->prototype(); } - if (pd) { + if (exists) { if (hasProperty) *hasProperty = true; return getValue(pd->value, attrs); @@ -989,8 +985,8 @@ bool Object::defineOwnProperty2(ExecutionEngine *engine, uint index, const Prope // Clause 1 if (arrayData()) { - hasProperty = arrayData()->getProperty(index); - if (!hasProperty && isStringObject()) + hasProperty = arrayData()->mappedIndex(index) != UINT_MAX; + if (!hasProperty && isStringObject()) hasProperty = (index < static_cast(this)->length()); } @@ -1102,7 +1098,7 @@ bool Object::__defineOwnProperty__(ExecutionEngine *engine, uint index, String * setProperty(index, current); } else { setArrayAttributes(index, cattrs); - arrayData()->setProperty(index, current); + arrayData()->setProperty(scope.engine, index, current); } return true; reject: -- cgit v1.2.3 From df3256b1f1eaa3ff9137ad1da36508365d978a8a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 3 Feb 2017 16:28:17 +0100 Subject: Go through proper set() functions when writing to MemberData This is required, so we only have to add the write barrier in one place. Change-Id: I4e8bde823b30ad18f043312ac3f1ed46597b91a7 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4argumentsobject.cpp | 14 ++++----- src/qml/jsruntime/qv4errorobject.cpp | 34 ++++++++++---------- src/qml/jsruntime/qv4functionobject.cpp | 13 ++++---- src/qml/jsruntime/qv4global_p.h | 1 + src/qml/jsruntime/qv4internalclass.cpp | 26 ++------------- src/qml/jsruntime/qv4lookup.cpp | 20 ++++++------ src/qml/jsruntime/qv4memberdata_p.h | 10 +++--- src/qml/jsruntime/qv4object.cpp | 16 +++++----- src/qml/jsruntime/qv4object_p.h | 12 ++++--- src/qml/jsruntime/qv4regexpobject.cpp | 28 +++++++---------- src/qml/jsruntime/qv4regexpobject_p.h | 10 +++++- src/qml/jsruntime/qv4runtime.cpp | 2 +- src/qml/jsruntime/qv4stringobject.cpp | 6 ++-- src/qml/jsruntime/qv4value_p.h | 38 ++++++++++++++++++++++ src/qml/jsruntime/qv4variantobject.cpp | 4 +-- src/qml/jsruntime/qv4variantobject_p.h | 4 +-- src/qml/memory/qv4mmdefs_p.h | 8 +++-- src/qml/qml/qqmlvmemetaobject.cpp | 54 +++++++++++++++++--------------- 18 files changed, 166 insertions(+), 134 deletions(-) diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 4a83c4e8dc..318db4f904 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -61,20 +61,20 @@ void Heap::ArgumentsObject::init(QV4::CallContext *context) if (context->d()->strictMode) { Q_ASSERT(CalleePropertyIndex == args->internalClass()->find(context->d()->engine->id_callee())); Q_ASSERT(CallerPropertyIndex == args->internalClass()->find(context->d()->engine->id_caller())); - *args->propertyData(CalleePropertyIndex + QV4::Object::GetterOffset) = v4->thrower(); - *args->propertyData(CalleePropertyIndex + QV4::Object::SetterOffset) = v4->thrower(); - *args->propertyData(CallerPropertyIndex + QV4::Object::GetterOffset) = v4->thrower(); - *args->propertyData(CallerPropertyIndex + QV4::Object::SetterOffset) = v4->thrower(); + args->setProperty(CalleePropertyIndex + QV4::Object::GetterOffset, *v4->thrower()); + args->setProperty(CalleePropertyIndex + QV4::Object::SetterOffset, *v4->thrower()); + args->setProperty(CallerPropertyIndex + QV4::Object::GetterOffset, *v4->thrower()); + args->setProperty(CallerPropertyIndex + QV4::Object::SetterOffset, *v4->thrower()); args->arrayReserve(context->argc()); args->arrayPut(0, context->args(), context->argc()); args->d()->fullyCreated = true; } else { Q_ASSERT(CalleePropertyIndex == args->internalClass()->find(context->d()->engine->id_callee())); - *args->propertyData(CalleePropertyIndex) = context->d()->function->asReturnedValue(); + args->setProperty(CalleePropertyIndex, context->d()->function); } Q_ASSERT(LengthPropertyIndex == args->internalClass()->find(context->d()->engine->id_length())); - *args->propertyData(LengthPropertyIndex) = Primitive::fromInt32(context->d()->callData->argc); + args->setProperty(LengthPropertyIndex, Primitive::fromInt32(context->d()->callData->argc)); } void ArgumentsObject::fullyCreate() @@ -92,7 +92,7 @@ void ArgumentsObject::fullyCreate() if (numAccessors) { d()->mappedArguments.set(scope.engine, md->allocate(engine(), numAccessors)); for (uint i = 0; i < numAccessors; ++i) { - d()->mappedArguments->values[i] = context()->callData->args[i]; + d()->mappedArguments->values.set(scope.engine, i, context()->callData->args[i]); arraySet(i, context()->engine->argumentsAccessors + i, Attr_Accessor); } } diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp index daa4f2d9a6..58742a0b84 100644 --- a/src/qml/jsruntime/qv4errorobject.cpp +++ b/src/qml/jsruntime/qv4errorobject.cpp @@ -78,10 +78,10 @@ void Heap::ErrorObject::init() if (internalClass == scope.engine->errorProtoClass) return; - *propertyData(QV4::ErrorObject::Index_Stack) = scope.engine->getStackFunction(); - *propertyData(QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset) = Encode::undefined(); - *propertyData(QV4::ErrorObject::Index_FileName) = Encode::undefined(); - *propertyData(QV4::ErrorObject::Index_LineNumber) = Encode::undefined(); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack, scope.engine->getStackFunction()->d()); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset, Primitive::undefinedValue()); + setProperty(scope.engine, QV4::ErrorObject::Index_FileName, Primitive::undefinedValue()); + setProperty(scope.engine, QV4::ErrorObject::Index_LineNumber, Primitive::undefinedValue()); } void Heap::ErrorObject::init(const Value &message, ErrorType t) @@ -92,17 +92,17 @@ void Heap::ErrorObject::init(const Value &message, ErrorType t) Scope scope(internalClass->engine); Scoped e(scope, this); - *propertyData(QV4::ErrorObject::Index_Stack) = scope.engine->getStackFunction(); - *propertyData(QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset) = Encode::undefined(); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack, scope.engine->getStackFunction()->d()); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset, Primitive::undefinedValue()); e->d()->stackTrace = new StackTrace(scope.engine->stackTrace()); if (!e->d()->stackTrace->isEmpty()) { - *propertyData(QV4::ErrorObject::Index_FileName) = scope.engine->newString(e->d()->stackTrace->at(0).source); - *propertyData(QV4::ErrorObject::Index_LineNumber) = Primitive::fromInt32(e->d()->stackTrace->at(0).line); + setProperty(scope.engine, QV4::ErrorObject::Index_FileName, scope.engine->newString(e->d()->stackTrace->at(0).source)); + setProperty(scope.engine, QV4::ErrorObject::Index_LineNumber, Primitive::fromInt32(e->d()->stackTrace->at(0).line)); } if (!message.isUndefined()) - *propertyData(QV4::ErrorObject::Index_Message) = message; + setProperty(scope.engine, QV4::ErrorObject::Index_Message, message); } void Heap::ErrorObject::init(const Value &message, const QString &fileName, int line, int column, ErrorObject::ErrorType t) @@ -113,8 +113,8 @@ void Heap::ErrorObject::init(const Value &message, const QString &fileName, int Scope scope(internalClass->engine); Scoped e(scope, this); - *propertyData(QV4::ErrorObject::Index_Stack) = scope.engine->getStackFunction(); - *propertyData(QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset) = Encode::undefined(); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack, scope.engine->getStackFunction()->d()); + setProperty(scope.engine, QV4::ErrorObject::Index_Stack + QV4::Object::SetterOffset, Primitive::undefinedValue()); e->d()->stackTrace = new StackTrace(scope.engine->stackTrace()); StackFrame frame; @@ -124,12 +124,12 @@ void Heap::ErrorObject::init(const Value &message, const QString &fileName, int e->d()->stackTrace->prepend(frame); if (!e->d()->stackTrace->isEmpty()) { - *propertyData(QV4::ErrorObject::Index_FileName) = scope.engine->newString(e->d()->stackTrace->at(0).source); - *propertyData(QV4::ErrorObject::Index_LineNumber) = Primitive::fromInt32(e->d()->stackTrace->at(0).line); + setProperty(scope.engine, QV4::ErrorObject::Index_FileName, scope.engine->newString(e->d()->stackTrace->at(0).source)); + setProperty(scope.engine, QV4::ErrorObject::Index_LineNumber, Primitive::fromInt32(e->d()->stackTrace->at(0).line)); } if (!message.isUndefined()) - *propertyData(QV4::ErrorObject::Index_Message) = message; + setProperty(scope.engine, QV4::ErrorObject::Index_Message, message); } const char *ErrorObject::className(Heap::ErrorObject::ErrorType t) @@ -319,9 +319,9 @@ void ErrorPrototype::init(ExecutionEngine *engine, Object *ctor, Object *obj, He ScopedObject o(scope); ctor->defineReadonlyProperty(engine->id_prototype(), (o = obj)); ctor->defineReadonlyProperty(engine->id_length(), Primitive::fromInt32(1)); - *obj->propertyData(Index_Constructor) = ctor; - *obj->propertyData(Index_Message) = engine->id_empty(); - *obj->propertyData(Index_Name) = engine->newString(QString::fromLatin1(ErrorObject::className(t))); + obj->setProperty(Index_Constructor, ctor->d()); + obj->setProperty(Index_Message, engine->id_empty()->d()); + obj->setProperty(Index_Name, engine->newString(QString::fromLatin1(ErrorObject::className(t)))); if (t == Heap::ErrorObject::Error) obj->defineDefaultProperty(engine->id_toString(), method_toString, 0); } diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 55b0175a47..5c8f03dc72 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -106,7 +106,7 @@ void Heap::FunctionObject::init() function = nullptr; this->scope.set(internalClass->engine, internalClass->engine->rootContext()->d()); Q_ASSERT(internalClass && internalClass->find(internalClass->engine->id_prototype()) == Index_Prototype); - *propertyData(Index_Prototype) = Encode::undefined(); + setProperty(internalClass->engine, Index_Prototype, Primitive::undefinedValue()); } @@ -126,10 +126,10 @@ void FunctionObject::init(String *n, bool createProto) if (createProto) { ScopedObject proto(s, scope()->engine->newObject(s.engine->protoClass, s.engine->objectPrototype())); Q_ASSERT(s.engine->protoClass->find(s.engine->id_constructor()) == Heap::FunctionObject::Index_ProtoConstructor); - *proto->propertyData(Heap::FunctionObject::Index_ProtoConstructor) = this->asReturnedValue(); - *propertyData(Heap::FunctionObject::Index_Prototype) = proto.asReturnedValue(); + proto->setProperty(Heap::FunctionObject::Index_ProtoConstructor, d()); + setProperty(Heap::FunctionObject::Index_Prototype, proto); } else { - *propertyData(Heap::FunctionObject::Index_Prototype) = Encode::undefined(); + setProperty(Heap::FunctionObject::Index_Prototype, Primitive::undefinedValue()); } if (n) @@ -346,7 +346,8 @@ void FunctionPrototype::method_bind(const BuiltinFunction *, Scope &scope, CallD if (callData->argc > 1) { boundArgs = MemberData::allocate(scope.engine, callData->argc - 1); boundArgs->d()->values.size = callData->argc - 1; - memcpy(boundArgs->data(), callData->args + 1, (callData->argc - 1)*sizeof(Value)); + for (uint i = 0; i < static_cast(callData->argc - 1); ++i) + boundArgs->set(scope.engine, i, callData->args[i + 1]); } ExecutionContext *global = scope.engine->rootContext(); @@ -426,7 +427,7 @@ void Heap::ScriptFunction::init(QV4::ExecutionContext *scope, Function *function ScopedString name(s, function->name()); f->init(name, true); Q_ASSERT(internalClass && internalClass->find(s.engine->id_length()) == Index_Length); - *propertyData(Index_Length) = Primitive::fromInt32(f->formalParameterCount()); + setProperty(s.engine, Index_Length, Primitive::fromInt32(f->formalParameterCount())); if (scope->d()->strictMode) { ScopedProperty pd(s); diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index cd8fb91f7a..68418ba770 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -201,6 +201,7 @@ struct Property; struct Value; template struct HeapValue; template struct ValueArray; +template struct HeapValueArray; struct Lookup; struct ArrayData; struct VTable; diff --git a/src/qml/jsruntime/qv4internalclass.cpp b/src/qml/jsruntime/qv4internalclass.cpp index bac71b4537..9b18a5566e 100644 --- a/src/qml/jsruntime/qv4internalclass.cpp +++ b/src/qml/jsruntime/qv4internalclass.cpp @@ -126,26 +126,6 @@ InternalClass::InternalClass(const QV4::InternalClass &other) Q_ASSERT(extensible); } -static void insertHoleIntoPropertyData(Object *object, int idx) -{ - int icSize = object->internalClass()->size; - int from = idx; - int to = from + 1; - if (from < icSize) - memmove(object->propertyData(to), object->propertyData(from), - (icSize - from - 1) * sizeof(Value)); -} - -static void removeFromPropertyData(Object *object, int idx, bool accessor = false) -{ - int delta = (accessor ? 2 : 1); - int oldSize = object->internalClass()->size + delta; - int to = idx; - int from = to + delta; - if (from < oldSize) - memmove(object->propertyData(to), object->d()->propertyData(from), (oldSize - to)*sizeof(Value)); -} - void InternalClass::changeMember(Object *object, String *string, PropertyAttributes data, uint *index) { uint idx; @@ -157,10 +137,10 @@ void InternalClass::changeMember(Object *object, String *string, PropertyAttribu object->setInternalClass(newClass); if (newClass->size > oldClass->size) { Q_ASSERT(newClass->size == oldClass->size + 1); - insertHoleIntoPropertyData(object, idx + 1); + object->d()->memberData->values.insertData(newClass->engine, idx + 1, Primitive::emptyValue()); } else if (newClass->size < oldClass->size) { Q_ASSERT(newClass->size == oldClass->size - 1); - removeFromPropertyData(object, idx + 1); + object->d()->memberData->values.removeData(newClass->engine, idx + 1); } } @@ -318,7 +298,7 @@ void InternalClass::removeMember(Object *object, Identifier *id) Q_ASSERT(object->internalClass()->size == oldClass->size - (accessor ? 2 : 1)); // remove the entry in the property data - removeFromPropertyData(object, propIdx, accessor); + object->d()->memberData->values.removeData(oldClass->engine, propIdx, accessor ? 2 : 1); t.lookup = object->internalClass(); Q_ASSERT(t.lookup); diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index bd677483b5..f322d5a001 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -59,7 +59,7 @@ ReturnedValue Lookup::lookup(const Value &thisObject, Object *o, PropertyAttribu if (index != UINT_MAX) { level = i; *attrs = obj->internalClass->propertyData.at(index); - Value *v = obj->propertyData(index); + const Value *v = obj->propertyData(index); return !attrs->isAccessor() ? v->asReturnedValue() : Object::getValue(thisObject, *v, *attrs); } @@ -72,7 +72,7 @@ ReturnedValue Lookup::lookup(const Value &thisObject, Object *o, PropertyAttribu index = obj->internalClass->find(name); if (index != UINT_MAX) { *attrs = obj->internalClass->propertyData.at(index); - Value *v = obj->propertyData(index); + const Value *v = obj->propertyData(index); return !attrs->isAccessor() ? v->asReturnedValue() : Object::getValue(thisObject, *v, *attrs); } @@ -94,7 +94,7 @@ ReturnedValue Lookup::lookup(const Object *thisObject, PropertyAttributes *attrs if (index != UINT_MAX) { level = i; *attrs = obj->internalClass->propertyData.at(index); - Value *v = obj->propertyData(index); + const Value *v = obj->propertyData(index); return !attrs->isAccessor() ? v->asReturnedValue() : thisObject->getValue(*v, *attrs); } @@ -107,7 +107,7 @@ ReturnedValue Lookup::lookup(const Object *thisObject, PropertyAttributes *attrs index = obj->internalClass->find(name); if (index != UINT_MAX) { *attrs = obj->internalClass->propertyData.at(index); - Value *v = obj->propertyData(index); + const Value *v = obj->propertyData(index); return !attrs->isAccessor() ? v->asReturnedValue() : thisObject->getValue(*v, *attrs); } @@ -772,7 +772,7 @@ void Lookup::setter0(Lookup *l, ExecutionEngine *engine, Value &object, const Va { Object *o = object.as(); if (o && o->internalClass() == l->classList[0]) { - *o->propertyData(l->index) = value; + o->setProperty(l->index, value); return; } @@ -785,7 +785,7 @@ void Lookup::setterInsert0(Lookup *l, ExecutionEngine *engine, Value &object, co if (o && o->internalClass() == l->classList[0]) { if (!o->prototype()) { o->setInternalClass(l->classList[3]); - *o->propertyData(l->index) = value; + o->setProperty(l->index, value); return; } } @@ -801,7 +801,7 @@ void Lookup::setterInsert1(Lookup *l, ExecutionEngine *engine, Value &object, co Heap::Object *p = o->prototype(); if (p && p->internalClass == l->classList[1]) { o->setInternalClass(l->classList[3]); - *o->propertyData(l->index) = value; + o->setProperty(l->index, value); return; } } @@ -819,7 +819,7 @@ void Lookup::setterInsert2(Lookup *l, ExecutionEngine *engine, Value &object, co p = p->prototype; if (p && p->internalClass == l->classList[2]) { o->setInternalClass(l->classList[3]); - *o->propertyData(l->index) = value; + o->setProperty(l->index, value); return; } } @@ -834,11 +834,11 @@ void Lookup::setter0setter0(Lookup *l, ExecutionEngine *engine, Value &object, c Object *o = object.as(); if (o) { if (o->internalClass() == l->classList[0]) { - *o->propertyData(l->index) = value; + o->setProperty(l->index, value); return; } if (o->internalClass() == l->classList[1]) { - *o->propertyData(l->index2) = value; + o->setProperty(l->index2, value); return; } } diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index 302553464e..dff7c09a4c 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -60,7 +60,7 @@ namespace QV4 { namespace Heap { #define MemberDataMembers(class, Member) \ - Member(class, ValueArray, ValueArray, values) + Member(class, ValueArray, HeapValueArray, values) DECLARE_HEAP_OBJECT(MemberData, Base) { DECLARE_MARK_TABLE(MemberData); @@ -85,9 +85,11 @@ struct MemberData : Managed bool isNull() const { return !memberData; } }; - Value &operator[] (uint idx) { return d()->values[idx]; } - const Value *data() const { return d()->values.v; } - Value *data() { return d()->values.v; } + const Value &operator[] (uint idx) const { return d()->values[idx]; } + const Value *data() const { return d()->values.data(); } + void set(ExecutionEngine *e, uint index, Value v) { d()->values.set(e, index, v); } + void set(ExecutionEngine *e, uint index, Heap::Base *b) { d()->values.set(e, index, b); } + inline uint size() const { return d()->values.size; } static Heap::MemberData *allocate(QV4::ExecutionEngine *e, uint n, Heap::MemberData *old = 0); diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index 3fe1ac71b4..ce8fdc6d6d 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -76,9 +76,9 @@ void Object::getProperty(uint index, Property *p, PropertyAttributes *attrs) con void Object::setProperty(uint index, const Property *p) { - *propertyData(index) = p->value; + setProperty(index, p->value); if (internalClass()->propertyData.at(index).isAccessor()) - *propertyData(index + SetterOffset) = p->set; + setProperty(index + SetterOffset, p->set); } bool Object::setPrototype(Object *proto) @@ -117,7 +117,7 @@ bool Object::putValue(uint memberIndex, const Value &value) PropertyAttributes attrs = ic->propertyData[memberIndex]; if (attrs.isAccessor()) { - FunctionObject *set = propertyData(memberIndex + SetterOffset)->as(); + const FunctionObject *set = propertyData(memberIndex + SetterOffset)->as(); if (set) { Scope scope(ic->engine); ScopedFunctionObject setter(scope, set); @@ -133,7 +133,7 @@ bool Object::putValue(uint memberIndex, const Value &value) if (!attrs.isWritable()) goto reject; - *propertyData(memberIndex) = value; + setProperty(memberIndex, value); return true; reject: @@ -264,10 +264,10 @@ void Object::insertMember(String *s, const Property *p, PropertyAttributes attri InternalClass::addMember(this, s, attributes, &idx); if (attributes.isAccessor()) { - *propertyData(idx + GetterOffset) = p->value; - *propertyData(idx + SetterOffset) = p->set; + setProperty(idx + GetterOffset, p->value); + setProperty(idx + SetterOffset, p->set); } else { - *propertyData(idx) = p->value; + setProperty(idx, p->value); } } @@ -526,7 +526,7 @@ void Object::setLookup(Managed *m, Lookup *l, const Value &value) l->classList[0] = o->internalClass(); l->index = idx; l->setter = Lookup::setter0; - *o->propertyData(idx) = value; + o->setProperty(idx, value); return; } diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 3db52bf3d3..c0169ed035 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -78,8 +78,9 @@ DECLARE_HEAP_OBJECT(Object, Base) { void init() { Base::init(); } void destroy() { Base::destroy(); } - const Value *propertyData(uint index) const { return memberData->values.v + index; } - Value *propertyData(uint index) { return memberData->values.v + index; } + const Value *propertyData(uint index) const { return memberData->values.data() + index; } + void setProperty(ExecutionEngine *e, uint index, Value v) const { memberData->values.set(e, index, v); } + void setProperty(ExecutionEngine *e, uint index, Heap::Base *b) const { memberData->values.set(e, index, b); } }; Q_STATIC_ASSERT(Object::markTable == ((2 << 4) | (2 << 6) | (2 << 8))); @@ -195,13 +196,14 @@ struct Q_QML_EXPORT Object: Managed { void setInternalClass(InternalClass *ic); const Value *propertyData(uint index) const { return d()->propertyData(index); } - Value *propertyData(uint index) { return d()->propertyData(index); } Heap::ArrayData *arrayData() const { return d()->arrayData; } void setArrayData(ArrayData *a) { d()->arrayData.set(engine(), a->d()); } void getProperty(uint index, Property *p, PropertyAttributes *attrs) const; void setProperty(uint index, const Property *p); + void setProperty(uint index, Value v) const { d()->setProperty(engine(), index, v); } + void setProperty(uint index, Heap::Base *b) const { d()->setProperty(engine(), index, b); } const ObjectVTable *vtable() const { return reinterpret_cast(d()->vtable()); } Heap::Object *prototype() const { return d()->prototype; } @@ -469,7 +471,7 @@ struct ArrayObject : Object { private: void commonInit() - { *propertyData(LengthPropertyIndex) = Primitive::fromInt32(0); } + { setProperty(internalClass->engine, LengthPropertyIndex, Primitive::fromInt32(0)); } }; } @@ -509,7 +511,7 @@ struct ArrayObject: Object { inline void Object::setArrayLengthUnchecked(uint l) { if (isArrayObject()) - *propertyData(Heap::ArrayObject::LengthPropertyIndex) = Primitive::fromUInt32(l); + setProperty(Heap::ArrayObject::LengthPropertyIndex, Primitive::fromUInt32(l)); } inline void Object::push_back(const Value &v) diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index 7b15494ea9..f8ad11fa98 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -145,7 +145,7 @@ void Heap::RegExpObject::init(const QRegExp &re) void RegExpObject::initProperties() { - *propertyData(Index_LastIndex) = Primitive::fromInt32(0); + setProperty(Index_LastIndex, Primitive::fromInt32(0)); Q_ASSERT(value()); @@ -157,16 +157,10 @@ void RegExpObject::initProperties() p.replace('/', QLatin1String("\\/")); } - *propertyData(Index_Source) = engine()->newString(p); - *propertyData(Index_Global) = Primitive::fromBoolean(global()); - *propertyData(Index_IgnoreCase) = Primitive::fromBoolean(value()->ignoreCase); - *propertyData(Index_Multiline) = Primitive::fromBoolean(value()->multiLine); -} - -Value *RegExpObject::lastIndexProperty() -{ - Q_ASSERT(0 == internalClass()->find(engine()->id_lastIndex())); - return propertyData(0); + setProperty(Index_Source, engine()->newString(p)); + setProperty(Index_Global, Primitive::fromBoolean(global())); + setProperty(Index_IgnoreCase, Primitive::fromBoolean(value()->ignoreCase)); + setProperty(Index_Multiline, Primitive::fromBoolean(value()->multiLine)); } // Converts a JS RegExp to a QRegExp. @@ -344,9 +338,9 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat RETURN_UNDEFINED(); QString s = str->toQString(); - int offset = r->global() ? r->lastIndexProperty()->toInt32() : 0; + int offset = r->global() ? r->lastIndex() : 0; if (offset < 0 || offset > s.length()) { - *r->lastIndexProperty() = Primitive::fromInt32(0); + r->setLastIndex(0); RETURN_RESULT(Encode::null()); } @@ -357,7 +351,7 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat regExpCtor->d()->clearLastMatch(); if (result == -1) { - *r->lastIndexProperty() = Primitive::fromInt32(0); + r->setLastIndex(0); RETURN_RESULT(Encode::null()); } @@ -373,8 +367,8 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat array->arrayPut(i, v); } array->setArrayLengthUnchecked(len); - *array->propertyData(Index_ArrayIndex) = Primitive::fromInt32(result); - *array->propertyData(Index_ArrayInput) = str; + array->setProperty(Index_ArrayIndex, Primitive::fromInt32(result)); + array->setProperty(Index_ArrayInput, str); RegExpCtor::Data *dd = regExpCtor->d(); dd->lastMatch.set(scope.engine, array); @@ -383,7 +377,7 @@ void RegExpPrototype::method_exec(const BuiltinFunction *, Scope &scope, CallDat dd->lastMatchEnd = matchOffsets[1]; if (r->global()) - *r->lastIndexProperty() = Primitive::fromInt32(matchOffsets[1]); + r->setLastIndex(matchOffsets[1]); scope.result = array; } diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index c2eeb32b88..0fcfe93135 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -128,7 +128,15 @@ struct RegExpObject: Object { void initProperties(); - Value *lastIndexProperty(); + int lastIndex() const { + Q_ASSERT(Index_LastIndex == internalClass()->find(engine()->id_lastIndex())); + return propertyData(Index_LastIndex)->toInt32(); + } + void setLastIndex(int index) { + Q_ASSERT(Index_LastIndex == internalClass()->find(engine()->id_lastIndex())); + return setProperty(Index_LastIndex, Primitive::fromInt32(index)); + } + QRegExp toQRegExp() const; QString toString() const; QString source() const; diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 4459af0e66..7708b81d8a 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -1311,7 +1311,7 @@ ReturnedValue Runtime::method_objectLiteral(ExecutionEngine *engine, const QV4:: } for (uint i = 0; i < klass->size; ++i) - *o->propertyData(i) = *args++; + o->setProperty(i, *args++); if (arrayValueCount > 0) { ScopedValue entry(scope); diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index 628c220bae..81f5c3566c 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -78,14 +78,14 @@ void Heap::StringObject::init() Object::init(); Q_ASSERT(vtable() == QV4::StringObject::staticVTable()); string.set(internalClass->engine, internalClass->engine->id_empty()->d()); - *propertyData(LengthPropertyIndex) = Primitive::fromInt32(0); + setProperty(internalClass->engine, LengthPropertyIndex, Primitive::fromInt32(0)); } void Heap::StringObject::init(const QV4::String *str) { Object::init(); string.set(internalClass->engine, str->d()); - *propertyData(LengthPropertyIndex) = Primitive::fromInt32(length()); + setProperty(internalClass->engine, LengthPropertyIndex, Primitive::fromInt32(length())); } Heap::String *Heap::StringObject::getIndex(uint index) const @@ -556,7 +556,7 @@ void StringPrototype::method_replace(const BuiltinFunction *, Scope &scope, Call offset = qMax(offset + 1, matchOffsets[oldSize + 1]); } if (regExp->global()) - *regExp->lastIndexProperty() = Primitive::fromUInt32(0); + regExp->setLastIndex(0); numStringMatches = nMatchOffsets / (regExp->value()->captureCount() * 2); numCaptures = regExp->value()->captureCount(); } else { diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 93b0dfb6d4..4c46eccbd3 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -716,6 +716,44 @@ struct HeapValue : Value { } }; +template +struct HeapValueArray { + uint size; + uint alloc; + Value values[1]; + + void set(ExecutionEngine *e, uint index, Value v) { + Q_UNUSED(e); + Q_ASSERT(index < alloc); + values[index] = v; + } + void set(ExecutionEngine *e, uint index, Heap::Base *b) { + Q_UNUSED(e); + Q_ASSERT(index < alloc); + values[index] = b; + } + inline const Value &operator[] (uint index) const { + Q_ASSERT(index < alloc); + return values[index]; + } + inline const Value *data() const { + return values; + } + + void insertData(ExecutionEngine *e, uint index, Value v) { + for (uint i = size - 1; i > index; --i) { + values[i] = values[i - 1]; + } + set(e, index, v); + } + void removeData(ExecutionEngine *e, uint index, int n = 1) { + Q_UNUSED(e); + for (uint i = index; i < size - n; ++i) { + values[i] = values[i + n]; + } + } +}; + template struct ValueArray { uint size; diff --git a/src/qml/jsruntime/qv4variantobject.cpp b/src/qml/jsruntime/qv4variantobject.cpp index 5cab4c5386..f2ff5d307e 100644 --- a/src/qml/jsruntime/qv4variantobject.cpp +++ b/src/qml/jsruntime/qv4variantobject.cpp @@ -84,7 +84,7 @@ bool VariantObject::isEqualTo(Managed *m, Managed *other) return false; } -void VariantObject::addVmePropertyReference() +void VariantObject::addVmePropertyReference() const { if (d()->isScarce() && ++d()->vmePropertyReferenceCount == 1) { // remove from the ep->scarceResources list @@ -94,7 +94,7 @@ void VariantObject::addVmePropertyReference() } } -void VariantObject::removeVmePropertyReference() +void VariantObject::removeVmePropertyReference() const { if (d()->isScarce() && --d()->vmePropertyReferenceCount == 0) { // and add to the ep->scarceResources list diff --git a/src/qml/jsruntime/qv4variantobject_p.h b/src/qml/jsruntime/qv4variantobject_p.h index ef51b6632d..e281602bb5 100644 --- a/src/qml/jsruntime/qv4variantobject_p.h +++ b/src/qml/jsruntime/qv4variantobject_p.h @@ -96,8 +96,8 @@ struct VariantObject : Object V4_PROTOTYPE(variantPrototype) V4_NEEDS_DESTROY - void addVmePropertyReference(); - void removeVmePropertyReference(); + void addVmePropertyReference() const; + void removeVmePropertyReference() const; static bool isEqualTo(Managed *m, Managed *other); }; diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 63e51f9742..9c84a49e90 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -278,6 +278,10 @@ struct MarkFlagEvaluator> { static Q_CONSTEXPR quint64 value = static_cast(Mark_ValueArray) << (2*o / sizeof(quintptr)); }; template +struct MarkFlagEvaluator> { + static Q_CONSTEXPR quint64 value = static_cast(Mark_ValueArray) << (o >> 2); +}; +template struct MarkFlagEvaluator> { static Q_CONSTEXPR quint64 value = static_cast(Mark_Value) << (2 *o / sizeof(quintptr)); }; @@ -288,7 +292,7 @@ struct MarkFlagEvaluator> { #define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer(c, type, name) Pointer name; #define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark(c, type, name) type name; #define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue(c, type, name) HeapValue<0> name; -#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray(c, type, name) ValueArray<0> name; +#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray(c, type, name) type<0> name; #define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name) \ HEAP_OBJECT_MEMBER_EXPANSION_##gcType(c, type, name) @@ -300,7 +304,7 @@ struct MarkFlagEvaluator> { #define HEAP_OBJECT_MEMBER_EXPANSION_HeapValue(c, type, name) \ HeapValue name; #define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name) \ - ValueArray name; + type name; #define HEAP_OBJECT_MARK_EXPANSION(class, gcType, type, name) \ MarkFlagEvaluator::value | diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 2c3476f63a..f464a099e0 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -104,8 +104,10 @@ void QQmlVMEVariantQObjectPtr::objectDestroyed(QObject *) if (v4) { QV4::Scope scope(v4); QV4::Scoped sp(scope, m_target->propertyAndMethodStorage.value()); - if (sp) - *(sp->data() + m_index) = QV4::Primitive::nullValue(); + if (sp) { + QV4::MemberData::Index index{ sp->d(), static_cast(m_index) }; + index.set(v4, QV4::Primitive::nullValue()); + } } m_target->activate(m_target->object, m_target->methodOffset() + m_index, 0); @@ -329,7 +331,7 @@ QQmlVMEMetaObject::QQmlVMEMetaObject(QObject *obj, if (size) { QV4::Heap::MemberData *data = QV4::MemberData::allocate(v4, size); propertyAndMethodStorage.set(v4, data); - std::fill(data->values.v, data->values.v + data->values.size, QV4::Encode::undefined()); + std::fill(data->values.values, data->values.values + data->values.size, QV4::Encode::undefined()); } // Need JS wrapper to ensure properties/methods are marked. @@ -364,77 +366,77 @@ void QQmlVMEMetaObject::writeProperty(int id, int v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = QV4::Primitive::fromInt32(v); + md->set(cache->engine, id, QV4::Primitive::fromInt32(v)); } void QQmlVMEMetaObject::writeProperty(int id, bool v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = QV4::Primitive::fromBoolean(v); + md->set(cache->engine, id, QV4::Primitive::fromBoolean(v)); } void QQmlVMEMetaObject::writeProperty(int id, double v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = QV4::Primitive::fromDouble(v); + md->set(cache->engine, id, QV4::Primitive::fromDouble(v)); } void QQmlVMEMetaObject::writeProperty(int id, const QString& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newString(v); + md->set(cache->engine, id, cache->engine->newString(v)); } void QQmlVMEMetaObject::writeProperty(int id, const QUrl& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, const QDate& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, const QDateTime& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, const QPointF& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, const QSizeF& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, const QRectF& v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = cache->engine->newVariantObject(QVariant::fromValue(v)); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant::fromValue(v))); } void QQmlVMEMetaObject::writeProperty(int id, QObject* v) { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) - *(md->data() + id) = QV4::QObjectWrapper::wrap(cache->engine, v); + md->set(cache->engine, id, QV4::Value::fromReturnedValue(QV4::QObjectWrapper::wrap(cache->engine, v))); QQmlVMEVariantQObjectPtr *guard = getQObjectGuardForProperty(id); if (v && !guard) { @@ -592,7 +594,7 @@ QList *QQmlVMEMetaObject::readPropertyAsList(int id) const if (!v || (int)v->d()->data().userType() != qMetaTypeId >()) { QVariant variant(qVariantFromValue(QList())); v = cache->engine->newVariantObject(variant); - *(md->data() + id) = v; + md->set(cache->engine, id, v); } return static_cast *>(v->d()->data().data()); } @@ -742,7 +744,7 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * Q_ASSERT(fallbackMetaType != QMetaType::UnknownType); if (QV4::MemberData *md = propertyAndMethodStorageAsMemberData()) { QVariant propertyAsVariant; - if (QV4::VariantObject *v = (md->data() + id)->as()) + if (const QV4::VariantObject *v = (md->data() + id)->as()) propertyAsVariant = v->d()->data(); QQml_valueTypeProvider()->readValueType(propertyAsVariant, a[0], fallbackMetaType); } @@ -815,9 +817,9 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * case QV4::CompiledData::Property::Quaternion: Q_ASSERT(fallbackMetaType != QMetaType::UnknownType); if (QV4::MemberData *md = propertyAndMethodStorageAsMemberData()) { - QV4::VariantObject *v = (md->data() + id)->as(); + const QV4::VariantObject *v = (md->data() + id)->as(); if (!v) { - *(md->data() + id) = cache->engine->newVariantObject(QVariant()); + md->set(cache->engine, id, cache->engine->newVariantObject(QVariant())); v = (md->data() + id)->as(); QQml_valueTypeProvider()->initValueType(fallbackMetaType, v->d()->data()); } @@ -1028,7 +1030,7 @@ void QQmlVMEMetaObject::writeVarProperty(int id, const QV4::Value &value) // Importantly, if the current value is a scarce resource, we need to ensure that it // gets automatically released by the engine if no other references to it exist. - QV4::VariantObject *oldVariant = (md->data() + id)->as(); + const QV4::VariantObject *oldVariant = (md->data() + id)->as(); if (oldVariant) oldVariant->removeVmePropertyReference(); @@ -1054,7 +1056,7 @@ void QQmlVMEMetaObject::writeVarProperty(int id, const QV4::Value &value) guard->setGuardedValue(valueObject, this, id); // Write the value and emit change signal as appropriate. - *(md->data() + id) = value; + md->set(cache->engine, id, value); activate(object, methodOffset() + id, 0); } @@ -1067,7 +1069,7 @@ void QQmlVMEMetaObject::writeProperty(int id, const QVariant &value) // Importantly, if the current value is a scarce resource, we need to ensure that it // gets automatically released by the engine if no other references to it exist. - QV4::VariantObject *oldv = (md->data() + id)->as(); + const QV4::VariantObject *oldv = (md->data() + id)->as(); if (oldv) oldv->removeVmePropertyReference(); @@ -1081,7 +1083,7 @@ void QQmlVMEMetaObject::writeProperty(int id, const QVariant &value) // Write the value and emit change signal as appropriate. QVariant currentValue = readPropertyAsVariant(id); - *(md->data() + id) = newv; + md->set(cache->engine, id, newv); if ((currentValue.userType() != value.userType() || currentValue != value)) activate(object, methodOffset() + id, 0); } else { @@ -1093,14 +1095,14 @@ void QQmlVMEMetaObject::writeProperty(int id, const QVariant &value) } else { QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (md) { - QV4::VariantObject *v = (md->data() + id)->as(); + const QV4::VariantObject *v = (md->data() + id)->as(); needActivate = (!v || v->d()->data().userType() != value.userType() || v->d()->data() != value); if (v) v->removeVmePropertyReference(); - *(md->data() + id) = cache->engine->newVariantObject(value); - v = static_cast(md->data() + id); + md->set(cache->engine, id, cache->engine->newVariantObject(value)); + v = static_cast(md->data() + id); v->addVmePropertyReference(); } } @@ -1139,7 +1141,7 @@ void QQmlVMEMetaObject::setVmeMethod(int index, const QV4::Value &function) QV4::MemberData *md = propertyAndMethodStorageAsMemberData(); if (!md) return; - *(md->data() + methodIndex + compiledObject->nProperties) = function; + md->set(cache->engine, methodIndex + compiledObject->nProperties, function); } QV4::ReturnedValue QQmlVMEMetaObject::vmeProperty(int index) const -- cgit v1.2.3 From d7aa952e143accc18d54707d956d019272197078 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 3 Feb 2017 20:58:22 +0100 Subject: Make writes to ArrayData write-barrier safe Change-Id: I2e46100fe72fd83b36b3195130eefce5289d1627 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4arraydata.cpp | 65 +++++++++++++++++++------------------ src/qml/jsruntime/qv4arraydata_p.h | 19 +++++++---- src/qml/jsruntime/qv4engine.cpp | 4 ++- src/qml/jsruntime/qv4lookup.cpp | 4 +-- src/qml/jsruntime/qv4memberdata.cpp | 1 + src/qml/jsruntime/qv4object.cpp | 7 ++-- src/qml/jsruntime/qv4runtime.cpp | 2 +- 7 files changed, 58 insertions(+), 44 deletions(-) diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index ef1a7bee3c..f8c2d3f82b 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -159,7 +159,7 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt } newData->setAlloc(alloc); newData->setType(newType); - newData->setAttrs(enforceAttributes ? reinterpret_cast(newData->d()->values.v + alloc) : 0); + newData->setAttrs(enforceAttributes ? reinterpret_cast(newData->d()->values.values + alloc) : 0); o->setArrayData(newData); if (d) { @@ -173,10 +173,12 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt if (toCopy > d->d()->values.alloc - offset) { uint copyFromStart = toCopy - (d->d()->values.alloc - offset); - memcpy(newData->d()->values.v + toCopy - copyFromStart, d->d()->values.v, sizeof(Value)*copyFromStart); + // no write barrier required here + memcpy(newData->d()->values.values + toCopy - copyFromStart, d->d()->values.values, sizeof(Value)*copyFromStart); toCopy -= copyFromStart; } - memcpy(newData->d()->values.v, d->d()->values.v + offset, sizeof(Value)*toCopy); + // no write barrier required here + memcpy(newData->d()->values.values, d->d()->values.values + offset, sizeof(Value)*toCopy); } if (newType != Heap::ArrayData::Sparse) @@ -201,8 +203,8 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt n->value = i; } else { storeValue(lastFree, i); - sparse->values[i].setEmpty(); - lastFree = &sparse->values[i].rawValueRef(); + sparse->values.values[i].setEmpty(); + lastFree = &sparse->values.values[i].rawValueRef(); } } } @@ -210,8 +212,8 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt if (toCopy < sparse->values.alloc) { for (uint i = toCopy; i < sparse->values.alloc; ++i) { storeValue(lastFree, i); - sparse->values[i].setEmpty(); - lastFree = &sparse->values[i].rawValueRef(); + sparse->values.values[i].setEmpty(); + lastFree = &sparse->values.values[i].rawValueRef(); } storeValue(lastFree, UINT_MAX); } @@ -247,7 +249,7 @@ bool SimpleArrayData::put(Object *o, uint index, const Value &value) Heap::SimpleArrayData *dd = o->d()->arrayData.cast(); Q_ASSERT(index >= dd->values.size || !dd->attrs || !dd->attrs[index].isAccessor()); // ### honour attributes - dd->data(index) = value; + dd->setData(o->engine(), index, value); if (index >= dd->values.size) { if (dd->attrs) dd->attrs[index] = Attr_Data; @@ -263,7 +265,7 @@ bool SimpleArrayData::del(Object *o, uint index) return true; if (!dd->attrs || dd->attrs[index].isConfigurable()) { - dd->data(index) = Primitive::emptyValue(); + dd->setData(o->engine(), index, Primitive::emptyValue()); if (dd->attrs) dd->attrs[index] = Attr_Data; return true; @@ -296,7 +298,7 @@ void SimpleArrayData::push_front(Object *o, const Value *values, uint n) } dd->values.size += n; for (uint i = 0; i < n; ++i) - dd->data(i) = values[i].asReturnedValue(); + dd->setData(o->engine(), i, values[i]); } ReturnedValue SimpleArrayData::pop_front(Object *o) @@ -343,10 +345,11 @@ bool SimpleArrayData::putArray(Object *o, uint index, const Value *values, uint reallocate(o, index + n + 1, false); dd = o->d()->arrayData.cast(); } + QV4::ExecutionEngine *e = o->engine(); for (uint i = dd->values.size; i < index; ++i) - dd->data(i) = Primitive::emptyValue(); + dd->setData(e, i, Primitive::emptyValue()); for (uint i = 0; i < n; ++i) - dd->data(index + i) = values[i]; + dd->setData(e, index + i, values[i]); dd->values.size = qMax(dd->values.size, index + n); return true; } @@ -354,7 +357,7 @@ bool SimpleArrayData::putArray(Object *o, uint index, const Value *values, uint void SparseArrayData::free(Heap::ArrayData *d, uint idx) { Q_ASSERT(d && d->type == Heap::ArrayData::Sparse); - Value *v = d->values.v + idx; + Value *v = d->values.values + idx; if (d->attrs && d->attrs[idx].isAccessor()) { // double slot, free both. Order is important, so we have a double slot for allocation again afterwards. v[1].setEmpty(Value::fromReturnedValue(d->freeList).emptyValue()); @@ -398,7 +401,7 @@ uint SparseArrayData::allocate(Object *o, bool doubleSlot) dd->attrs[idx] = Attr_Accessor; return idx; } - last = &dd->values[Value::fromReturnedValue(*last).value()].rawValueRef(); + last = &dd->values.values[Value::fromReturnedValue(*last).value()].rawValueRef(); } } else { if (Value::fromReturnedValue(dd->freeList).value() == UINT_MAX) { @@ -435,7 +438,7 @@ bool SparseArrayData::put(Object *o, uint index, const Value &value) if (n->value == UINT_MAX) n->value = allocate(o); s = o->d()->arrayData.cast(); - s->values[n->value] = value; + s->setArrayData(o->engine(), n->value, value); if (s->attrs) s->attrs[n->value] = Attr_Data; return true; @@ -463,11 +466,11 @@ bool SparseArrayData::del(Object *o, uint index) if (isAccessor) { // free up both indices - dd->values[pidx + 1].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); - dd->values[pidx].setEmpty(pidx + 1); + dd->values.values[pidx + 1].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); + dd->values.values[pidx].setEmpty(pidx + 1); } else { Q_ASSERT(dd->type == Heap::ArrayData::Sparse); - dd->values[pidx].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); + dd->values.values[pidx].setEmpty(Value::fromReturnedValue(dd->freeList).emptyValue()); } dd->freeList = Primitive::emptyValue(pidx).asReturnedValue(); @@ -499,7 +502,7 @@ void SparseArrayData::push_front(Object *o, const Value *values, uint n) for (int i = static_cast(n) - 1; i >= 0; --i) { uint idx = allocate(o); d = o->d()->arrayData.cast(); - d->values[idx] = values[i]; + d->setArrayData(o->engine(), idx, values[i]); d->sparse->push_front(idx); } } @@ -603,10 +606,10 @@ uint ArrayData::append(Object *obj, ArrayObject *otherObj, uint n) uint chunk = toCopy; if (chunk > os->values.alloc - os->offset) chunk -= os->values.alloc - os->offset; - obj->arrayPut(oldSize, os->values.v + os->offset, chunk); + obj->arrayPut(oldSize, os->values.data() + os->offset, chunk); toCopy -= chunk; if (toCopy) - obj->arrayPut(oldSize + chunk, os->values.v, toCopy); + obj->arrayPut(oldSize + chunk, os->values.data(), toCopy); } return oldSize + n; @@ -624,10 +627,10 @@ void ArrayData::insert(Object *o, uint index, const Value *v, bool isAccessor) if (index >= d->values.size) { // mark possible hole in the array for (uint i = d->values.size; i < index; ++i) - d->data(i) = Primitive::emptyValue(); + d->setData(o->engine(), i, Primitive::emptyValue()); d->values.size = index + 1; } - d->values[d->mappedIndex(index)] = *v; + d->setData(o->engine(), index, *v); return; } } @@ -638,9 +641,9 @@ void ArrayData::insert(Object *o, uint index, const Value *v, bool isAccessor) if (n->value == UINT_MAX) n->value = SparseArrayData::allocate(o, isAccessor); s = o->d()->arrayData.cast(); - s->values[n->value] = *v; + s->setArrayData(o->engine(), n->value, *v); if (isAccessor) - s->values[n->value + Object::SetterOffset] = v[Object::SetterOffset]; + s->setArrayData(o->engine(), n->value + Object::SetterOffset, v[Object::SetterOffset]); } @@ -777,7 +780,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c break; PropertyAttributes a = sparse->attrs() ? sparse->attrs()[n->value] : Attr_Data; - d->data(i) = thisObject->getValue(sparse->arrayData()[n->value], a); + d->setData(engine, i, Value::fromReturnedValue(thisObject->getValue(sparse->arrayData()[n->value], a))); d->attrs[i] = a.isAccessor() ? Attr_Data : a; n = n->nextNode(); @@ -787,7 +790,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c while (n != sparse->sparse()->end()) { if (n->value >= len) break; - d->data(i) = sparse->arrayData()[n->value]; + d->setData(engine, i, sparse->arrayData()[n->value]); n = n->nextNode(); ++i; } @@ -800,7 +803,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c thisObject->initSparseArray(); while (n != sparse->sparse()->end()) { PropertyAttributes a = sparse->attrs() ? sparse->attrs()[n->value] : Attr_Data; - thisObject->arraySet(n->value, reinterpret_cast(sparse->arrayData() + n->value), a); + thisObject->arraySet(n->value, reinterpret_cast(sparse->arrayData() + n->value), a); n = n->nextNode(); } @@ -818,8 +821,8 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c if (!d->data(len).isEmpty()) break; Q_ASSERT(!d->attrs || !d->attrs[len].isAccessor()); - d->data(i) = d->data(len); - d->data(len) = Primitive::emptyValue(); + d->setData(engine, i, d->data(len)); + d->setData(engine, len, Primitive::emptyValue()); } } @@ -830,7 +833,7 @@ void ArrayData::sort(ExecutionEngine *engine, Object *thisObject, const Value &c ArrayElementLessThan lessThan(engine, thisObject, comparefn); - Value *begin = thisObject->arrayData()->values.v; + Value *begin = thisObject->arrayData()->values.values; sortHelper(begin, begin + len, *begin, lessThan); #ifdef CHECK_SPARSE_ARRAYS diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index 65cf69f6cd..f7f007d128 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -96,7 +96,7 @@ namespace Heap { Member(class, NoMark, PropertyAttributes *, attrs) \ Member(class, NoMark, ReturnedValue, freeList) \ Member(class, NoMark, SparseArray *, sparse) \ - Member(class, ValueArray, ValueArray, values) + Member(class, ValueArray, HeapValueArray, values) DECLARE_HEAP_OBJECT(ArrayData, Base) { DECLARE_MARK_TABLE(ArrayData); @@ -135,14 +135,20 @@ DECLARE_HEAP_OBJECT(ArrayData, Base) { return vtable()->length(this); } + void setArrayData(ExecutionEngine *e, uint index, Value newVal) { + values.set(e, index, newVal); + } + uint mappedIndex(uint index) const; }; V4_ASSERT_IS_TRIVIAL(ArrayData) struct SimpleArrayData : public ArrayData { uint mappedIndex(uint index) const { return (index + offset) % values.alloc; } - Value data(uint index) const { return values[mappedIndex(index)]; } - Value &data(uint index) { return values[mappedIndex(index)]; } + const Value &data(uint index) const { return values[mappedIndex(index)]; } + void setData(ExecutionEngine *e, uint index, Value newVal) { + values.set(e, mappedIndex(index), newVal); + } PropertyAttributes attributes(uint i) const { return attrs ? attrs[i] : Attr_Data; @@ -190,8 +196,10 @@ struct Q_QML_EXPORT ArrayData : public Managed void setType(Type t) { d()->type = t; } PropertyAttributes *attrs() const { return d()->attrs; } void setAttrs(PropertyAttributes *a) { d()->attrs = a; } - const Value *arrayData() const { return d()->values.v; } - Value *arrayData() { return d()->values.v; } + const Value *arrayData() const { return d()->values.data(); } + void setArrayData(ExecutionEngine *e, uint index, Value newVal) { + d()->setArrayData(e, index, newVal); + } const ArrayVTable *vtable() const { return d()->vtable(); } bool isSparse() const { return type() == Heap::ArrayData::Sparse; } @@ -229,7 +237,6 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData uint mappedIndex(uint index) const { return d()->mappedIndex(index); } Value data(uint index) const { return d()->data(index); } - Value &data(uint index) { return d()->data(index); } uint &len() { return d()->values.size; } uint len() const { return d()->values.size; } diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index f38580e5f8..02cd19008a 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -604,7 +604,9 @@ Heap::ArrayObject *ExecutionEngine::newArrayObject(const Value *values, int leng d->offset = 0; d->values.alloc = length; d->values.size = length; - memcpy(&d->values.v, values, length*sizeof(Value)); + // this doesn't require a write barrier, things will be ok, when the new array data gets inserted into + // the parent object + memcpy(&d->values.values, values, length*sizeof(Value)); a->d()->arrayData.set(this, d); a->setArrayLengthUnchecked(length); } diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index f322d5a001..9fc11a2d2d 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -218,7 +218,7 @@ void Lookup::indexedSetterFallback(Lookup *, ExecutionEngine *engine, const Valu if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = o->d()->arrayData.cast(); if (idx < s->values.size) { - s->data(idx) = value; + s->setData(engine, idx, value); return; } } @@ -240,7 +240,7 @@ void Lookup::indexedSetterObjectInt(Lookup *l, ExecutionEngine *engine, const Va if (o->arrayData && o->arrayData->type == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = o->arrayData.cast(); if (idx < s->values.size) { - s->data(idx) = v; + s->setData(engine, idx, v); return; } } diff --git a/src/qml/jsruntime/qv4memberdata.cpp b/src/qml/jsruntime/qv4memberdata.cpp index ce1c8b614e..8f862d63e9 100644 --- a/src/qml/jsruntime/qv4memberdata.cpp +++ b/src/qml/jsruntime/qv4memberdata.cpp @@ -53,6 +53,7 @@ Heap::MemberData *MemberData::allocate(ExecutionEngine *e, uint n, Heap::MemberD size_t alloc = MemoryManager::align(sizeof(Heap::MemberData) + (n - 1)*sizeof(Value)); Heap::MemberData *m = e->memoryManager->allocManaged(alloc); if (old) + // no write barrier required here memcpy(m, old, sizeof(Heap::MemberData) + (old->values.size - 1) * sizeof(Value)); else m->init(); diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp index ce8fdc6d6d..d400c2ae64 100644 --- a/src/qml/jsruntime/qv4object.cpp +++ b/src/qml/jsruntime/qv4object.cpp @@ -581,7 +581,7 @@ void Object::advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint * int k = it->arrayNode->key(); uint pidx = it->arrayNode->value; Heap::SparseArrayData *sa = o->d()->arrayData.cast(); - Property *p = reinterpret_cast(sa->values.v + pidx); + const Property *p = reinterpret_cast(sa->values.data() + pidx); it->arrayNode = it->arrayNode->nextNode(); PropertyAttributes a = sa->attrs ? sa->attrs[pidx] : Attr_Data; if (!(it->flags & ObjectIterator::EnumerableOnly) || a.isEnumerable()) { @@ -598,7 +598,7 @@ void Object::advanceIterator(Managed *m, ObjectIterator *it, Value *name, uint * // dense arrays while (it->arrayIndex < o->d()->arrayData->values.size) { Heap::SimpleArrayData *sa = o->d()->arrayData.cast(); - Value &val = sa->data(it->arrayIndex); + const Value &val = sa->data(it->arrayIndex); PropertyAttributes a = o->arrayData()->attributes(it->arrayIndex); ++it->arrayIndex; if (!val.isEmpty() @@ -1146,7 +1146,8 @@ void Object::copyArrayData(Object *other) dd->values.size = other->d()->arrayData->values.size; dd->offset = other->d()->arrayData->offset; } - memcpy(d()->arrayData->values.v, other->d()->arrayData->values.v, other->d()->arrayData->values.alloc*sizeof(Value)); + // ### need a write barrier + memcpy(d()->arrayData->values.values, other->d()->arrayData->values.values, other->d()->arrayData->values.alloc*sizeof(Value)); } setArrayLengthUnchecked(other->getLength()); } diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 7708b81d8a..2e833eda7b 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -644,7 +644,7 @@ void Runtime::method_setElement(ExecutionEngine *engine, const Value &object, co if (o->arrayType() == Heap::ArrayData::Simple) { Heap::SimpleArrayData *s = static_cast(o->arrayData()); if (s && idx < s->values.size && !s->data(idx).isEmpty()) { - s->data(idx) = value; + s->setData(engine, idx, value); return; } } -- cgit v1.2.3 From 1a61d609345b0222c41f93f445a6fd517a76cf48 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 3 Feb 2017 21:05:43 +0100 Subject: move locals over to be write barrier safe Change-Id: I56b1dab62ff432273ee8549b0496bd0f3fc655ea Reviewed-by: Simon Hausmann --- src/qml/jit/qv4assembler.cpp | 2 +- src/qml/jsruntime/qv4arraydata_p.h | 2 +- src/qml/jsruntime/qv4context.cpp | 11 ++++++++--- src/qml/jsruntime/qv4global_p.h | 1 - src/qml/jsruntime/qv4memberdata_p.h | 2 +- src/qml/jsruntime/qv4value_p.h | 23 +---------------------- src/qml/jsruntime/qv4vme_moth.cpp | 2 +- src/qml/memory/qv4mm.cpp | 2 +- src/qml/memory/qv4mmdefs_p.h | 4 ---- 9 files changed, 14 insertions(+), 35 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 83baef8453..0b8be97ef5 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -286,7 +286,7 @@ typename Assembler::Pointer Assembler: } break; case IR::ArgLocal::Local: case IR::ArgLocal::ScopedLocal: { - offset = qOffsetOf(CallContext::Data, locals.v) + al->index * sizeof(Value); + offset = qOffsetOf(CallContext::Data, locals.values) + al->index * sizeof(Value); } break; default: Q_UNREACHABLE(); diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index f7f007d128..c2c81e886b 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -96,7 +96,7 @@ namespace Heap { Member(class, NoMark, PropertyAttributes *, attrs) \ Member(class, NoMark, ReturnedValue, freeList) \ Member(class, NoMark, SparseArray *, sparse) \ - Member(class, ValueArray, HeapValueArray, values) + Member(class, ValueArray, ValueArray, values) DECLARE_HEAP_OBJECT(ArrayData, Base) { DECLARE_MARK_TABLE(ArrayData); diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 667b8dbb24..be53b14786 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -82,10 +82,15 @@ Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData uint nLocals = compiledFunction->nLocals; c->locals.size = nLocals; c->locals.alloc = localsAndFormals; +#if QT_POINTER_SIZE == 8 + // memory allocated from the JS heap is 0 initialized, so skip the std::fill() below + Q_ASSERT(Primitive::undefinedValue().asReturnedValue() == 0); +#else if (nLocals) - std::fill(c->locals.v, c->locals.v + nLocals, Primitive::undefinedValue()); + std::fill(c->locals.values, c->locals.values + nLocals, Primitive::undefinedValue()); +#endif - c->callData = reinterpret_cast(c->locals.v + nLocals); + c->callData = reinterpret_cast(c->locals.values + nLocals); ::memcpy(c->callData, callData, sizeof(CallData) - sizeof(Value) + static_cast(callData->argc) * sizeof(Value)); if (callData->argc < static_cast(compiledFunction->nFormals)) std::fill(c->callData->args + c->callData->argc, c->callData->args + compiledFunction->nFormals, Primitive::undefinedValue()); @@ -330,7 +335,7 @@ void ExecutionContext::setProperty(String *name, const Value &value) } else { Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); index -= c->v4Function->nFormals; - static_cast(c)->locals[index] = value; + static_cast(c)->locals.set(scope.engine, index, value); } return; } diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 68418ba770..cd8fb91f7a 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -201,7 +201,6 @@ struct Property; struct Value; template struct HeapValue; template struct ValueArray; -template struct HeapValueArray; struct Lookup; struct ArrayData; struct VTable; diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index dff7c09a4c..fbe66757e0 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -60,7 +60,7 @@ namespace QV4 { namespace Heap { #define MemberDataMembers(class, Member) \ - Member(class, ValueArray, HeapValueArray, values) + Member(class, ValueArray, ValueArray, values) DECLARE_HEAP_OBJECT(MemberData, Base) { DECLARE_MARK_TABLE(MemberData); diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 4c46eccbd3..bb2132c85e 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -717,7 +717,7 @@ struct HeapValue : Value { }; template -struct HeapValueArray { +struct ValueArray { uint size; uint alloc; Value values[1]; @@ -754,27 +754,6 @@ struct HeapValueArray { } }; -template -struct ValueArray { - uint size; - uint alloc; - Value v[1]; - - void set(ExecutionEngine *e, uint index, Value newVal) { - Q_UNUSED(e); - v[index] = newVal; - } - - inline Value &operator[] (uint index) { - Q_ASSERT(index < alloc); - return v[index]; - } - inline const Value &operator[] (uint index) const { - Q_ASSERT(index < alloc); - return v[index]; - } -}; - } QT_END_NAMESPACE diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 73db76e105..80a40be5d2 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -417,7 +417,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code } else if (scope->type == QV4::Heap::ExecutionContext::Type_CallContext) { QV4::Heap::CallContext *cc = static_cast(scope); scopes[2*i + 2] = cc->callData->args; - scopes[2*i + 3] = cc->locals.v; + scopes[2*i + 3] = cc->locals.values; } else { scopes[2*i + 2] = 0; scopes[2*i + 3] = 0; diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 39272850b4..f42d509942 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -771,7 +771,7 @@ void MemoryManager::drainMarkStack(Value *markBase) Q_ASSERT(m == Mark_ValueArray); // qDebug() << "marking Value Array at offset" << hex << (mem - reinterpret_cast(h)); ValueArray<0> *a = reinterpret_cast *>(mem); - Value *v = a->v; + Value *v = a->values; const Value *end = v + a->alloc; while (v < end) { v->mark(engine); diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 9c84a49e90..3f65e97d86 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -278,10 +278,6 @@ struct MarkFlagEvaluator> { static Q_CONSTEXPR quint64 value = static_cast(Mark_ValueArray) << (2*o / sizeof(quintptr)); }; template -struct MarkFlagEvaluator> { - static Q_CONSTEXPR quint64 value = static_cast(Mark_ValueArray) << (o >> 2); -}; -template struct MarkFlagEvaluator> { static Q_CONSTEXPR quint64 value = static_cast(Mark_Value) << (2 *o / sizeof(quintptr)); }; -- cgit v1.2.3 From c13baa8873589c46d19f256ba551a95a6b56d94f Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 6 Feb 2017 10:56:53 +0100 Subject: Make moth write barrier friendly Variable stores to locals and arguments of CallContext's need to go through the write barrier. To make this possible, store the pointer to the base context alongside the pointer to those variables. Change-Id: I648338598f5d8689e4478fc2b0e7c82cddfb9cd8 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4vme_moth.cpp | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 80a40be5d2..e669c3a06e 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -249,10 +249,8 @@ int qt_v4DebuggerHook(const char *json) return -NoSuchCommand; // Failure. } -static void qt_v4CheckForBreak(QV4::ExecutionContext *context, QV4::Value **scopes, int scopeDepth) +static void qt_v4CheckForBreak(QV4::ExecutionContext *context) { - Q_UNUSED(scopes); - Q_UNUSED(scopeDepth); const int lineNumber = context->d()->lineNumber; QV4::Function *function = qt_v4ExtractFunction(context); QString engineName = function->sourceFile(); @@ -335,12 +333,13 @@ Param traceParam(const Param ¶m) return param; } # define VALUE(param) (*VALUEPTR(param)) -# define VALUEPTR(param) (scopes[traceParam(param).scope] + param.index) +# define VALUEPTR(param) (scopes[traceParam(param).scope].values + param.index) #else # define VALUE(param) (*VALUEPTR(param)) -# define VALUEPTR(param) (scopes[param.scope] + param.index) +# define VALUEPTR(param) (scopes[param.scope].values + param.index) #endif +// ### add write barrier here #define STOREVALUE(param, value) { \ QV4::ReturnedValue tmp = (value); \ if (engine->hasException) \ @@ -402,25 +401,29 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code } } - Q_ALLOCA_VAR(QV4::Value*, scopes, sizeof(QV4::Value *)*(2 + 2*scopeDepth)); + struct Scopes { + QV4::Value *values; + QV4::Heap::Base *base; // non 0 if a write barrier is required + }; + Q_ALLOCA_VAR(Scopes, scopes, sizeof(Scopes)*(2 + 2*scopeDepth)); { - scopes[0] = const_cast(context->d()->compilationUnit->constants); + scopes[0] = { const_cast(context->d()->compilationUnit->constants), 0 }; // stack gets setup in push instruction - scopes[1] = 0; + scopes[1] = { 0, 0 }; QV4::Heap::ExecutionContext *scope = context->d(); int i = 0; while (scope) { if (scope->type == QV4::Heap::ExecutionContext::Type_SimpleCallContext) { QV4::Heap::SimpleCallContext *cc = static_cast(scope); - scopes[2*i + 2] = cc->callData->args; - scopes[2*i + 3] = 0; + scopes[2*i + 2] = { cc->callData->args, 0 }; + scopes[2*i + 3] = { 0, 0 }; } else if (scope->type == QV4::Heap::ExecutionContext::Type_CallContext) { QV4::Heap::CallContext *cc = static_cast(scope); - scopes[2*i + 2] = cc->callData->args; - scopes[2*i + 3] = cc->locals.values; + scopes[2*i + 2] = { cc->callData->args, cc }; + scopes[2*i + 3] = { cc->locals.values, cc }; } else { - scopes[2*i + 2] = 0; - scopes[2*i + 3] = 0; + scopes[2*i + 2] = { 0, 0 }; + scopes[2*i + 3] = { 0, 0 }; } ++i; scope = scope->outer; @@ -561,7 +564,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code TRACE(inline, "stack size: %u", instr.value); stackSize = instr.value; stack = scope.alloc(stackSize); - scopes[1] = stack; + scopes[1].values = stack; MOTH_END_INSTR(Push) MOTH_BEGIN_INSTR(CallValue) @@ -919,13 +922,13 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code if (debugger && debugger->pauseAtNextOpportunity()) debugger->maybeBreakAtInstruction(); if (qt_v4IsDebugging) - qt_v4CheckForBreak(context, scopes, scopeDepth); + qt_v4CheckForBreak(context); MOTH_END_INSTR(Debug) MOTH_BEGIN_INSTR(Line) engine->current->lineNumber = instr.lineNumber; if (qt_v4IsDebugging) - qt_v4CheckForBreak(context, scopes, scopeDepth); + qt_v4CheckForBreak(context); MOTH_END_INSTR(Line) #endif // QT_NO_QML_DEBUGGER -- cgit v1.2.3 From b214d6cc2f96837d6502c9a3068bbd0d08b5b929 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 6 Feb 2017 10:57:04 +0100 Subject: Add an actual write barrier and centralize it in one place All stores into the Heap from C++ and Moth should now go through the write barrier. Change-Id: Iae9347754b90d68c10fade9f345842e86ec460cd Reviewed-by: Simon Hausmann --- .../qmldbg_debugger/qv4datacollector.cpp | 4 +- src/qml/jit/qv4assembler_p.h | 2 +- src/qml/jsruntime/qv4engine_p.h | 4 +- src/qml/jsruntime/qv4managed_p.h | 1 + src/qml/jsruntime/qv4value_p.h | 46 ------- src/qml/jsruntime/qv4vme_moth.cpp | 9 +- src/qml/memory/memory.pri | 3 +- src/qml/memory/qv4heap_p.h | 20 --- src/qml/memory/qv4writebarrier_p.h | 152 +++++++++++++++++++++ 9 files changed, 168 insertions(+), 73 deletions(-) create mode 100644 src/qml/memory/qv4writebarrier_p.h diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index 225a1fa27d..b76cd8e65a 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -366,8 +366,8 @@ QV4DataCollector::Ref QV4DataCollector::addRef(QV4::Value value, bool deduplicat { class ExceptionStateSaver { - quint32 *hasExceptionLoc; - quint32 hadException; + quint8 *hasExceptionLoc; + quint8 hadException; public: ExceptionStateSaver(QV4::ExecutionEngine *engine) diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 720c522e1d..36e812afb3 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1249,7 +1249,7 @@ public: const RegisterInformation &fpRegistersToSave); void checkException() { - load32(Address(EngineRegister, qOffsetOf(QV4::ExecutionEngine, hasException)), ScratchRegister); + this->load8(Address(EngineRegister, qOffsetOf(QV4::ExecutionEngine, hasException)), ScratchRegister); Jump exceptionThrown = branch32(RelationalCondition::NotEqual, ScratchRegister, TrustedImm32(0)); if (catchBlock) addPatch(catchBlock, exceptionThrown); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 69aa389c44..2ac3a77e29 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -100,7 +100,9 @@ public: Heap::ExecutionContext *current; Value *jsStackTop; - quint32 hasException; + quint8 hasException; + quint8 writeBarrierActive = false; + quint16 unused = 0; qint32 callDepth; MemoryManager *memoryManager; diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index d4cc31b96a..3dc54b13da 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -53,6 +53,7 @@ #include "qv4global_p.h" #include "qv4value_p.h" #include +#include QT_BEGIN_NAMESPACE diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index bb2132c85e..6d98692e94 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -708,52 +708,6 @@ inline unsigned int Value::toUInt32() const return (unsigned int)toInt32(); } -template -struct HeapValue : Value { - void set(ExecutionEngine *e, const Value &newVal) { - Q_UNUSED(e); - setRawValue(newVal.rawValue()); - } -}; - -template -struct ValueArray { - uint size; - uint alloc; - Value values[1]; - - void set(ExecutionEngine *e, uint index, Value v) { - Q_UNUSED(e); - Q_ASSERT(index < alloc); - values[index] = v; - } - void set(ExecutionEngine *e, uint index, Heap::Base *b) { - Q_UNUSED(e); - Q_ASSERT(index < alloc); - values[index] = b; - } - inline const Value &operator[] (uint index) const { - Q_ASSERT(index < alloc); - return values[index]; - } - inline const Value *data() const { - return values; - } - - void insertData(ExecutionEngine *e, uint index, Value v) { - for (uint i = size - 1; i > index; --i) { - values[i] = values[i - 1]; - } - set(e, index, v); - } - void removeData(ExecutionEngine *e, uint index, int n = 1) { - Q_UNUSED(e); - for (uint i = index; i < size - n; ++i) { - values[i] = values[i + n]; - } - } -}; - } QT_END_NAMESPACE diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index e669c3a06e..09f767dc13 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -344,8 +344,13 @@ Param traceParam(const Param ¶m) QV4::ReturnedValue tmp = (value); \ if (engine->hasException) \ goto catchException; \ - VALUE(param) = tmp; \ - } + if (Q_LIKELY(!engine->writeBarrierActive || !scopes[param.scope].base)) { \ + VALUE(param) = tmp; \ + } else { \ + QV4::WriteBarrier::write(engine, scopes[param.scope].base, VALUEPTR(param), QV4::Value::fromReturnedValue(tmp)); \ + } \ +} + // qv4scopedvalue_p.h also defines a CHECK_EXCEPTION macro #ifdef CHECK_EXCEPTION #undef CHECK_EXCEPTION diff --git a/src/qml/memory/memory.pri b/src/qml/memory/memory.pri index 38fadbf23f..7956e4a9a1 100644 --- a/src/qml/memory/memory.pri +++ b/src/qml/memory/memory.pri @@ -7,7 +7,8 @@ SOURCES += \ HEADERS += \ $$PWD/qv4mm_p.h \ - $$PWD/qv4mmdefs_p.h + $$PWD/qv4mmdefs_p.h \ + $$PWD/qv4writebarrier_p.h } HEADERS += \ diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index 2cf3e721f9..bcd1af7705 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -164,26 +164,6 @@ struct Q_QML_EXPORT Base { }; V4_ASSERT_IS_TRIVIAL(Base) -template -struct Pointer { - static Q_CONSTEXPR size_t offset = o; - T operator->() const { return ptr; } - operator T () const { return ptr; } - - void set(ExecutionEngine *e, T newVal) { - Q_UNUSED(e); - ptr = newVal; - } - - template - Type *cast() { return static_cast(ptr); } - -private: - T ptr; -}; -typedef Pointer V4PointerCheck; -V4_ASSERT_IS_TRIVIAL(V4PointerCheck) - } #ifdef QT_NO_QOBJECT diff --git a/src/qml/memory/qv4writebarrier_p.h b/src/qml/memory/qv4writebarrier_p.h new file mode 100644 index 0000000000..1b4505c17f --- /dev/null +++ b/src/qml/memory/qv4writebarrier_p.h @@ -0,0 +1,152 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QV4WRITEBARRIER_P_H +#define QV4WRITEBARRIER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +namespace QV4 { + +namespace WriteBarrier { + +inline void write(QV4::ExecutionEngine *engine, QV4::Heap::Base *base, QV4::Value *slot, QV4::Value value) +{ + Q_UNUSED(engine); + Q_UNUSED(base); + *slot = value; +} + +inline void write(QV4::ExecutionEngine *engine, QV4::Heap::Base *base, QV4::Heap::Base **slot, QV4::Heap::Base *value) +{ + Q_UNUSED(engine); + Q_UNUSED(base); + *slot = value; +} + +} + +namespace Heap { + +template +struct Pointer { + static Q_CONSTEXPR size_t offset = o; + T operator->() const { return ptr; } + operator T () const { return ptr; } + + void set(ExecutionEngine *e, T newVal) { + Q_UNUSED(e); + ptr = newVal; + } + + template + Type *cast() { return static_cast(ptr); } + +private: + T ptr; +}; +typedef Pointer V4PointerCheck; +V4_ASSERT_IS_TRIVIAL(V4PointerCheck) + +} + +template +struct HeapValue : Value { + void set(ExecutionEngine *e, const Value &newVal) { + Q_UNUSED(e); + setRawValue(newVal.rawValue()); + } +}; + +template +struct ValueArray { + uint size; + uint alloc; + Value values[1]; + + void set(ExecutionEngine *e, uint index, Value v) { + Q_UNUSED(e); + Q_ASSERT(index < alloc); + values[index] = v; + } + void set(ExecutionEngine *e, uint index, Heap::Base *b) { + Q_UNUSED(e); + Q_ASSERT(index < alloc); + values[index] = b; + } + inline const Value &operator[] (uint index) const { + Q_ASSERT(index < alloc); + return values[index]; + } + inline const Value *data() const { + return values; + } + + void insertData(ExecutionEngine *e, uint index, Value v) { + for (uint i = size - 1; i > index; --i) { + values[i] = values[i - 1]; + } + set(e, index, v); + } + void removeData(ExecutionEngine *e, uint index, int n = 1) { + Q_UNUSED(e); + for (uint i = index; i < size - n; ++i) { + values[i] = values[i + n]; + } + } +}; + +} + +QT_END_NAMESPACE + +#endif -- cgit v1.2.3 From 38221427bc21a11b96de7fa7666264c34298c0c0 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 6 Feb 2017 15:51:01 +0100 Subject: Get rid of QV4::Function::needsActivation() We can just as well simply check whether we have a simple or regular CallContext instead. Change-Id: Iddd4ca249ab6b3b13d7ef0a732c22a26bcb23dbb Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4context.cpp | 87 ++++++++++++++------------------- src/qml/jsruntime/qv4function.cpp | 13 ++--- src/qml/jsruntime/qv4function_p.h | 4 -- src/qml/jsruntime/qv4functionobject_p.h | 2 - 4 files changed, 44 insertions(+), 62 deletions(-) diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index be53b14786..a9b0d67630 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -202,7 +202,6 @@ unsigned int SimpleCallContext::variableCount() const bool ExecutionContext::deleteProperty(String *name) { Scope scope(this); - bool hasWith = false; ScopedContext ctx(scope, this); for (; ctx; ctx = ctx->d()->outer) { switch (ctx->d()->type) { @@ -213,7 +212,6 @@ bool ExecutionContext::deleteProperty(String *name) break; } case Heap::ExecutionContext::Type_WithContext: { - hasWith = true; ScopedObject withObject(scope, static_cast(ctx->d())->withObject); if (withObject->hasProperty(name)) return withObject->deleteProperty(name); @@ -225,15 +223,16 @@ bool ExecutionContext::deleteProperty(String *name) return global->deleteProperty(name); break; } - case Heap::ExecutionContext::Type_CallContext: + case Heap::ExecutionContext::Type_CallContext: { + Heap::CallContext *c = static_cast(ctx->d()); + uint index = c->v4Function->internalClass->find(name); + if (index < UINT_MAX) + // ### throw in strict mode? + return false; + Q_FALLTHROUGH(); + } case Heap::ExecutionContext::Type_SimpleCallContext: { Heap::SimpleCallContext *c = static_cast(ctx->d()); - if (c->v4Function && (c->v4Function->needsActivation() || hasWith)) { - uint index = c->v4Function->internalClass->find(name); - if (index < UINT_MAX) - // ### throw in strict mode? - return false; - } ScopedObject qml(scope, c->activation); if (qml && qml->hasProperty(name)) return qml->deleteProperty(name); @@ -376,13 +375,10 @@ ReturnedValue ExecutionContext::getProperty(String *name) if (name->equals(d()->engine->id_this())) return thisObject().asReturnedValue(); - bool hasWith = false; - bool hasCatchScope = false; ScopedContext ctx(scope, this); for (; ctx; ctx = ctx->d()->outer) { switch (ctx->d()->type) { case Heap::ExecutionContext::Type_CatchContext: { - hasCatchScope = true; Heap::CatchContext *c = static_cast(ctx->d()); if (c->exceptionVarName->isEqualTo(name->d())) return c->exceptionValue.asReturnedValue(); @@ -390,7 +386,6 @@ ReturnedValue ExecutionContext::getProperty(String *name) } case Heap::ExecutionContext::Type_WithContext: { ScopedObject w(scope, static_cast(ctx->d())->withObject); - hasWith = true; bool hasProperty = false; v = w->get(name, &hasProperty); if (hasProperty) { @@ -406,18 +401,23 @@ ReturnedValue ExecutionContext::getProperty(String *name) return v->asReturnedValue(); break; } - case Heap::ExecutionContext::Type_CallContext: + case Heap::ExecutionContext::Type_CallContext: { + Heap::CallContext *c = static_cast(ctx->d()); + uint index = c->v4Function->internalClass->find(name); + if (index < UINT_MAX) { + if (index < c->v4Function->nFormals) + return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); + Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); + return c->locals[index - c->v4Function->nFormals].asReturnedValue(); + } + if (c->v4Function->isNamedExpression()) { + if (c->function && name->equals(ScopedString(scope, c->v4Function->name()))) + return c->function->asReturnedValue(); + } + Q_FALLTHROUGH(); + } case Heap::ExecutionContext::Type_SimpleCallContext: { Heap::SimpleCallContext *c = static_cast(ctx->d()); - if (c->v4Function && (c->v4Function->needsActivation() || hasWith || hasCatchScope)) { - uint index = c->v4Function->internalClass->find(name); - if (index < UINT_MAX) { - if (index < c->v4Function->nFormals) - return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); - Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); - return static_cast(c)->locals[index - c->v4Function->nFormals].asReturnedValue(); - } - } ScopedObject activation(scope, c->activation); if (activation) { bool hasProperty = false; @@ -425,12 +425,6 @@ ReturnedValue ExecutionContext::getProperty(String *name) if (hasProperty) return v->asReturnedValue(); } - if (c->v4Function->isNamedExpression()) { - Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); - Heap::CallContext *ctx = static_cast(c); - if (ctx->function && name->equals(ScopedString(scope, c->v4Function->name()))) - return ctx->function->asReturnedValue(); - } break; } case Heap::ExecutionContext::Type_QmlContext: { @@ -457,13 +451,10 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) if (name->equals(d()->engine->id_this())) return thisObject().asReturnedValue(); - bool hasWith = false; - bool hasCatchScope = false; ScopedContext ctx(scope, this); for (; ctx; ctx = ctx->d()->outer) { switch (ctx->d()->type) { case Heap::ExecutionContext::Type_CatchContext: { - hasCatchScope = true; Heap::CatchContext *c = static_cast(ctx->d()); if (c->exceptionVarName->isEqualTo(name->d())) return c->exceptionValue.asReturnedValue(); @@ -471,7 +462,6 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) } case Heap::ExecutionContext::Type_WithContext: { ScopedObject w(scope, static_cast(ctx->d())->withObject); - hasWith = true; bool hasProperty = false; v = w->get(name, &hasProperty); if (hasProperty) { @@ -488,19 +478,22 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) return v->asReturnedValue(); break; } - case Heap::ExecutionContext::Type_CallContext: + case Heap::ExecutionContext::Type_CallContext: { + Heap::CallContext *c = static_cast(ctx->d()); + uint index = c->v4Function->internalClass->find(name); + if (index < UINT_MAX) { + if (index < c->v4Function->nFormals) + return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); + return c->locals[index - c->v4Function->nFormals].asReturnedValue(); + } + if (c->v4Function->isNamedExpression()) { + if (c->function && name->equals(ScopedString(scope, c->v4Function->name()))) + return c->function->asReturnedValue(); + } + Q_FALLTHROUGH(); + } case Heap::ExecutionContext::Type_SimpleCallContext: { Heap::SimpleCallContext *c = static_cast(ctx->d()); - if (c->v4Function && (c->v4Function->needsActivation() || hasWith || hasCatchScope)) { - Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); - Heap::CallContext *ctx = static_cast(c); - uint index = c->v4Function->internalClass->find(name); - if (index < UINT_MAX) { - if (index < c->v4Function->nFormals) - return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); - return ctx->locals[index - c->v4Function->nFormals].asReturnedValue(); - } - } ScopedObject activation(scope, c->activation); if (activation) { bool hasProperty = false; @@ -508,12 +501,6 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Value *base) if (hasProperty) return v->asReturnedValue(); } - if (c->v4Function->isNamedExpression()) { - Q_ASSERT(c->type == Heap::CallContext::Type_CallContext); - Heap::CallContext *ctx = static_cast(c); - if (ctx->function && name->equals(ScopedString(scope, c->v4Function->name()))) - return ctx->function->asReturnedValue(); - } break; } case Heap::ExecutionContext::Type_QmlContext: { diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp index dd3208c7e9..b3feae4293 100644 --- a/src/qml/jsruntime/qv4function.cpp +++ b/src/qml/jsruntime/qv4function.cpp @@ -83,11 +83,12 @@ Function::Function(ExecutionEngine *engine, CompiledData::CompilationUnit *unit, for (quint32 i = 0; i < compiledFunction->nLocals; ++i) internalClass = internalClass->addMember(compilationUnit->runtimeStrings[localsIndices[i]]->identifier, Attr_NotConfigurable); - activationRequired = compiledFunction->nInnerFunctions > 0 || (compiledFunction->flags & (CompiledData::Function::HasDirectEval | CompiledData::Function::UsesArgumentsObject)); - - canUseSimpleCall = !needsActivation() && !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) && - compiledFunction->nFormals <= QV4::Global::ReservedArgumentCount && - compiledFunction->nLocals == 0 && !isNamedExpression(); + canUseSimpleCall = compiledFunction->nInnerFunctions == 0 && + !(compiledFunction->flags & CompiledData::Function::HasDirectEval) && + !(compiledFunction->flags & CompiledData::Function::UsesArgumentsObject) && + !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) && + nFormals <= QV4::Global::ReservedArgumentCount && + compiledFunction->nLocals == 0 && !isNamedExpression(); } Function::~Function() @@ -119,7 +120,7 @@ void Function::updateInternalClass(ExecutionEngine *engine, const QListnLocals; ++i) internalClass = internalClass->addMember(compilationUnit->runtimeStrings[localsIndices[i]]->identifier, Attr_NotConfigurable); - activationRequired = true; + canUseSimpleCall = false; } QT_END_NAMESPACE diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index ff5febd19c..b11c8af94a 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -69,7 +69,6 @@ struct Q_QML_EXPORT Function { // first nArguments names in internalClass are the actual arguments InternalClass *internalClass; uint nFormals; - bool activationRequired; bool hasQmlDependencies; bool canUseSimpleCall; @@ -89,9 +88,6 @@ struct Q_QML_EXPORT Function { inline bool isStrict() const { return compiledFunction->flags & CompiledData::Function::IsStrict; } inline bool isNamedExpression() const { return compiledFunction->flags & CompiledData::Function::IsNamedExpression; } - inline bool needsActivation() const - { return activationRequired; } - inline bool canUseSimpleFunction() const { return canUseSimpleCall; } QQmlSourceLocation sourceLocation() const diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index c7dac7d3e5..d375153058 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -84,7 +84,6 @@ DECLARE_HEAP_OBJECT(FunctionObject, Object) { unsigned int formalParameterCount() { return function ? function->nFormals : 0; } unsigned int varCount() { return function ? function->compiledFunction->nLocals : 0; } - bool needsActivation() const { return function ? function->needsActivation() : false; } const QV4::Object *protoProperty() const { return propertyData(Index_Prototype)->cast(); } }; @@ -160,7 +159,6 @@ struct Q_QML_EXPORT FunctionObject: Object { static Heap::FunctionObject *createScriptFunction(ExecutionContext *scope, Function *function); - bool needsActivation() const { return d()->needsActivation(); } bool strictMode() const { return d()->function ? d()->function->isStrict() : false; } bool isBinding() const; bool isBoundFunction() const; -- cgit v1.2.3 From 3e80f3bef90d35bc6c8cec32de875b694988d668 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 7 Feb 2017 08:56:24 +0100 Subject: Make the decision about whether to use a Simple callcontext earlier All required information is already available when creating the CompiledData::Function, so determine at that point whether we use a Simple or full CallContext. Change-Id: Ife489ca2ca6eaf2ffc7843544a56e8bd86590e9d Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4compileddata_p.h | 3 ++- src/qml/compiler/qv4compiler.cpp | 2 ++ src/qml/compiler/qv4jsir_p.h | 6 ++++++ src/qml/jsruntime/qv4function.cpp | 7 +------ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 13a0c4b075..a1833f2937 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -211,7 +211,8 @@ struct Function HasDirectEval = 0x2, UsesArgumentsObject = 0x4, IsNamedExpression = 0x8, - HasCatchOrWith = 0x10 + HasCatchOrWith = 0x10, + CanUseSimpleCall = 0x20 }; // Absolute offset into file where the code for this function is located. Only used when the function diff --git a/src/qml/compiler/qv4compiler.cpp b/src/qml/compiler/qv4compiler.cpp index 9cfac4a676..e9709f5fb4 100644 --- a/src/qml/compiler/qv4compiler.cpp +++ b/src/qml/compiler/qv4compiler.cpp @@ -296,6 +296,8 @@ void QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::IR::Function *i function->flags |= CompiledData::Function::IsNamedExpression; if (irFunction->hasTry || irFunction->hasWith) function->flags |= CompiledData::Function::HasCatchOrWith; + if (irFunction->canUseSimpleCall()) + function->flags |= CompiledData::Function::CanUseSimpleCall; function->nFormals = irFunction->formals.size(); function->formalsOffset = currentOffset; currentOffset += function->nFormals * sizeof(quint32); diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 23ebe0c962..da2c350393 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -1352,6 +1352,12 @@ struct Function { int getNewStatementId() { return _statementCount++; } int statementCount() const { return _statementCount; } + bool canUseSimpleCall() const { + return nestedFunctions.isEmpty() && + locals.isEmpty() && formals.size() <= QV4::Global::ReservedArgumentCount && + !hasTry && !hasWith && !isNamedExpression && !usesArgumentsObject && !hasDirectEval; + } + private: BasicBlock *getOrCreateBasicBlock(int index); void setStatementCount(int cnt); diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp index b3feae4293..ed9e3699f2 100644 --- a/src/qml/jsruntime/qv4function.cpp +++ b/src/qml/jsruntime/qv4function.cpp @@ -83,12 +83,7 @@ Function::Function(ExecutionEngine *engine, CompiledData::CompilationUnit *unit, for (quint32 i = 0; i < compiledFunction->nLocals; ++i) internalClass = internalClass->addMember(compilationUnit->runtimeStrings[localsIndices[i]]->identifier, Attr_NotConfigurable); - canUseSimpleCall = compiledFunction->nInnerFunctions == 0 && - !(compiledFunction->flags & CompiledData::Function::HasDirectEval) && - !(compiledFunction->flags & CompiledData::Function::UsesArgumentsObject) && - !(compiledFunction->flags & CompiledData::Function::HasCatchOrWith) && - nFormals <= QV4::Global::ReservedArgumentCount && - compiledFunction->nLocals == 0 && !isNamedExpression(); + canUseSimpleCall = compiledFunction->flags & CompiledData::Function::CanUseSimpleCall; } Function::~Function() -- cgit v1.2.3 From 7fa8393aac00d6c18048099fd6c4fb77e9ff739a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 8 Feb 2017 14:18:42 +0100 Subject: Add missing 64 bit shift operations to the X64 macro assembler Change-Id: I1e593e5ed0bb24ed3a158d98495209945c8bb309 Reviewed-by: Simon Hausmann --- src/3rdparty/masm/assembler/MacroAssemblerX86_64.h | 51 +++++++++++++++++++++- src/3rdparty/masm/assembler/X86Assembler.h | 42 ++++++++++-------- 2 files changed, 73 insertions(+), 20 deletions(-) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h index 3566702413..14757f4ea2 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h @@ -327,14 +327,61 @@ public: m_assembler.xorq_ir(imm.m_value, srcDest); } + void lshift64(TrustedImm32 imm, RegisterID dest) + { + m_assembler.shlq_i8r(imm.m_value, dest); + } + + void lshift64(RegisterID src, RegisterID dest) + { + if (src == X86Registers::ecx) + m_assembler.shlq_CLr(dest); + else { + ASSERT(src != dest); + + // Can only shift by ecx, so we do some swapping if we see anything else. + swap(src, X86Registers::ecx); + m_assembler.shlq_CLr(dest == X86Registers::ecx ? src : dest); + swap(src, X86Registers::ecx); + } + } + + void rshift64(TrustedImm32 imm, RegisterID dest) + { + m_assembler.sarq_i8r(imm.m_value, dest); + } + + void rshift64(RegisterID src, RegisterID dest) + { + if (src == X86Registers::ecx) + m_assembler.sarq_CLr(dest); + else { + ASSERT(src != dest); + + // Can only shift by ecx, so we do some swapping if we see anything else. + swap(src, X86Registers::ecx); + m_assembler.sarq_CLr(dest == X86Registers::ecx ? src : dest); + swap(src, X86Registers::ecx); + } + } + void urshift64(TrustedImm32 imm, RegisterID dest) { m_assembler.shrq_i8r(imm.m_value, dest); } - void lshift64(TrustedImm32 imm, RegisterID dest) + void urshift64(RegisterID src, RegisterID dest) { - m_assembler.shlq_i8r(imm.m_value, dest); + if (src == X86Registers::ecx) + m_assembler.shrq_CLr(dest); + else { + ASSERT(src != dest); + + // Can only shift by ecx, so we do some swapping if we see anything else. + swap(src, X86Registers::ecx); + m_assembler.shrq_CLr(dest == X86Registers::ecx ? src : dest); + swap(src, X86Registers::ecx); + } } void load64(ImplicitAddress address, RegisterID dest) diff --git a/src/3rdparty/masm/assembler/X86Assembler.h b/src/3rdparty/masm/assembler/X86Assembler.h index 24462ef38f..e79cea7414 100644 --- a/src/3rdparty/masm/assembler/X86Assembler.h +++ b/src/3rdparty/masm/assembler/X86Assembler.h @@ -723,6 +723,21 @@ public: } } + void sarq_CLr(RegisterID dst) + { + m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SAR, dst); + } + + void sarq_i8r(int imm, RegisterID dst) + { + if (imm == 1) + m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst); + else { + m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_SAR, dst); + m_formatter.immediate8(imm); + } + } + void shrq_i8r(int imm, RegisterID dst) { // ### doesn't work when removing the "0 &&" @@ -734,6 +749,11 @@ public: } } + void shrq_CLr(RegisterID dst) + { + m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SHR, dst); + } + void shlq_i8r(int imm, RegisterID dst) { // ### doesn't work when removing the "0 &&" @@ -745,7 +765,10 @@ public: } } - + void shlq_CLr(RegisterID dst) + { + m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SHL, dst); + } #endif void sarl_i8r(int imm, RegisterID dst) @@ -793,23 +816,6 @@ public: m_formatter.oneByteOp(OP_GROUP2_EvCL, GROUP2_OP_SHL, dst); } -#if CPU(X86_64) - void sarq_CLr(RegisterID dst) - { - m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SAR, dst); - } - - void sarq_i8r(int imm, RegisterID dst) - { - if (imm == 1) - m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst); - else { - m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_SAR, dst); - m_formatter.immediate8(imm); - } - } -#endif - void imull_rr(RegisterID src, RegisterID dst) { m_formatter.twoByteOp(OP2_IMUL_GvEv, dst, src); -- cgit v1.2.3 From acd9771544811c8dca28575b7d546abbb0271fbb Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 7 Feb 2017 09:20:45 +0100 Subject: Add a method to determine whether an ArgLocal requires a write barrier Change-Id: I0d585797849dc22f22e5173b8da94fecf8952c97 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4jsir_p.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index da2c350393..8ddeb71f69 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -1358,6 +1358,16 @@ struct Function { !hasTry && !hasWith && !isNamedExpression && !usesArgumentsObject && !hasDirectEval; } + bool argLocalRequiresWriteBarrier(ArgLocal *al) const { + uint scope = al->scope; + const IR::Function *f = this; + while (scope) { + f = f->outer; + --scope; + } + return !f->canUseSimpleCall(); + } + private: BasicBlock *getOrCreateBasicBlock(int index); void setStatementCount(int cnt); -- cgit v1.2.3 From d06b171582104db5f0b61ee782fb835dd6038d62 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 7 Feb 2017 10:39:48 +0100 Subject: Mark where we need a write barrier in the JIT Separate the loadAddress calls into loadAddressForReading and loadAddressForWriting. In the second case, add an out argument that specifies whether the write will need a barrier. Pass the write barrier type that is required for a store down into the actual store methods. Change-Id: I3f7634ab82d82f1b20dab331e083d1a662cd314e Reviewed-by: Simon Hausmann --- src/qml/jit/qv4assembler.cpp | 19 ++- src/qml/jit/qv4assembler_p.h | 239 +++++++++++++++++++++---------------- src/qml/jit/qv4binop.cpp | 2 +- src/qml/jit/qv4isel_masm.cpp | 89 +++++++------- src/qml/jit/qv4isel_masm_p.h | 6 +- src/qml/memory/qv4writebarrier_p.h | 5 + 6 files changed, 208 insertions(+), 152 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 0b8be97ef5..59470aeea2 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -246,13 +246,16 @@ void Assembler::generateCJumpOnCompare(RelationalCondition } template -typename Assembler::Pointer Assembler::loadAddress(RegisterID tmp, IR::Expr *e) +typename Assembler::Pointer +Assembler::loadAddressForWriting(RegisterID tmp, IR::Expr *e, WriteBarrier::Type *barrier) { + if (barrier) + *barrier = WriteBarrier::NoBarrier; IR::Temp *t = e->asTemp(); if (t) return loadTempAddress(t); else - return loadArgLocalAddress(tmp, e->asArgLocal()); + return loadArgLocalAddressForWriting(tmp, e->asArgLocal(), barrier); } template @@ -265,7 +268,8 @@ typename Assembler::Pointer Assembler: } template -typename Assembler::Pointer Assembler::loadArgLocalAddress(RegisterID baseReg, IR::ArgLocal *al) +typename Assembler::Pointer +Assembler::loadArgLocalAddressForWriting(RegisterID baseReg, IR::ArgLocal *al, WriteBarrier::Type *barrier) { int32_t offset = 0; int scope = al->scope; @@ -291,6 +295,8 @@ typename Assembler::Pointer Assembler: default: Q_UNREACHABLE(); } + if (barrier) + *barrier = _function->argLocalRequiresWriteBarrier(al) ? WriteBarrier::Barrier : WriteBarrier::NoBarrier; return Pointer(baseReg, offset); } @@ -329,8 +335,9 @@ void Assembler::loadStringRef(RegisterID reg, const QString template void Assembler::storeValue(QV4::Primitive value, IR::Expr *destination) { - Address addr = loadAddress(ScratchRegister, destination); - storeValue(value, addr); + WriteBarrier::Type barrier; + Address addr = loadAddressForWriting(ScratchRegister, destination, &barrier); + storeValue(value, addr, barrier); } template @@ -419,7 +426,7 @@ typename Assembler::Jump Assembler::ge // It's not a number type, so it cannot be in a register. Q_ASSERT(src->asArgLocal() || src->asTemp()->kind != IR::Temp::PhysicalRegister || src->type == IR::BoolType); - Assembler::Pointer tagAddr = loadAddress(Assembler::ScratchRegister, src); + Assembler::Pointer tagAddr = loadAddressForReading(Assembler::ScratchRegister, src); tagAddr.offset += 4; load32(tagAddr, Assembler::ScratchRegister); diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 36e812afb3..6e95b29ca7 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -57,6 +57,7 @@ #include "private/qv4value_p.h" #include "private/qv4context_p.h" #include "private/qv4engine_p.h" +#include "private/qv4writebarrier_p.h" #include "qv4targetplatform_p.h" #include @@ -158,29 +159,33 @@ struct RegisterSizeDependentAssemblerMacroAssembler::loadDouble(addr, dest); } - static void storeDouble(JITAssembler *as, FPRegisterID source, Address addr) + static void storeDouble(JITAssembler *as, FPRegisterID source, Address addr, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->MacroAssembler::storeDouble(source, addr); } static void storeDouble(JITAssembler *as, FPRegisterID source, IR::Expr* target) { - Pointer ptr = as->loadAddress(TargetPlatform::ScratchRegister, target); - as->storeDouble(source, ptr); + WriteBarrier::Type barrier; + Pointer ptr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); + as->storeDouble(source, ptr, barrier); } - static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination) + static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->store32(TrustedImm32(value.int_32()), destination); destination.offset += 4; as->store32(TrustedImm32(value.tag()), destination); } template - static void copyValueViaRegisters(JITAssembler *as, Source source, Destination destination) + static void copyValueViaRegisters(JITAssembler *as, Source source, Destination destination, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->loadDouble(source, TargetPlatform::FPGpr0); - as->storeDouble(TargetPlatform::FPGpr0, destination); + as->storeDouble(TargetPlatform::FPGpr0, destination, barrier); } static void loadDoubleConstant(JITAssembler *as, IR::Const *c, FPRegisterID target) @@ -193,8 +198,9 @@ struct RegisterSizeDependentAssemblermoveIntsToDouble(TargetPlatform::LowReturnValueRegister, TargetPlatform::HighReturnValueRegister, dest, TargetPlatform::FPGpr0); } - static void storeReturnValue(JITAssembler *as, const Pointer &dest) + static void storeReturnValue(JITAssembler *as, const Pointer &dest, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); Address destination = dest; as->store32(TargetPlatform::LowReturnValueRegister, destination); destination.offset += 4; @@ -234,7 +240,7 @@ struct RegisterSizeDependentAssemblerloadAddress(TargetPlatform::ScratchRegister, t); + Pointer addr = as->loadAddressForReading(TargetPlatform::ScratchRegister, t); as->load32(addr, lowReg); addr.offset += 4; as->load32(addr, highReg); @@ -295,7 +301,7 @@ struct RegisterSizeDependentAssemblerloadAddress(scratchRegister, right); + Pointer tagAddr = as->loadAddressForReading(scratchRegister, right); as->load32(tagAddr, tagRegister); Jump j = as->branch32(JITAssembler::invert(cond), tagRegister, TrustedImm32(0)); as->addPatch(falseBlock, j); @@ -312,7 +318,7 @@ struct RegisterSizeDependentAssemblertype == IR::VarType); // load the tag: - Pointer addr = as->loadAddress(TargetPlatform::ScratchRegister, source); + Pointer addr = as->loadAddressForReading(TargetPlatform::ScratchRegister, source); Pointer tagAddr = addr; tagAddr.offset += 4; as->load32(tagAddr, TargetPlatform::ReturnValueRegister); @@ -323,7 +329,9 @@ struct RegisterSizeDependentAssemblerasTemp(); if (!targetTemp || targetTemp->kind == IR::Temp::StackSlot) { as->load32(addr, TargetPlatform::ReturnValueRegister); - Pointer targetAddr = as->loadAddress(TargetPlatform::ScratchRegister, target); + WriteBarrier::Type barrier; + Pointer targetAddr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); + Q_UNUSED(barrier); as->store32(TargetPlatform::ReturnValueRegister, targetAddr); targetAddr.offset += 4; as->store32(TrustedImm32(Value::Integer_Type_Internal), targetAddr); @@ -335,14 +343,15 @@ struct RegisterSizeDependentAssemblerloadAddress(TargetPlatform::ScratchRegister, source)); + as->loadAddressForReading(TargetPlatform::ScratchRegister, source)); as->storeInt32(TargetPlatform::ReturnValueRegister, target); intDone.link(as); } - static void loadManagedPointer(JITAssembler *as, RegisterID registerWithPtr, Pointer destAddr) + static void loadManagedPointer(JITAssembler *as, RegisterID registerWithPtr, Pointer destAddr, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->store32(registerWithPtr, destAddr); destAddr.offset += 4; as->store32(TrustedImm32(QV4::Value::Managed_Type_Internal_32), destAddr); @@ -391,8 +400,9 @@ struct RegisterSizeDependentAssemblermove64ToDouble(TargetPlatform::ReturnValueRegister, dest); } - static void storeDouble(JITAssembler *as, FPRegisterID source, Address addr) + static void storeDouble(JITAssembler *as, FPRegisterID source, Address addr, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->moveDoubleTo64(source, TargetPlatform::ReturnValueRegister); as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->store64(TargetPlatform::ReturnValueRegister, addr); @@ -402,7 +412,9 @@ struct RegisterSizeDependentAssemblermoveDoubleTo64(source, TargetPlatform::ReturnValueRegister); as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); - Pointer ptr = as->loadAddress(TargetPlatform::ScratchRegister, target); + WriteBarrier::Type barrier; + Pointer ptr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); + Q_UNUSED(barrier); as->store64(TargetPlatform::ReturnValueRegister, ptr); } @@ -412,8 +424,9 @@ struct RegisterSizeDependentAssemblermove64ToDouble(TargetPlatform::ReturnValueRegister, dest); } - static void storeReturnValue(JITAssembler *as, const Pointer &dest) + static void storeReturnValue(JITAssembler *as, const Pointer &dest, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->store64(TargetPlatform::ReturnValueRegister, dest); } @@ -455,7 +468,7 @@ struct RegisterSizeDependentAssemblercopyValue(TargetPlatform::ReturnValueRegister, t); + as->copyValue(TargetPlatform::ReturnValueRegister, t, WriteBarrier::NoBarrier); } } @@ -464,18 +477,19 @@ struct RegisterSizeDependentAssemblermove(TrustedImm64(retVal.rawValue()), TargetPlatform::ReturnValueRegister); } - static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination) + static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); as->store64(TrustedImm64(value.rawValue()), destination); } template - static void copyValueViaRegisters(JITAssembler *as, Source source, Destination destination) + static void copyValueViaRegisters(JITAssembler *as, Source source, Destination destination, WriteBarrier::Type barrier) { // Use ReturnValueRegister as "scratch" register because loadArgument // and storeArgument are functions that may need a scratch register themselves. loadArgumentInRegister(as, source, TargetPlatform::ReturnValueRegister, 0); - as->storeReturnValue(destination); + as->storeReturnValue(destination, barrier); } static void loadDoubleConstant(JITAssembler *as, IR::Const *c, FPRegisterID target) @@ -511,7 +525,7 @@ struct RegisterSizeDependentAssemblerloadArgLocalAddress(dest, al); + Pointer addr = as->loadArgLocalAddressForReading(dest, al); as->load64(addr, dest); } else { QV4::Value undefined = QV4::Primitive::undefinedValue(); @@ -580,7 +594,7 @@ struct RegisterSizeDependentAssemblerloadAddress(scratchRegister, right); + Pointer addr = as->loadAddressForReading(scratchRegister, right); as->load64(addr, tagRegister); const TrustedImm64 tag(0); generateCJumpOnCompare(as, cond, tagRegister, tag, nextBlock, currentBlock, trueBlock, falseBlock); @@ -589,7 +603,7 @@ struct RegisterSizeDependentAssemblertype == IR::VarType); - Pointer addr = as->loadAddress(TargetPlatform::ScratchRegister, source); + Pointer addr = as->loadAddressForReading(TargetPlatform::ScratchRegister, source); as->load64(addr, TargetPlatform::ScratchRegister); as->move(TargetPlatform::ScratchRegister, TargetPlatform::ReturnValueRegister); @@ -613,14 +627,16 @@ struct RegisterSizeDependentAssemblerloadAddress(TargetPlatform::ScratchRegister, source)); + as->loadAddressForReading(TargetPlatform::ScratchRegister, source)); isIntConvertible.link(as); success.link(as); IR::Temp *targetTemp = target->asTemp(); if (!targetTemp || targetTemp->kind == IR::Temp::StackSlot) { - Pointer targetAddr = as->loadAddress(TargetPlatform::ScratchRegister, target); + WriteBarrier::Type barrier; + Pointer targetAddr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); + Q_UNUSED(barrier); as->store32(TargetPlatform::ReturnValueRegister, targetAddr); targetAddr.offset += 4; as->store32(TrustedImm32(Value::Integer_Type_Internal), targetAddr); @@ -629,8 +645,9 @@ struct RegisterSizeDependentAssemblerstore64(registerWithPtr, destAddr); } @@ -962,9 +979,16 @@ public: Jump branchDouble(bool invertCondition, IR::AluOp op, IR::Expr *left, IR::Expr *right); Jump branchInt32(bool invertCondition, IR::AluOp op, IR::Expr *left, IR::Expr *right); - Pointer loadAddress(RegisterID tmp, IR::Expr *t); + Pointer loadAddressForWriting(RegisterID tmp, IR::Expr *t, WriteBarrier::Type *barrier); + Pointer loadAddressForReading(RegisterID tmp, IR::Expr *t) { + return loadAddressForWriting(tmp, t, 0); + } + Pointer loadTempAddress(IR::Temp *t); - Pointer loadArgLocalAddress(RegisterID baseReg, IR::ArgLocal *al); + Pointer loadArgLocalAddressForWriting(RegisterID baseReg, IR::ArgLocal *al, WriteBarrier::Type *barrier); + Pointer loadArgLocalAddressForReading(RegisterID baseReg, IR::ArgLocal *al) { + return loadArgLocalAddressForWriting(baseReg, al, 0); + } Pointer loadStringAddress(RegisterID reg, const QString &string); Address loadConstant(IR::Const *c, RegisterID baseReg); Address loadConstant(const Primitive &v, RegisterID baseReg); @@ -986,16 +1010,16 @@ public: Pointer addr(_stackLayout->savedRegPointer(argumentNumber)); switch (t->type) { case IR::BoolType: - storeBool((RegisterID) t->index, addr); + storeBool((RegisterID) t->index, addr, WriteBarrier::NoBarrier); break; case IR::SInt32Type: - storeInt32((RegisterID) t->index, addr); + storeInt32((RegisterID) t->index, addr, WriteBarrier::NoBarrier); break; case IR::UInt32Type: - storeUInt32((RegisterID) t->index, addr); + storeUInt32((RegisterID) t->index, addr, WriteBarrier::NoBarrier); break; case IR::DoubleType: - storeDouble((FPRegisterID) t->index, addr); + storeDouble((FPRegisterID) t->index, addr, WriteBarrier::NoBarrier); break; default: Q_UNIMPLEMENTED(); @@ -1026,7 +1050,7 @@ public: if (!temp.value) { RegisterSizeDependentOps::zeroRegister(this, dest); } else { - Pointer addr = toAddress(dest, temp.value, argumentNumber); + Pointer addr = toAddress(dest, temp.value, argumentNumber, 0); loadArgumentInRegister(addr, dest, argumentNumber); } } @@ -1039,7 +1063,7 @@ public: void loadArgumentInRegister(Reference temp, RegisterID dest, int argumentNumber) { Q_ASSERT(temp.value); - Pointer addr = loadAddress(dest, temp.value); + Pointer addr = loadAddressForReading(dest, temp.value); loadArgumentInRegister(addr, dest, argumentNumber); } @@ -1072,8 +1096,10 @@ public: move(imm32, dest); } - void storeReturnValue(RegisterID dest) + void storeReturnValue(RegisterID dest, WriteBarrier::Type barrier = WriteBarrier::NoBarrier) { + Q_UNUSED(barrier); + Q_ASSERT(barrier == WriteBarrier::NoBarrier); move(ReturnValueRegister, dest); } @@ -1081,7 +1107,7 @@ public: { subPtr(TrustedImm32(sizeof(QV4::Value)), StackPointerRegister); Pointer tmp(StackPointerRegister, 0); - storeReturnValue(tmp); + storeReturnValue(tmp, WriteBarrier::NoBarrier); toUInt32Register(tmp, dest); addPtr(TrustedImm32(sizeof(QV4::Value)), StackPointerRegister); } @@ -1091,9 +1117,9 @@ public: RegisterSizeDependentOps::storeReturnValue(this, dest); } - void storeReturnValue(const Pointer &dest) + void storeReturnValue(const Pointer &dest, WriteBarrier::Type barrier) { - RegisterSizeDependentOps::storeReturnValue(this, dest); + RegisterSizeDependentOps::storeReturnValue(this, dest, barrier); } void storeReturnValue(IR::Expr *target) @@ -1101,22 +1127,19 @@ public: if (!target) return; - if (IR::Temp *temp = target->asTemp()) { - if (temp->kind == IR::Temp::PhysicalRegister) { - if (temp->type == IR::DoubleType) - storeReturnValue((FPRegisterID) temp->index); - else if (temp->type == IR::UInt32Type) - storeUInt32ReturnValue((RegisterID) temp->index); - else - storeReturnValue((RegisterID) temp->index); - return; - } else { - Pointer addr = loadTempAddress(temp); - storeReturnValue(addr); - } - } else if (IR::ArgLocal *al = target->asArgLocal()) { - Pointer addr = loadArgLocalAddress(ScratchRegister, al); - storeReturnValue(addr); + IR::Temp *temp = target->asTemp(); + if (temp && temp->kind == IR::Temp::PhysicalRegister) { + if (temp->type == IR::DoubleType) + storeReturnValue((FPRegisterID) temp->index); + else if (temp->type == IR::UInt32Type) + storeUInt32ReturnValue((RegisterID) temp->index); + else + storeReturnValue((RegisterID) temp->index); + return; + } else { + WriteBarrier::Type barrier; + Pointer addr = loadAddressForWriting(ScratchRegister, target, &barrier); + storeReturnValue(addr, barrier); } } @@ -1153,7 +1176,7 @@ public: void loadArgumentOnStack(PointerToValue temp, int argumentNumber) { if (temp.value) { - Pointer ptr = toAddress(ScratchRegister, temp.value, argumentNumber); + Pointer ptr = toAddress(ScratchRegister, temp.value, argumentNumber, 0); loadArgumentOnStack(ptr, argumentNumber); } else { RegisterSizeDependentOps::zeroStackSlot(this, StackSlot); @@ -1173,7 +1196,7 @@ public: { Q_ASSERT (temp.value); - Pointer ptr = loadAddress(ScratchRegister, temp.value); + Pointer ptr = loadAddressForReading(ScratchRegister, temp.value); loadArgumentOnStack(ptr, argumentNumber); } @@ -1184,7 +1207,7 @@ public: moveDouble((FPRegisterID) sourceTemp->index, dest); return; } - Pointer ptr = loadAddress(ScratchRegister, source); + Pointer ptr = loadAddressForReading(ScratchRegister, source); loadDouble(ptr, dest); } @@ -1203,30 +1226,43 @@ public: RegisterSizeDependentOps::loadDouble(this, addr, dest); } - void storeDouble(FPRegisterID source, Address addr) + void storeDouble(FPRegisterID source, Address addr, WriteBarrier::Type barrier) { - RegisterSizeDependentOps::storeDouble(this, source, addr); + RegisterSizeDependentOps::storeDouble(this, source, addr, barrier); } template - void copyValue(Result result, Source source); + void copyValue(Result result, Source source, WriteBarrier::Type barrier); template - void copyValue(Result result, IR::Expr* source); + void copyValue(Result result, IR::Expr* source, WriteBarrier::Type barrier); // The scratch register is used to calculate the temp address for the source. - void memcopyValue(Pointer target, IR::Expr *source, RegisterID scratchRegister) + void memcopyValue(Pointer target, IR::Expr *source, RegisterID scratchRegister, WriteBarrier::Type barrier) { Q_ASSERT(!source->asTemp() || source->asTemp()->kind != IR::Temp::PhysicalRegister); Q_ASSERT(target.base != scratchRegister); - TargetConfiguration::MacroAssembler::loadDouble(loadAddress(scratchRegister, source), FPGpr0); - TargetConfiguration::MacroAssembler::storeDouble(FPGpr0, target); + loadRawValue(loadAddressForReading(scratchRegister, source), FPGpr0); + storeRawValue(FPGpr0, target, barrier); } // The scratch register is used to calculate the temp address for the source. void memcopyValue(IR::Expr *target, Pointer source, FPRegisterID fpScratchRegister, RegisterID scratchRegister) { - TargetConfiguration::MacroAssembler::loadDouble(source, fpScratchRegister); - TargetConfiguration::MacroAssembler::storeDouble(fpScratchRegister, loadAddress(scratchRegister, target)); + loadRawValue(source, fpScratchRegister); + WriteBarrier::Type barrier; + Pointer dest = loadAddressForWriting(scratchRegister, target, &barrier); + storeRawValue(fpScratchRegister, dest, barrier); + } + + void loadRawValue(Pointer source, FPRegisterID dest) + { + TargetConfiguration::MacroAssembler::loadDouble(source, dest); + } + + void storeRawValue(FPRegisterID source, Pointer dest, WriteBarrier::Type barrier) + { + Q_UNUSED(barrier); + TargetConfiguration::MacroAssembler::storeDouble(source, dest); } void storeValue(QV4::Primitive value, RegisterID destination) @@ -1236,9 +1272,9 @@ public: Q_UNREACHABLE(); } - void storeValue(QV4::Primitive value, Address destination) + void storeValue(QV4::Primitive value, Address destination, WriteBarrier::Type barrier) { - RegisterSizeDependentOps::storeValue(this, value, destination); + RegisterSizeDependentOps::storeValue(this, value, destination, barrier); } void storeValue(QV4::Primitive value, IR::Expr* temp); @@ -1411,8 +1447,10 @@ public: generateFunctionCallImp(needsExceptionCheck, r, functionName, function, arg1, VoidType(), VoidType(), VoidType(), VoidType(), VoidType()); } - Pointer toAddress(RegisterID tmpReg, IR::Expr *e, int offset) + Pointer toAddress(RegisterID tmpReg, IR::Expr *e, int offset, WriteBarrier::Type *barrier) { + if (barrier) + *barrier = WriteBarrier::NoBarrier; if (IR::Const *c = e->asConst()) { Address addr = _stackLayout->savedRegPointer(offset); Address tagAddr = addr; @@ -1428,11 +1466,12 @@ public: if (t->kind == IR::Temp::PhysicalRegister) return Pointer(_stackLayout->savedRegPointer(offset)); - return loadAddress(tmpReg, e); + return loadAddressForWriting(tmpReg, e, barrier); } - void storeBool(RegisterID reg, Pointer addr) + void storeBool(RegisterID reg, Pointer addr, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); store32(reg, addr); addr.offset += 4; store32(TrustedImm32(QV4::Primitive::fromBoolean(0).tag()), addr); @@ -1452,8 +1491,9 @@ public: } } - Pointer addr = loadAddress(ScratchRegister, target); - storeBool(reg, addr); + WriteBarrier::Type barrier; + Pointer addr = loadAddressForWriting(ScratchRegister, target, &barrier); + storeBool(reg, addr, barrier); } void storeBool(bool value, IR::Expr *target) { @@ -1475,8 +1515,9 @@ public: move(src, dest); } - void storeInt32(RegisterID reg, Pointer addr) + void storeInt32(RegisterID reg, Pointer addr, WriteBarrier::Type barrier) { + Q_UNUSED(barrier); store32(reg, addr); addr.offset += 4; store32(TrustedImm32(QV4::Primitive::fromInt32(0).tag()), addr); @@ -1484,16 +1525,13 @@ public: void storeInt32(RegisterID reg, IR::Expr *target) { - if (IR::Temp *targetTemp = target->asTemp()) { - if (targetTemp->kind == IR::Temp::PhysicalRegister) { - move(reg, (RegisterID) targetTemp->index); - } else { - Pointer addr = loadTempAddress(targetTemp); - storeInt32(reg, addr); - } - } else if (IR::ArgLocal *al = target->asArgLocal()) { - Pointer addr = loadArgLocalAddress(ScratchRegister, al); - storeInt32(reg, addr); + IR::Temp *targetTemp = target->asTemp(); + if (targetTemp && targetTemp->kind == IR::Temp::PhysicalRegister) { + move(reg, (RegisterID) targetTemp->index); + } else { + WriteBarrier::Type barrier; + Pointer addr = loadAddressForWriting(ScratchRegister, target, &barrier); + storeInt32(reg, addr, barrier); } } @@ -1502,15 +1540,15 @@ public: move(src, dest); } - void storeUInt32(RegisterID reg, Pointer addr) + void storeUInt32(RegisterID reg, Pointer addr, WriteBarrier::Type barrier) { // The UInt32 representation in QV4::Value is really convoluted. See also toUInt32Register. Jump intRange = branch32(RelationalCondition::GreaterThanOrEqual, reg, TrustedImm32(0)); convertUInt32ToDouble(reg, FPGpr0, ReturnValueRegister); - storeDouble(FPGpr0, addr); + storeDouble(FPGpr0, addr, barrier); Jump done = jump(); intRange.link(this); - storeInt32(reg, addr); + storeInt32(reg, addr, barrier); done.link(this); } @@ -1520,8 +1558,9 @@ public: if (targetTemp && targetTemp->kind == IR::Temp::PhysicalRegister) { move(reg, (RegisterID) targetTemp->index); } else { - Pointer addr = loadAddress(ScratchRegister, target); - storeUInt32(reg, addr); + WriteBarrier::Type barrier; + Pointer addr = loadAddressForWriting(ScratchRegister, target, &barrier); + storeUInt32(reg, addr, barrier); } } @@ -1556,7 +1595,7 @@ public: if (t->kind == IR::Temp::PhysicalRegister) return (RegisterID) t->index; - return toInt32Register(loadAddress(scratchReg, e), scratchReg); + return toInt32Register(loadAddressForReading(scratchReg, e), scratchReg); } RegisterID toInt32Register(Pointer addr, RegisterID scratchReg) @@ -1576,7 +1615,7 @@ public: if (t->kind == IR::Temp::PhysicalRegister) return (RegisterID) t->index; - return toUInt32Register(loadAddress(scratchReg, e), scratchReg); + return toUInt32Register(loadAddressForReading(scratchReg, e), scratchReg); } RegisterID toUInt32Register(Pointer addr, RegisterID scratchReg) @@ -1648,31 +1687,31 @@ private: template template -void Assembler::copyValue(Result result, Source source) +void Assembler::copyValue(Result result, Source source, WriteBarrier::Type barrier) { - RegisterSizeDependentOps::copyValueViaRegisters(this, source, result); + RegisterSizeDependentOps::copyValueViaRegisters(this, source, result, barrier); } template template -void Assembler::copyValue(Result result, IR::Expr* source) +void Assembler::copyValue(Result result, IR::Expr* source, WriteBarrier::Type barrier) { if (source->type == IR::BoolType) { RegisterID reg = toInt32Register(source, ScratchRegister); - storeBool(reg, result); + storeBool(reg, result, barrier); } else if (source->type == IR::SInt32Type) { RegisterID reg = toInt32Register(source, ScratchRegister); - storeInt32(reg, result); + storeInt32(reg, result, barrier); } else if (source->type == IR::UInt32Type) { RegisterID reg = toUInt32Register(source, ScratchRegister); - storeUInt32(reg, result); + storeUInt32(reg, result, barrier); } else if (source->type == IR::DoubleType) { - storeDouble(toDoubleRegister(source), result); + storeDouble(toDoubleRegister(source), result, barrier); } else if (source->asTemp() || source->asArgLocal()) { - RegisterSizeDependentOps::copyValueViaRegisters(this, source, result); + RegisterSizeDependentOps::copyValueViaRegisters(this, source, result, barrier); } else if (IR::Const *c = source->asConst()) { QV4::Primitive v = convertToValue(c); - storeValue(v, result); + storeValue(v, result, barrier); } else { Q_UNREACHABLE(); } diff --git a/src/qml/jit/qv4binop.cpp b/src/qml/jit/qv4binop.cpp index 22067bbb13..0e180eb4cc 100644 --- a/src/qml/jit/qv4binop.cpp +++ b/src/qml/jit/qv4binop.cpp @@ -492,7 +492,7 @@ bool Binop::int32Binop(IR::Expr *leftSource, IR::Expr *rightSource return false; } } else if (inplaceOpWithAddress) { // All cases of X = X op [address-of-Y] - Pointer rhsAddr = as->loadAddress(JITAssembler::ScratchRegister, rightSource); + Pointer rhsAddr = as->loadAddressForReading(JITAssembler::ScratchRegister, rightSource); switch (op) { case IR::OpBitAnd: as->and32(rhsAddr, targetReg); break; case IR::OpBitOr: as->or32 (rhsAddr, targetReg); break; diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 6d3066aea1..f4bbedad43 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -350,11 +350,11 @@ void InstructionSelection::callBuiltinDefineObjectLiteral(IR::Expr bool isData = it->expr->asConst()->value; it = it->next; - _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr); + _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier); if (!isData) { it = it->next; - _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr); + _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier); } } @@ -376,10 +376,10 @@ void InstructionSelection::callBuiltinDefineObjectLiteral(IR::Expr ++arrayValueCount; // Index - _as->storeValue(QV4::Primitive::fromUInt32(index), _as->stackLayout().argumentAddressForCall(argc++)); + _as->storeValue(QV4::Primitive::fromUInt32(index), _as->stackLayout().argumentAddressForCall(argc++), WriteBarrier::NoBarrier); // Value - _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr); + _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier); it = it->next; } @@ -400,14 +400,14 @@ void InstructionSelection::callBuiltinDefineObjectLiteral(IR::Expr ++arrayGetterSetterCount; // Index - _as->storeValue(QV4::Primitive::fromUInt32(index), _as->stackLayout().argumentAddressForCall(argc++)); + _as->storeValue(QV4::Primitive::fromUInt32(index), _as->stackLayout().argumentAddressForCall(argc++), WriteBarrier::NoBarrier); // Getter - _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr); + _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier); it = it->next; // Setter - _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr); + _as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier); it = it->next; } @@ -447,9 +447,11 @@ void InstructionSelection::callValue(IR::Expr *value, IR::ExprList template void InstructionSelection::loadThisObject(IR::Expr *temp) { - _as->loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), JITTargetPlatform::ScratchRegister); - _as->loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, callData)), JITTargetPlatform::ScratchRegister); - _as->copyValue(temp, Address(JITTargetPlatform::ScratchRegister, qOffsetOf(CallData, thisObject))); + WriteBarrier::Type barrier; + Pointer addr = _as->loadAddressForWriting(JITTargetPlatform::ScratchRegister, temp, &barrier); + _as->loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), JITTargetPlatform::ReturnValueRegister); + _as->loadPtr(Address(JITTargetPlatform::ReturnValueRegister, qOffsetOf(ExecutionContext::Data, callData)), JITTargetPlatform::ReturnValueRegister); + _as->copyValue(addr, Address(JITTargetPlatform::ReturnValueRegister, qOffsetOf(CallData, thisObject)), barrier); } template @@ -503,8 +505,9 @@ void InstructionSelection::loadString(const QString &str, IR::Expr { Pointer srcAddr = _as->loadStringAddress(JITTargetPlatform::ReturnValueRegister, str); _as->loadPtr(srcAddr, JITTargetPlatform::ReturnValueRegister); - Pointer destAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, target); - JITAssembler::RegisterSizeDependentOps::loadManagedPointer(_as, JITTargetPlatform::ReturnValueRegister, destAddr); + WriteBarrier::Type barrier; + Pointer destAddr = _as->loadAddressForWriting(JITTargetPlatform::ScratchRegister, target, &barrier); + JITAssembler::RegisterSizeDependentOps::loadManagedPointer(_as, JITTargetPlatform::ReturnValueRegister, destAddr, barrier); } template @@ -713,8 +716,10 @@ void InstructionSelection::copyValue(IR::Expr *source, IR::Expr *t } } + WriteBarrier::Type barrier; + Pointer addr = _as->loadAddressForWriting(JITTargetPlatform::ReturnValueRegister, target, &barrier); // The target is not a physical register, nor is the source. So we can do a memory-to-memory copy: - _as->memcopyValue(_as->loadAddress(JITTargetPlatform::ReturnValueRegister, target), source, JITTargetPlatform::ScratchRegister); + _as->memcopyValue(addr, source, JITTargetPlatform::ScratchRegister, barrier); } template @@ -741,14 +746,13 @@ void InstructionSelection::swapValues(IR::Expr *source, IR::Expr * } else if (!sourceTemp || sourceTemp->kind == IR::Temp::StackSlot) { if (!targetTemp || targetTemp->kind == IR::Temp::StackSlot) { // Note: a swap for two stack-slots can involve different types. - Pointer sAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); - Pointer tAddr = _as->loadAddress(JITTargetPlatform::ReturnValueRegister, target); - // use the implementation in JSC::MacroAssembler, as it doesn't do bit swizzling - auto platformAs = static_cast(_as); - platformAs->loadDouble(sAddr, JITTargetPlatform::FPGpr0); - platformAs->loadDouble(tAddr, JITTargetPlatform::FPGpr1); - platformAs->storeDouble(JITTargetPlatform::FPGpr1, sAddr); - platformAs->storeDouble(JITTargetPlatform::FPGpr0, tAddr); + WriteBarrier::Type barrierForSource, barrierForTarget; + Pointer sAddr = _as->loadAddressForWriting(JITTargetPlatform::ScratchRegister, source, &barrierForSource); + Pointer tAddr = _as->loadAddressForWriting(JITTargetPlatform::ReturnValueRegister, target, &barrierForTarget); + _as->loadRawValue(sAddr, JITTargetPlatform::FPGpr0); + _as->loadRawValue(tAddr, JITTargetPlatform::FPGpr1); + _as->storeRawValue(JITTargetPlatform::FPGpr1, sAddr, barrierForSource); + _as->storeRawValue(JITTargetPlatform::FPGpr0, tAddr, barrierForTarget); return; } } @@ -759,14 +763,15 @@ void InstructionSelection::swapValues(IR::Expr *source, IR::Expr * Q_ASSERT(memExpr); Q_ASSERT(regTemp); - Pointer addr = _as->loadAddress(JITTargetPlatform::ReturnValueRegister, memExpr); + WriteBarrier::Type barrier; + Pointer addr = _as->loadAddressForWriting(JITTargetPlatform::ReturnValueRegister, memExpr, &barrier); if (regTemp->type == IR::DoubleType) { _as->loadDouble(addr, JITTargetPlatform::FPGpr0); - _as->storeDouble((FPRegisterID) regTemp->index, addr); + _as->storeDouble((FPRegisterID) regTemp->index, addr, barrier); _as->moveDouble(JITTargetPlatform::FPGpr0, (FPRegisterID) regTemp->index); } else if (regTemp->type == IR::UInt32Type) { _as->toUInt32Register(addr, JITTargetPlatform::ScratchRegister); - _as->storeUInt32((RegisterID) regTemp->index, addr); + _as->storeUInt32((RegisterID) regTemp->index, addr, barrier); _as->move(JITTargetPlatform::ScratchRegister, (RegisterID) regTemp->index); } else { _as->load32(addr, JITTargetPlatform::ScratchRegister); @@ -915,13 +920,13 @@ void InstructionSelection::convertTypeToDouble(IR::Expr *source, I convertUIntToDouble(source, target); break; case IR::UndefinedType: - _as->loadDouble(_as->loadAddress(JITTargetPlatform::ScratchRegister, source), JITTargetPlatform::FPGpr0); + _as->loadDouble(_as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source), JITTargetPlatform::FPGpr0); _as->storeDouble(JITTargetPlatform::FPGpr0, target); break; case IR::StringType: case IR::VarType: { // load the tag: - Pointer tagAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); + Pointer tagAddr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source); tagAddr.offset += 4; _as->load32(tagAddr, JITTargetPlatform::ScratchRegister); @@ -940,7 +945,7 @@ void InstructionSelection::convertTypeToDouble(IR::Expr *source, I // it is a double: isDbl.link(_as); - Pointer addr2 = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); + Pointer addr2 = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source); IR::Temp *targetTemp = target->asTemp(); if (!targetTemp || targetTemp->kind == IR::Temp::StackSlot) { _as->memcopyValue(target, addr2, JITTargetPlatform::FPGpr0, JITTargetPlatform::ReturnValueRegister); @@ -998,7 +1003,7 @@ void InstructionSelection::convertTypeToBool(IR::Expr *source, IR: _as->storeBool(JITTargetPlatform::ReturnValueRegister, target); case IR::VarType: default: - Pointer addr = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); + Pointer addr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source); Pointer tagAddr = addr; tagAddr.offset += 4; _as->load32(tagAddr, JITTargetPlatform::ReturnValueRegister); @@ -1063,7 +1068,7 @@ void InstructionSelection::convertTypeToSInt32(IR::Expr *source, I case IR::StringType: default: generateRuntimeCall(_as, JITTargetPlatform::ReturnValueRegister, toInt, - _as->loadAddress(JITTargetPlatform::ScratchRegister, source)); + _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source)); _as->storeInt32(JITTargetPlatform::ReturnValueRegister, target); break; } // switch (source->type) @@ -1075,21 +1080,21 @@ void InstructionSelection::convertTypeToUInt32(IR::Expr *source, I switch (source->type) { case IR::VarType: { // load the tag: - Pointer tagAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); + Pointer tagAddr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source); tagAddr.offset += 4; _as->load32(tagAddr, JITTargetPlatform::ScratchRegister); // check if it's an int32: Jump isNoInt = _as->branch32(RelationalCondition::NotEqual, JITTargetPlatform::ScratchRegister, TrustedImm32(Value::Integer_Type_Internal)); - Pointer addr = _as->loadAddress(JITTargetPlatform::ScratchRegister, source); + Pointer addr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source); _as->storeUInt32(_as->toInt32Register(addr, JITTargetPlatform::ScratchRegister), target); Jump intDone = _as->jump(); // not an int: isNoInt.link(_as); generateRuntimeCall(_as, JITTargetPlatform::ReturnValueRegister, toUInt, - _as->loadAddress(JITTargetPlatform::ScratchRegister, source)); + _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, source)); _as->storeInt32(JITTargetPlatform::ReturnValueRegister, target); intDone.link(_as); @@ -1194,7 +1199,7 @@ void InstructionSelection::visitCJump(IR::CJump *s) reg = JITTargetPlatform::ReturnValueRegister; _as->toInt32Register(t, reg); } else { - Address temp = _as->loadAddress(JITTargetPlatform::ScratchRegister, s->cond); + Address temp = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, s->cond); Address tag = temp; tag.offset += QV4::Value::tagOffset(); Jump booleanConversion = _as->branch32(RelationalCondition::NotEqual, tag, TrustedImm32(QV4::Value::Boolean_Type_Internal)); @@ -1299,9 +1304,9 @@ int InstructionSelection::prepareVariableArguments(IR::ExprList* a Q_ASSERT(arg != 0); Pointer dst(_as->stackLayout().argumentAddressForCall(i)); if (arg->asTemp() && arg->asTemp()->kind != IR::Temp::PhysicalRegister) - _as->memcopyValue(dst, arg->asTemp(), JITTargetPlatform::ScratchRegister); + _as->memcopyValue(dst, arg->asTemp(), JITTargetPlatform::ScratchRegister, WriteBarrier::NoBarrier); else - _as->copyValue(dst, arg); + _as->copyValue(dst, arg, WriteBarrier::NoBarrier); } return argc; @@ -1321,9 +1326,9 @@ int InstructionSelection::prepareCallData(IR::ExprList* args, IR:: _as->store32(TrustedImm32(argc), p); p = _as->stackLayout().callDataAddress(qOffsetOf(CallData, thisObject)); if (!thisObject) - _as->storeValue(QV4::Primitive::undefinedValue(), p); + _as->storeValue(QV4::Primitive::undefinedValue(), p, WriteBarrier::NoBarrier); else - _as->copyValue(p, thisObject); + _as->copyValue(p, thisObject, WriteBarrier::NoBarrier); int i = 0; for (IR::ExprList *it = args; it; it = it->next, ++i) { @@ -1331,9 +1336,9 @@ int InstructionSelection::prepareCallData(IR::ExprList* args, IR:: Q_ASSERT(arg != 0); Pointer dst(_as->stackLayout().argumentAddressForCall(i)); if (arg->asTemp() && arg->asTemp()->kind != IR::Temp::PhysicalRegister) - _as->memcopyValue(dst, arg->asTemp(), JITTargetPlatform::ScratchRegister); + _as->memcopyValue(dst, arg->asTemp(), JITTargetPlatform::ScratchRegister, WriteBarrier::NoBarrier); else - _as->copyValue(dst, arg); + _as->copyValue(dst, arg, WriteBarrier::NoBarrier); } return argc; } @@ -1451,7 +1456,7 @@ bool InstructionSelection::visitCJumpStrictNull(IR::Binop *binop, return true; } - Pointer tagAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, varSrc); + Pointer tagAddr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, varSrc); tagAddr.offset += 4; const RegisterID tagReg = JITTargetPlatform::ScratchRegister; _as->load32(tagAddr, tagReg); @@ -1534,7 +1539,7 @@ bool InstructionSelection::visitCJumpStrictBool(IR::Binop *binop, return true; } - Pointer otherAddr = _as->loadAddress(JITTargetPlatform::ReturnValueRegister, otherSrc); + Pointer otherAddr = _as->loadAddressForReading(JITTargetPlatform::ReturnValueRegister, otherSrc); otherAddr.offset += 4; // tag address // check if the tag of the var operand is indicates 'boolean' @@ -1583,7 +1588,7 @@ bool InstructionSelection::visitCJumpNullUndefined(IR::Type nullOr return true; } - Pointer tagAddr = _as->loadAddress(JITTargetPlatform::ScratchRegister, varSrc); + Pointer tagAddr = _as->loadAddressForReading(JITTargetPlatform::ScratchRegister, varSrc); tagAddr.offset += 4; const RegisterID tagReg = JITTargetPlatform::ReturnValueRegister; _as->load32(tagAddr, tagReg); diff --git a/src/qml/jit/qv4isel_masm_p.h b/src/qml/jit/qv4isel_masm_p.h index 5764c3946e..0d02284539 100644 --- a/src/qml/jit/qv4isel_masm_p.h +++ b/src/qml/jit/qv4isel_masm_p.h @@ -209,7 +209,7 @@ private: _as->convertInt32ToDouble((RegisterID) sourceTemp->index, (FPRegisterID) targetTemp->index); } else { - _as->convertInt32ToDouble(_as->loadAddress(JITTargetPlatform::ReturnValueRegister, sourceTemp), + _as->convertInt32ToDouble(_as->loadAddressForReading(JITTargetPlatform::ReturnValueRegister, sourceTemp), (FPRegisterID) targetTemp->index); } } else { @@ -223,7 +223,7 @@ private: _as->convertInt32ToDouble(_as->toInt32Register(source, JITTargetPlatform::ScratchRegister), JITTargetPlatform::FPGpr0); - _as->storeDouble(JITTargetPlatform::FPGpr0, _as->loadAddress(JITTargetPlatform::ReturnValueRegister, target)); + _as->storeDouble(JITTargetPlatform::FPGpr0, target); } void convertUIntToDouble(IR::Expr *source, IR::Expr *target) @@ -240,7 +240,7 @@ private: _as->convertUInt32ToDouble(_as->toUInt32Register(source, tmpReg), JITTargetPlatform::FPGpr0, tmpReg); - _as->storeDouble(JITTargetPlatform::FPGpr0, _as->loadAddress(tmpReg, target)); + _as->storeDouble(JITTargetPlatform::FPGpr0, target); } void convertIntToBool(IR::Expr *source, IR::Expr *target) diff --git a/src/qml/memory/qv4writebarrier_p.h b/src/qml/memory/qv4writebarrier_p.h index 1b4505c17f..c0f508f962 100644 --- a/src/qml/memory/qv4writebarrier_p.h +++ b/src/qml/memory/qv4writebarrier_p.h @@ -59,6 +59,11 @@ namespace QV4 { namespace WriteBarrier { +enum Type { + NoBarrier, + Barrier +}; + inline void write(QV4::ExecutionEngine *engine, QV4::Heap::Base *base, QV4::Value *slot, QV4::Value value) { Q_UNUSED(engine); -- cgit v1.2.3 From 05de4e044f92dd278a00e410be8f070bc4d66e6f Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 15 Feb 2017 15:40:42 +0100 Subject: Smaller cleanup Change-Id: I68de47784c41b7aa2da5334c6a7f470d1180b752 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4regexpobject.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index f8ad11fa98..85e37ebe82 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -74,8 +74,8 @@ void Heap::RegExpObject::init() Object::init(); Scope scope(internalClass->engine); Scoped o(scope, this); - o->d()->value.set(scope.engine, QV4::RegExp::create(scope.engine, QString(), false, false)); - o->d()->global = false; + value.set(scope.engine, QV4::RegExp::create(scope.engine, QString(), false, false)); + global = false; o->initProperties(); } -- cgit v1.2.3 From 2a554434a571dcefd26cf10ef8c5ae8b3b7d66db Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 8 Feb 2017 16:21:02 +0100 Subject: Implement a real write barrier Implement a Steel write barrier for our objects. The barrier is interesting as it can also be used for incremental GC runs by simply turning the barrier on and leaving old objects marked as black. Change-Id: I0b273974d94a990dee3cd9298089b8b202c75bf2 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4jsir_p.h | 10 +++ src/qml/jit/qv4assembler.cpp | 22 +++--- src/qml/jit/qv4assembler_p.h | 155 +++++++++++++++++++++++++++++++++---- src/qml/jit/qv4isel_masm.cpp | 1 + src/qml/jsruntime/qv4context.cpp | 11 +++ src/qml/jsruntime/qv4context_p.h | 12 +-- src/qml/jsruntime/qv4engine.cpp | 6 +- src/qml/jsruntime/qv4engine_p.h | 8 +- src/qml/jsruntime/qv4lookup.cpp | 2 +- src/qml/jsruntime/qv4object_p.h | 2 + src/qml/memory/qv4heap_p.h | 6 ++ src/qml/memory/qv4mm.cpp | 2 + src/qml/memory/qv4mm_p.h | 13 ++-- src/qml/memory/qv4mmdefs_p.h | 11 +++ src/qml/memory/qv4writebarrier_p.h | 100 +++++++++++++++++++++--- 15 files changed, 296 insertions(+), 65 deletions(-) diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 8ddeb71f69..756d90a033 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -1367,6 +1367,15 @@ struct Function { } return !f->canUseSimpleCall(); } + int localsCountForScope(ArgLocal *al) const { + uint scope = al->scope; + const IR::Function *f = this; + while (scope) { + f = f->outer; + --scope; + } + return f->locals.size(); + } private: BasicBlock *getOrCreateBasicBlock(int index); @@ -1436,6 +1445,7 @@ public: ArgLocal *newArgLocal = f->New(); newArgLocal->init(argLocal->kind, argLocal->index, argLocal->scope); newArgLocal->type = argLocal->type; + newArgLocal->isArgumentsOrEval = argLocal->isArgumentsOrEval; return newArgLocal; } diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 59470aeea2..687c35adfa 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -271,22 +271,28 @@ template typename Assembler::Pointer Assembler::loadArgLocalAddressForWriting(RegisterID baseReg, IR::ArgLocal *al, WriteBarrier::Type *barrier) { + if (barrier) + *barrier = _function->argLocalRequiresWriteBarrier(al) ? WriteBarrier::Barrier : WriteBarrier::NoBarrier; + int32_t offset = 0; int scope = al->scope; loadPtr(Address(EngineRegister, qOffsetOf(ExecutionEngine, current)), baseReg); - if (scope) { + while (scope) { loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, outer)), baseReg); --scope; - while (scope) { - loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, outer)), baseReg); - --scope; - } } switch (al->kind) { case IR::ArgLocal::Formal: case IR::ArgLocal::ScopedFormal: { - loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, callData)), baseReg); - offset = sizeof(CallData) + (al->index - 1) * sizeof(Value); + if (barrier && *barrier == WriteBarrier::Barrier) { + // if we need a barrier, the baseReg has to point to the ExecutionContext + // callData comes directly after locals, calculate the offset using that + offset = qOffsetOf(CallContext::Data, locals.values) + _function->localsCountForScope(al) * sizeof(Value); + offset += sizeof(CallData) + (al->index - 1) * sizeof(Value); + } else { + loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, callData)), baseReg); + offset = sizeof(CallData) + (al->index - 1) * sizeof(Value); + } } break; case IR::ArgLocal::Local: case IR::ArgLocal::ScopedLocal: { @@ -295,8 +301,6 @@ Assembler::loadArgLocalAddressForWriting(RegisterID baseReg default: Q_UNREACHABLE(); } - if (barrier) - *barrier = _function->argLocalRequiresWriteBarrier(al) ? WriteBarrier::Barrier : WriteBarrier::NoBarrier; return Pointer(baseReg, offset); } diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 6e95b29ca7..d56b54f491 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -154,6 +154,56 @@ struct RegisterSizeDependentAssemblerpush(TargetPlatform::EngineRegister); // free up one register for work + + RegisterID grayBitmap = returnValueUsed ? TargetPlatform::ScratchRegister : TargetPlatform::ReturnValueRegister; + as->move(base, grayBitmap); + Q_ASSERT(base != grayBitmap); + as->urshift32(TrustedImm32(Chunk::ChunkShift), grayBitmap); + as->lshift32(TrustedImm32(Chunk::ChunkShift), grayBitmap); + Q_STATIC_ASSERT(offsetof(Chunk, grayBitmap) == 0); + + RegisterID index = base; + as->move(base, index); + as->sub32(grayBitmap, index); + as->urshift32(TrustedImm32(Chunk::SlotSizeShift), index); + RegisterID grayIndex = TargetPlatform::EngineRegister; + as->move(index, grayIndex); + as->urshift32(TrustedImm32(Chunk::BitShift), grayIndex); + as->lshift32(TrustedImm32(2), grayIndex); // 4 bytes per quintptr + as->add32(grayIndex, grayBitmap); + as->and32(TrustedImm32(Chunk::Bits - 1), index); + + RegisterID bit = TargetPlatform::EngineRegister; + as->move(TrustedImm32(1), bit); + as->lshift32(index, bit); + + as->load32(Pointer(grayBitmap, 0), index); + as->or32(bit, index); + as->store32(index, Pointer(grayBitmap, 0)); + + as->pop(TargetPlatform::EngineRegister); + } + +#if WRITEBARRIER(steele) + static void emitWriteBarrier(JITAssembler *as, Address addr) + { +// RegisterID test = addr.base == TargetPlatform::ReturnValueRegister ? TargetPlatform::ScratchRegister : TargetPlatform::ReturnValueRegister; + // if (engine->writeBarrier) +// as->load8(Address(TargetPlatform::EngineRegister, offsetof(EngineBase, writeBarrierActive)), test); +// typename JITAssembler::Jump jump = as->branch32(JITAssembler::Equal, test, TrustedImm32(0)); + // ### emit fence + emitSetGrayBit(as, addr.base); +// jump.link(as); + } +#elif WRITEBARRIER(none) + static Q_ALWAYS_INLINE void emitWriteBarrier(JITAssembler *, Address) {} +#endif + static void loadDouble(JITAssembler *as, Address addr, FPRegisterID dest) { as->MacroAssembler::loadDouble(addr, dest); @@ -161,8 +211,9 @@ struct RegisterSizeDependentAssemblerMacroAssembler::storeDouble(source, addr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, addr); } static void storeDouble(JITAssembler *as, FPRegisterID source, IR::Expr* target) @@ -174,18 +225,23 @@ struct RegisterSizeDependentAssemblerstore32(TrustedImm32(value.int_32()), destination); destination.offset += 4; as->store32(TrustedImm32(value.tag()), destination); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, destination); } template static void copyValueViaRegisters(JITAssembler *as, Source source, Destination destination, WriteBarrier::Type barrier) { - Q_UNUSED(barrier); as->loadDouble(source, TargetPlatform::FPGpr0); - as->storeDouble(TargetPlatform::FPGpr0, destination, barrier); + // We need to pass NoBarrier to storeDouble and call emitWriteBarrier ourselves, as the + // code in storeDouble assumes the type we're storing is actually a double, something + // that isn't always the case here. + as->storeDouble(TargetPlatform::FPGpr0, destination, WriteBarrier::NoBarrier); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, destination); } static void loadDoubleConstant(JITAssembler *as, IR::Const *c, FPRegisterID target) @@ -200,11 +256,12 @@ struct RegisterSizeDependentAssemblerstore32(TargetPlatform::LowReturnValueRegister, destination); destination.offset += 4; as->store32(TargetPlatform::HighReturnValueRegister, destination); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, dest); } static void setFunctionReturnValueFromTemp(JITAssembler *as, IR::Temp *t) @@ -331,10 +388,11 @@ struct RegisterSizeDependentAssemblerload32(addr, TargetPlatform::ReturnValueRegister); WriteBarrier::Type barrier; Pointer targetAddr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); - Q_UNUSED(barrier); as->store32(TargetPlatform::ReturnValueRegister, targetAddr); targetAddr.offset += 4; as->store32(TrustedImm32(Value::Integer_Type_Internal), targetAddr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, targetAddr); } else { as->load32(addr, (RegisterID) targetTemp->index); } @@ -351,10 +409,11 @@ struct RegisterSizeDependentAssemblerstore32(registerWithPtr, destAddr); destAddr.offset += 4; as->store32(TrustedImm32(QV4::Value::Managed_Type_Internal_32), destAddr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, destAddr); } static Jump generateIsDoubleCheck(JITAssembler *as, RegisterID tagOrValueRegister) @@ -393,6 +452,56 @@ struct RegisterSizeDependentAssemblerpush(TargetPlatform::EngineRegister); // free up one register for work + + RegisterID grayBitmap = returnValueUsed ? TargetPlatform::ScratchRegister : TargetPlatform::ReturnValueRegister; + as->move(base, grayBitmap); + Q_ASSERT(base != grayBitmap); + as->urshift64(TrustedImm32(Chunk::ChunkShift), grayBitmap); + as->lshift64(TrustedImm32(Chunk::ChunkShift), grayBitmap); + Q_STATIC_ASSERT(offsetof(Chunk, grayBitmap) == 0); + + RegisterID index = base; + as->move(base, index); + as->sub64(grayBitmap, index); + as->urshift64(TrustedImm32(Chunk::SlotSizeShift), index); + RegisterID grayIndex = TargetPlatform::EngineRegister; + as->move(index, grayIndex); + as->urshift64(TrustedImm32(Chunk::BitShift), grayIndex); + as->lshift64(TrustedImm32(3), grayIndex); // 8 bytes per quintptr + as->add64(grayIndex, grayBitmap); + as->and64(TrustedImm32(Chunk::Bits - 1), index); + + RegisterID bit = TargetPlatform::EngineRegister; + as->move(TrustedImm32(1), bit); + as->lshift64(index, bit); + + as->load64(Pointer(grayBitmap, 0), index); + as->or64(bit, index); + as->store64(index, Pointer(grayBitmap, 0)); + + as->pop(TargetPlatform::EngineRegister); + } + +#if WRITEBARRIER(steele) + static void emitWriteBarrier(JITAssembler *as, Address addr) + { +// RegisterID test = addr.base == TargetPlatform::ReturnValueRegister ? TargetPlatform::ScratchRegister : TargetPlatform::ReturnValueRegister; + // if (engine->writeBarrier) +// as->load8(Address(TargetPlatform::EngineRegister, offsetof(EngineBase, writeBarrierActive)), test); +// typename JITAssembler::Jump jump = as->branch32(JITAssembler::Equal, test, TrustedImm32(0)); + // ### emit fence + emitSetGrayBit(as, addr.base); +// jump.link(as); + } +#elif WRITEBARRIER(none) + static Q_ALWAYS_INLINE void emitWriteBarrier(JITAssembler *, Address) {} +#endif + static void loadDouble(JITAssembler *as, Address addr, FPRegisterID dest) { as->load64(addr, TargetPlatform::ReturnValueRegister); @@ -402,10 +511,11 @@ struct RegisterSizeDependentAssemblermoveDoubleTo64(source, TargetPlatform::ReturnValueRegister); as->xor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); as->store64(TargetPlatform::ReturnValueRegister, addr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, addr); } static void storeDouble(JITAssembler *as, FPRegisterID source, IR::Expr* target) @@ -414,8 +524,9 @@ struct RegisterSizeDependentAssemblerxor64(TargetPlatform::DoubleMaskRegister, TargetPlatform::ReturnValueRegister); WriteBarrier::Type barrier; Pointer ptr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); - Q_UNUSED(barrier); as->store64(TargetPlatform::ReturnValueRegister, ptr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, ptr); } static void storeReturnValue(JITAssembler *as, FPRegisterID dest) @@ -426,8 +537,9 @@ struct RegisterSizeDependentAssemblerstore64(TargetPlatform::ReturnValueRegister, dest); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, dest); } static void setFunctionReturnValueFromTemp(JITAssembler *as, IR::Temp *t) @@ -479,8 +591,9 @@ struct RegisterSizeDependentAssemblerstore64(TrustedImm64(value.rawValue()), destination); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, destination); } template @@ -636,10 +749,11 @@ struct RegisterSizeDependentAssemblerkind == IR::Temp::StackSlot) { WriteBarrier::Type barrier; Pointer targetAddr = as->loadAddressForWriting(TargetPlatform::ScratchRegister, target, &barrier); - Q_UNUSED(barrier); as->store32(TargetPlatform::ReturnValueRegister, targetAddr); targetAddr.offset += 4; as->store32(TrustedImm32(Value::Integer_Type_Internal), targetAddr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, targetAddr); } else { as->storeInt32(TargetPlatform::ReturnValueRegister, target); } @@ -647,8 +761,9 @@ struct RegisterSizeDependentAssemblerstore64(registerWithPtr, destAddr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + emitWriteBarrier(as, destAddr); } static Jump generateIsDoubleCheck(JITAssembler *as, RegisterID tagOrValueRegister) @@ -1261,8 +1376,9 @@ public: void storeRawValue(FPRegisterID source, Pointer dest, WriteBarrier::Type barrier) { - Q_UNUSED(barrier); TargetConfiguration::MacroAssembler::storeDouble(source, dest); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + RegisterSizeDependentOps::emitWriteBarrier(this, dest); } void storeValue(QV4::Primitive value, RegisterID destination) @@ -1279,6 +1395,11 @@ public: void storeValue(QV4::Primitive value, IR::Expr* temp); + void emitWriteBarrier(Address addr, WriteBarrier::Type barrier) { + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + RegisterSizeDependentOps::emitWriteBarrier(this, addr); + } + void enterStandardStackFrame(const RegisterInformation ®ularRegistersToSave, const RegisterInformation &fpRegistersToSave); void leaveStandardStackFrame(const RegisterInformation ®ularRegistersToSave, @@ -1471,10 +1592,11 @@ public: void storeBool(RegisterID reg, Pointer addr, WriteBarrier::Type barrier) { - Q_UNUSED(barrier); store32(reg, addr); addr.offset += 4; store32(TrustedImm32(QV4::Primitive::fromBoolean(0).tag()), addr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + RegisterSizeDependentOps::emitWriteBarrier(this, addr); } void storeBool(RegisterID src, RegisterID dest) @@ -1517,10 +1639,11 @@ public: void storeInt32(RegisterID reg, Pointer addr, WriteBarrier::Type barrier) { - Q_UNUSED(barrier); store32(reg, addr); addr.offset += 4; store32(TrustedImm32(QV4::Primitive::fromInt32(0).tag()), addr); + if (WriteBarrier::isRequired() && barrier == WriteBarrier::Barrier) + RegisterSizeDependentOps::emitWriteBarrier(this, addr); } void storeInt32(RegisterID reg, IR::Expr *target) diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index f4bbedad43..5b57d29bca 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -791,6 +791,7 @@ void InstructionSelection::swapValues(IR::Expr *source, IR::Expr * Q_UNREACHABLE(); } _as->store32(TrustedImm32(tag), addr); + _as->emitWriteBarrier(addr, barrier); } _as->move(JITTargetPlatform::ScratchRegister, (RegisterID) regTemp->index); } diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index a9b0d67630..7a0df5dbf3 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -176,6 +176,17 @@ void Heap::CatchContext::init(ExecutionContext *outerContext, String *exceptionV this->exceptionValue.set(engine, exceptionValue); } +void Heap::WithContext::init(ExecutionContext *outerContext, Object *with) +{ + Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_WithContext); + outer.set(engine, outerContext); + callData = outer->callData; + lookups = outer->lookups; + constantTable = outer->constantTable; + compilationUnit = outer->compilationUnit; + + withObject.set(engine, with); +} Identifier * const *SimpleCallContext::formals() const { diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index a405da0f57..79e5f74d8f 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -186,17 +186,7 @@ V4_ASSERT_IS_TRIVIAL(CatchContext) DECLARE_HEAP_OBJECT(WithContext, ExecutionContext) { DECLARE_MARK_TABLE(WithContext); - void init(ExecutionContext *outerContext, Object *with) - { - Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_WithContext); - outer.set(engine, outerContext); - callData = outer->callData; - lookups = outer->lookups; - constantTable = outer->constantTable; - compilationUnit = outer->compilationUnit; - - withObject.set(engine, with); - } + void init(ExecutionContext *outerContext, Object *with); }; V4_ASSERT_IS_TRIVIAL(WithContext) diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 02cd19008a..ab5ced9f58 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -130,9 +130,7 @@ QQmlEngine *ExecutionEngine::qmlEngine() const qint32 ExecutionEngine::maxCallDepth = -1; ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) - : current(0) - , hasException(false) - , callDepth(0) + : callDepth(0) , memoryManager(new QV4::MemoryManager(this)) , executableAllocator(new QV4::ExecutableAllocator) , regExpAllocator(new QV4::ExecutableAllocator) @@ -151,6 +149,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) , m_profiler(0) #endif { + writeBarrierActive = true; + if (maxCallDepth == -1) { bool ok = false; maxCallDepth = qEnvironmentVariableIntValue("QV4_MAX_CALL_DEPTH", &ok); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 2ac3a77e29..6de087a4e2 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -88,7 +88,7 @@ struct CompilationUnit; struct InternalClass; struct InternalClassPool; -struct Q_QML_EXPORT ExecutionEngine +struct Q_QML_EXPORT ExecutionEngine : public EngineBase { private: static qint32 maxCallDepth; @@ -97,12 +97,6 @@ private: friend struct ExecutionContext; friend struct Heap::ExecutionContext; public: - Heap::ExecutionContext *current; - - Value *jsStackTop; - quint8 hasException; - quint8 writeBarrierActive = false; - quint16 unused = 0; qint32 callDepth; MemoryManager *memoryManager; diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index 9fc11a2d2d..11d7767e05 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -772,7 +772,7 @@ void Lookup::setter0(Lookup *l, ExecutionEngine *engine, Value &object, const Va { Object *o = object.as(); if (o && o->internalClass() == l->classList[0]) { - o->setProperty(l->index, value); + o->setProperty(engine, l->index, value); return; } diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index c0169ed035..df9d68525d 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -204,6 +204,8 @@ struct Q_QML_EXPORT Object: Managed { void setProperty(uint index, const Property *p); void setProperty(uint index, Value v) const { d()->setProperty(engine(), index, v); } void setProperty(uint index, Heap::Base *b) const { d()->setProperty(engine(), index, b); } + void setProperty(ExecutionEngine *engine, uint index, Value v) const { d()->setProperty(engine, index, v); } + void setProperty(ExecutionEngine *engine, uint index, Heap::Base *b) const { d()->setProperty(engine, index, b); } const ObjectVTable *vtable() const { return reinterpret_cast(d()->vtable()); } Heap::Object *prototype() const { return d()->prototype; } diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index bcd1af7705..7bedd705f9 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -113,6 +113,12 @@ struct Q_QML_EXPORT Base { Q_ASSERT(!Chunk::testBit(c->extendsBitmap, h - c->realBase())); return Chunk::setBit(c->blackBitmap, h - c->realBase()); } + inline void setGrayBit() { + const HeapItem *h = reinterpret_cast(this); + Chunk *c = h->chunk(); + Q_ASSERT(!Chunk::testBit(c->extendsBitmap, h - c->realBase())); + return Chunk::setBit(c->grayBitmap, h - c->realBase()); + } inline bool inUse() const { const HeapItem *h = reinterpret_cast(this); diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index f42d509942..8f4f2f4aa8 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -251,7 +251,9 @@ void Chunk::sweep() // DEBUG << "sweeping chunk" << this << (*freeList); HeapItem *o = realBase(); for (uint i = 0; i < Chunk::EntriesInBitmap; ++i) { +#if WRITEBARRIER(none) Q_ASSERT((grayBitmap[i] | blackBitmap[i]) == blackBitmap[i]); // check that we don't have gray only objects +#endif quintptr toFree = objectBitmap[i] ^ blackBitmap[i]; Q_ASSERT((toFree & objectBitmap[i]) == toFree); // check all black objects are marked as being used quintptr e = extendsBitmap[i]; diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 6e9303acb6..3e542b0aa3 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -80,27 +80,28 @@ struct StackAllocator { StackAllocator(ChunkAllocator *chunkAlloc); T *allocate() { - T *m = nextFree->as(); + HeapItem *m = nextFree; if (Q_UNLIKELY(nextFree == lastInChunk)) { nextChunk(); } else { nextFree += requiredSlots; } -#if MM_DEBUG +#if !defined(QT_NO_DEBUG) || defined(MM_DEBUG) Chunk *c = m->chunk(); Chunk::setBit(c->objectBitmap, m - c->realBase()); #endif - return m; + return m->as(); } void free() { -#if MM_DEBUG - Chunk::clearBit(item->chunk()->objectBitmap, item - item->chunk()->realBase()); -#endif if (Q_UNLIKELY(nextFree == firstInChunk)) { prevChunk(); } else { nextFree -= requiredSlots; } +#if !defined(QT_NO_DEBUG) || defined(MM_DEBUG) + Chunk *c = nextFree->chunk(); + Chunk::clearBit(c->objectBitmap, nextFree - c->realBase()); +#endif } void nextChunk(); diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 3f65e97d86..987e669040 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -255,6 +255,17 @@ Q_STATIC_ASSERT(sizeof(HeapItem) == Chunk::SlotSize); Q_STATIC_ASSERT(QT_POINTER_SIZE*8 == Chunk::Bits); Q_STATIC_ASSERT((1 << Chunk::BitShift) == Chunk::Bits); +// Base class for the execution engine + +struct EngineBase { + Heap::ExecutionContext *current = 0; + + Value *jsStackTop = 0; + quint8 hasException = false; + quint8 writeBarrierActive = false; + quint16 unused = 0; +}; + // Some helper classes and macros to automate the generation of our // tables used for marking objects diff --git a/src/qml/memory/qv4writebarrier_p.h b/src/qml/memory/qv4writebarrier_p.h index c0f508f962..838ed7a456 100644 --- a/src/qml/memory/qv4writebarrier_p.h +++ b/src/qml/memory/qv4writebarrier_p.h @@ -55,6 +55,11 @@ QT_BEGIN_NAMESPACE +#define WRITEBARRIER_steele -1 +#define WRITEBARRIER_none 1 + +#define WRITEBARRIER(x) (1/WRITEBARRIER_##x == 1) + namespace QV4 { namespace WriteBarrier { @@ -64,20 +69,79 @@ enum Type { Barrier }; -inline void write(QV4::ExecutionEngine *engine, QV4::Heap::Base *base, QV4::Value *slot, QV4::Value value) +enum NewValueType { + Primitive, + Object, + Unknown +}; + +// ### this needs to be filled with a real memory fence once marking is concurrent +Q_ALWAYS_INLINE void fence() {} + +#if WRITEBARRIER(steele) + +template +static Q_CONSTEXPR inline bool isRequired() { + return type != Primitive; +} + +inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Value value) +{ + *slot = value; + if (engine->writeBarrierActive && isRequired()) { + fence(); + base->setGrayBit(); + } +} + +inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Heap::Base *value) +{ + *slot = value; + if (engine->writeBarrierActive && isRequired()) { + fence(); + base->setGrayBit(); + } +} + +inline void write(EngineBase *engine, Heap::Base *base, Heap::Base **slot, Heap::Base *value) +{ + *slot = value; + if (engine->writeBarrierActive) { + fence(); + base->setGrayBit(); + } +} + +#elif WRITEBARRIER(none) + +template +static Q_CONSTEXPR inline bool isRequired() { + return false; +} + +inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Value value) +{ + Q_UNUSED(engine); + Q_UNUSED(base); + *slot = value; +} + +inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Heap::Base *value) { Q_UNUSED(engine); Q_UNUSED(base); *slot = value; } -inline void write(QV4::ExecutionEngine *engine, QV4::Heap::Base *base, QV4::Heap::Base **slot, QV4::Heap::Base *value) +inline void write(EngineBase *engine, Heap::Base *base, Heap::Base **slot, Heap::Base *value) { Q_UNUSED(engine); Q_UNUSED(base); *slot = value; } +#endif + } namespace Heap { @@ -88,9 +152,14 @@ struct Pointer { T operator->() const { return ptr; } operator T () const { return ptr; } + Heap::Base *base() { + Heap::Base *base = reinterpret_cast(this) - (offset/sizeof(Heap::Base)); + Q_ASSERT(base->inUse()); + return base; + } + void set(ExecutionEngine *e, T newVal) { - Q_UNUSED(e); - ptr = newVal; + WriteBarrier::write(e, base(), reinterpret_cast(&ptr), reinterpret_cast(newVal)); } template @@ -106,9 +175,14 @@ V4_ASSERT_IS_TRIVIAL(V4PointerCheck) template struct HeapValue : Value { + Heap::Base *base() { + Heap::Base *base = reinterpret_cast(this) - (offset/sizeof(Heap::Base)); + Q_ASSERT(base->inUse()); + return base; + } + void set(ExecutionEngine *e, const Value &newVal) { - Q_UNUSED(e); - setRawValue(newVal.rawValue()); + WriteBarrier::write(e, base(), this, newVal); } }; @@ -118,15 +192,17 @@ struct ValueArray { uint alloc; Value values[1]; + Heap::Base *base() { + Heap::Base *base = reinterpret_cast(this) - (offset/sizeof(Heap::Base)); + Q_ASSERT(base->inUse()); + return base; + } + void set(ExecutionEngine *e, uint index, Value v) { - Q_UNUSED(e); - Q_ASSERT(index < alloc); - values[index] = v; + WriteBarrier::write(e, base(), values + index, v); } void set(ExecutionEngine *e, uint index, Heap::Base *b) { - Q_UNUSED(e); - Q_ASSERT(index < alloc); - values[index] = b; + WriteBarrier::write(e, base(), values + index, b); } inline const Value &operator[] (uint index) const { Q_ASSERT(index < alloc); -- cgit v1.2.3 From e772081db104e09e95ed09e8d1f0076e07fc53f6 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 15 Feb 2017 15:40:27 +0100 Subject: Incremental garbage collection Add an incremental mode to the garbage collector, that will get used for many collections. This should significantly reduce average stop times for GC. Make sure that manual calls to gc() still do a full collection, to ensure consistency and keep tests that rely on gc() working. Change-Id: I87b13529377b7639ce993dbd99e85ff0a555acd8 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4compileddata.cpp | 13 ++- src/qml/jsapi/qjsengine.cpp | 2 +- src/qml/jsruntime/qv4engine.cpp | 28 +++--- src/qml/jsruntime/qv4engine_p.h | 2 +- src/qml/jsruntime/qv4identifiertable.cpp | 1 + src/qml/memory/qv4mm.cpp | 153 +++++++++++++++++++++++++++++-- src/qml/memory/qv4mm_p.h | 7 +- src/qml/memory/qv4mmdefs_p.h | 2 + src/qml/memory/qv4writebarrier_p.h | 17 ++-- src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 2 +- 10 files changed, 192 insertions(+), 35 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index c25a139379..d0dfb81f80 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -132,8 +132,10 @@ QV4::Function *CompilationUnit::linkToEngine(ExecutionEngine *engine) runtimeStrings = (QV4::Heap::String **)malloc(data->stringTableSize * sizeof(QV4::Heap::String*)); // memset the strings to 0 in case a GC run happens while we're within the loop below memset(runtimeStrings, 0, data->stringTableSize * sizeof(QV4::Heap::String*)); - for (uint i = 0; i < data->stringTableSize; ++i) + for (uint i = 0; i < data->stringTableSize; ++i) { runtimeStrings[i] = engine->newIdentifier(data->stringAt(i)); + runtimeStrings[i]->setMarkBit(); + } runtimeRegularExpressions = new QV4::Value[data->regexpTableSize]; // memset the regexps to 0 in case a GC run happens while we're within the loop below @@ -147,7 +149,14 @@ QV4::Function *CompilationUnit::linkToEngine(ExecutionEngine *engine) flags |= IR::RegExp::RegExp_IgnoreCase; if (re->flags & CompiledData::RegExp::RegExp_Multiline) flags |= IR::RegExp::RegExp_Multiline; - runtimeRegularExpressions[i] = engine->newRegExpObject(data->stringAt(re->stringIndex), flags); + QV4::Heap::RegExpObject *ro = engine->newRegExpObject(data->stringAt(re->stringIndex), flags); + runtimeRegularExpressions[i] = ro; +#if WRITEBARRIER(steele) + if (engine->memoryManager->nextGCIsIncremental) { + ro->setMarkBit(); + ro->setGrayBit(); + } +#endif } if (data->lookupTableSize) { diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index e4c150057a..b52c859ecb 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -333,7 +333,7 @@ QJSEngine::~QJSEngine() */ void QJSEngine::collectGarbage() { - d->m_v4Engine->memoryManager->runGC(); + d->m_v4Engine->memoryManager->runGC(/* forceFullCollection = */ true); } #if QT_DEPRECATED_SINCE(5, 6) diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index ab5ced9f58..899fd499df 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -931,23 +931,25 @@ void ExecutionEngine::requireArgumentsAccessors(int n) } } -void ExecutionEngine::markObjects() +void ExecutionEngine::markObjects(bool incremental) { - identifierTable->mark(this); + if (!incremental) { + identifierTable->mark(this); - for (int i = 0; i < nArgumentsAccessors; ++i) { - const Property &pd = argumentsAccessors[i]; - if (Heap::FunctionObject *getter = pd.getter()) - getter->mark(this); - if (Heap::FunctionObject *setter = pd.setter()) - setter->mark(this); - } + for (int i = 0; i < nArgumentsAccessors; ++i) { + const Property &pd = argumentsAccessors[i]; + if (Heap::FunctionObject *getter = pd.getter()) + getter->mark(this); + if (Heap::FunctionObject *setter = pd.setter()) + setter->mark(this); + } - classPool->markObjects(this); + classPool->markObjects(this); - for (QSet::ConstIterator it = compilationUnits.constBegin(), end = compilationUnits.constEnd(); - it != end; ++it) - (*it)->markObjects(this); + for (QSet::ConstIterator it = compilationUnits.constBegin(), end = compilationUnits.constEnd(); + it != end; ++it) + (*it)->markObjects(this); + } } ReturnedValue ExecutionEngine::throwError(const Value &value) diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 6de087a4e2..395a7c7250 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -450,7 +450,7 @@ public: void requireArgumentsAccessors(int n); - void markObjects(); + void markObjects(bool incremental); void initRootContext(); diff --git a/src/qml/jsruntime/qv4identifiertable.cpp b/src/qml/jsruntime/qv4identifiertable.cpp index 3def6defbf..d3ef238716 100644 --- a/src/qml/jsruntime/qv4identifiertable.cpp +++ b/src/qml/jsruntime/qv4identifiertable.cpp @@ -81,6 +81,7 @@ void IdentifierTable::addEntry(Heap::String *str) str->identifier = new Identifier; str->identifier->string = str->toQString(); str->identifier->hashValue = hash; + str->setMarkBit(); bool grow = (alloc <= size*2); diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 8f4f2f4aa8..f3ee397d22 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -282,7 +282,7 @@ void Chunk::sweep() } } objectBitmap[i] = blackBitmap[i]; - blackBitmap[i] = 0; + grayBitmap[i] = 0; extendsBitmap[i] = e; o += Chunk::Bits; } @@ -321,13 +321,56 @@ void Chunk::freeAll() } } objectBitmap[i] = 0; - blackBitmap[i] = 0; + grayBitmap[i] = 0; extendsBitmap[i] = e; o += Chunk::Bits; } // DEBUG << "swept chunk" << this << "freed" << slotsFreed << "slots."; } +void Chunk::resetBlackBits() +{ + memset(blackBitmap, 0, sizeof(blackBitmap)); +} + +#ifndef QT_NO_DEBUG +static uint nGrayItems = 0; +#endif + +void Chunk::collectGrayItems(ExecutionEngine *engine) +{ + // DEBUG << "sweeping chunk" << this << (*freeList); + HeapItem *o = realBase(); + for (uint i = 0; i < Chunk::EntriesInBitmap; ++i) { +#if WRITEBARRIER(none) + Q_ASSERT((grayBitmap[i] | blackBitmap[i]) == blackBitmap[i]); // check that we don't have gray only objects +#endif + quintptr toMark = blackBitmap[i] & grayBitmap[i]; // correct for a Steele type barrier + Q_ASSERT((toMark & objectBitmap[i]) == toMark); // check all black objects are marked as being used + // DEBUG << hex << " index=" << i << toFree; + while (toMark) { + uint index = qCountTrailingZeroBits(toMark); + quintptr bit = (static_cast(1) << index); + + toMark ^= bit; // mask out marked slot + // DEBUG << " index" << hex << index << toFree; + + HeapItem *itemToFree = o + index; + Heap::Base *b = *itemToFree; + Q_ASSERT(b->inUse()); + engine->pushForGC(b); +#ifndef QT_NO_DEBUG + ++nGrayItems; +// qDebug() << "adding gray item" << b << "to mark stack"; +#endif + } + grayBitmap[i] = 0; + o += Chunk::Bits; + } + // DEBUG << "swept chunk" << this << "freed" << slotsFreed << "slots."; + +} + void Chunk::sortIntoBins(HeapItem **bins, uint nBins) { // qDebug() << "sortIntoBins:"; @@ -557,6 +600,19 @@ void BlockAllocator::freeAll() } } +void BlockAllocator::resetBlackBits() +{ + for (auto c : chunks) + c->resetBlackBits(); +} + +void BlockAllocator::collectGrayItems(ExecutionEngine *engine) +{ + for (auto c : chunks) + c->collectGrayItems(engine); + +} + #if MM_DEBUG void BlockAllocator::stats() { DEBUG << "MM stats:"; @@ -609,7 +665,6 @@ static void freeHugeChunk(ChunkAllocator *chunkAllocator, const HugeItemAllocato void HugeItemAllocator::sweep() { auto isBlack = [this] (const HugeChunk &c) { bool b = c.chunk->first()->isBlack(); - Chunk::clearBit(c.chunk->blackBitmap, c.chunk->first() - c.chunk->realBase()); if (!b) freeHugeChunk(chunkAllocator, c); return !b; @@ -619,6 +674,24 @@ void HugeItemAllocator::sweep() { chunks.erase(newEnd, chunks.end()); } +void HugeItemAllocator::resetBlackBits() +{ + for (auto c : chunks) + Chunk::clearBit(c.chunk->blackBitmap, c.chunk->first() - c.chunk->realBase()); +} + +void HugeItemAllocator::collectGrayItems(ExecutionEngine *engine) +{ + for (auto c : chunks) + // Correct for a Steele type barrier + if (Chunk::testBit(c.chunk->blackBitmap, c.chunk->first() - c.chunk->realBase()) && + Chunk::testBit(c.chunk->grayBitmap, c.chunk->first() - c.chunk->realBase())) { + HeapItem *i = c.chunk->first(); + Heap::Base *b = *i; + b->mark(engine); + } +} + void HugeItemAllocator::freeAll() { for (auto &c : chunks) { @@ -663,7 +736,8 @@ Heap::Base *MemoryManager::allocString(std::size_t unmanagedSize) unmanagedHeapSize += unmanagedSize; if (unmanagedHeapSize > unmanagedHeapSizeGCLimit) { - runGC(); + if (!didGCRun) + runGC(); if (3*unmanagedHeapSizeGCLimit <= 4*unmanagedHeapSize) // more than 75% full, raise limit @@ -681,6 +755,7 @@ Heap::Base *MemoryManager::allocString(std::size_t unmanagedSize) m = blockAllocator.allocate(stringSize, true); } +// qDebug() << "allocated string" << m; memset(m, 0, stringSize); return *m; } @@ -705,8 +780,11 @@ Heap::Base *MemoryManager::allocData(std::size_t size) // qDebug() << "unmanagedHeapSize:" << unmanagedHeapSize << "limit:" << unmanagedHeapSizeGCLimit << "unmanagedSize:" << unmanagedSize; - if (size > Chunk::DataSize) - return *hugeItemAllocator.allocate(size); + if (size > Chunk::DataSize) { + HeapItem *h = hugeItemAllocator.allocate(size); +// qDebug() << "allocating huge item" << h; + return *h; + } HeapItem *m = blockAllocator.allocate(size); if (!m) { @@ -716,6 +794,7 @@ Heap::Base *MemoryManager::allocData(std::size_t size) } memset(m, 0, size); +// qDebug() << "allocating data" << m; return *m; } @@ -740,6 +819,7 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM o->memberData->init(); // qDebug() << " got" << o->memberData << o->memberData->size; } +// qDebug() << "allocating object with memberData" << o << o->memberData.operator->(); return o; } @@ -794,7 +874,13 @@ void MemoryManager::mark() { Value *markBase = engine->jsStackTop; - engine->markObjects(); + if (nextGCIsIncremental) { + // need to collect all gray items and push them onto the mark stack + blockAllocator.collectGrayItems(engine); + hugeItemAllocator.collectGrayItems(engine); + } + + engine->markObjects(nextGCIsIncremental); collectFromJSStack(); @@ -836,6 +922,12 @@ void MemoryManager::mark() void MemoryManager::sweep(bool lastSweep) { + if (lastSweep && nextGCIsIncremental) { + // ensure we properly clean up on destruction even if the GC is in incremental mode + blockAllocator.resetBlackBits(); + hugeItemAllocator.resetBlackBits(); + } + for (PersistentValueStorage::Iterator it = m_weakValues->begin(); it != m_weakValues->end(); ++it) { Managed *m = (*it).managed(); if (!m || m->markBit()) @@ -915,14 +1007,22 @@ size_t dumpBins(BlockAllocator *b, bool printOutput = true) return totalFragmentedSlots*Chunk::SlotSize; } -void MemoryManager::runGC() +void MemoryManager::runGC(bool forceFullCollection) { if (gcBlocked) { // qDebug() << "Not running GC."; return; } + if (forceFullCollection) { + // do a full GC + blockAllocator.resetBlackBits(); + hugeItemAllocator.resetBlackBits(); + nextGCIsIncremental = false; + } + QScopedValueRollback gcBlocker(gcBlocked, true); +// qDebug() << "runGC"; if (!gcStats) { // uint oldUsed = allocator.usedMem(); @@ -940,10 +1040,15 @@ void MemoryManager::runGC() #ifndef QT_NO_DEBUG qDebug() << " Triggered by alloc request of" << lastAllocRequestedSlots << "slots."; #endif + qDebug() << "Incremental:" << nextGCIsIncremental; qDebug() << "Allocated" << totalMem << "bytes in" << blockAllocator.chunks.size() << "chunks"; qDebug() << "Fragmented memory before GC" << (totalMem - usedBefore); dumpBins(&blockAllocator); +#ifndef QT_NO_DEBUG + nGrayItems = 0; +#endif + QElapsedTimer t; t.start(); mark(); @@ -960,6 +1065,10 @@ void MemoryManager::runGC() qDebug() << " unmanaged heap limit:" << unmanagedHeapSizeGCLimit; } size_t memInBins = dumpBins(&blockAllocator); +#ifndef QT_NO_DEBUG + if (nextGCIsIncremental) + qDebug() << " number of gray items:" << nGrayItems; +#endif qDebug() << "Marked object in" << markTime << "ms."; qDebug() << "Sweeped object in" << sweepTime << "ms."; qDebug() << "Used memory before GC:" << usedBefore; @@ -980,6 +1089,34 @@ void MemoryManager::runGC() // ensure we don't 'loose' any memory Q_ASSERT(blockAllocator.allocatedMem() == getUsedMem() + dumpBins(&blockAllocator, false)); } + +#if WRITEBARRIER(steele) + static int count = 0; + ++count; + if (aggressiveGC) { + nextGCIsIncremental = (count % 256); + } else { + size_t total = blockAllocator.totalSlots(); + size_t usedSlots = blockAllocator.usedSlotsAfterLastSweep; + if (!nextGCIsIncremental) { + // always try an incremental GC after a full one, unless there is anyway lots of memory pressure + nextGCIsIncremental = usedSlots * 4 < total * 3; + count = 0; + } else { + if (count > 16) + nextGCIsIncremental = false; + else + nextGCIsIncremental = usedSlots * 4 < total * 3; // less than 75% full + } + } +#else + nextGCIsIncremental = false; +#endif + if (!nextGCIsIncremental) { + // do a full GC + blockAllocator.resetBlackBits(); + hugeItemAllocator.resetBlackBits(); + } } size_t MemoryManager::getUsedMem() const diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 3e542b0aa3..f91175e78a 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -155,6 +155,8 @@ struct BlockAllocator { void sweep(); void freeAll(); + void resetBlackBits(); + void collectGrayItems(ExecutionEngine *engine); // bump allocations HeapItem *nextFree = 0; @@ -176,6 +178,8 @@ struct HugeItemAllocator { HeapItem *allocate(size_t size); void sweep(); void freeAll(); + void resetBlackBits(); + void collectGrayItems(ExecutionEngine *engine); size_t usedMem() const { size_t used = 0; @@ -418,7 +422,7 @@ public: return t->d(); } - void runGC(); + void runGC(bool forceFullCollection = false); void dumpStats() const; @@ -463,6 +467,7 @@ public: bool gcBlocked = false; bool aggressiveGC = false; bool gcStats = false; + bool nextGCIsIncremental = false; }; } diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 987e669040..75f567b9e5 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -176,6 +176,8 @@ struct Chunk { void sweep(); void freeAll(); + void resetBlackBits(); + void collectGrayItems(ExecutionEngine *engine); void sortIntoBins(HeapItem **bins, uint nBins); }; diff --git a/src/qml/memory/qv4writebarrier_p.h b/src/qml/memory/qv4writebarrier_p.h index 838ed7a456..de9c63c2ea 100644 --- a/src/qml/memory/qv4writebarrier_p.h +++ b/src/qml/memory/qv4writebarrier_p.h @@ -55,8 +55,8 @@ QT_BEGIN_NAMESPACE -#define WRITEBARRIER_steele -1 -#define WRITEBARRIER_none 1 +#define WRITEBARRIER_steele 1 +#define WRITEBARRIER_none -1 #define WRITEBARRIER(x) (1/WRITEBARRIER_##x == 1) @@ -87,8 +87,9 @@ static Q_CONSTEXPR inline bool isRequired() { inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Value value) { + Q_UNUSED(engine); *slot = value; - if (engine->writeBarrierActive && isRequired()) { + if (isRequired()) { fence(); base->setGrayBit(); } @@ -96,8 +97,9 @@ inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Value value inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Heap::Base *value) { + Q_UNUSED(engine); *slot = value; - if (engine->writeBarrierActive && isRequired()) { + if (isRequired()) { fence(); base->setGrayBit(); } @@ -105,11 +107,10 @@ inline void write(EngineBase *engine, Heap::Base *base, Value *slot, Heap::Base inline void write(EngineBase *engine, Heap::Base *base, Heap::Base **slot, Heap::Base *value) { + Q_UNUSED(engine); *slot = value; - if (engine->writeBarrierActive) { - fence(); - base->setGrayBit(); - } + fence(); + base->setGrayBit(); } #elif WRITEBARRIER(none) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index d359a0f62f..ec40c7846d 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -2019,7 +2019,7 @@ void GlobalExtensions::method_qsTrIdNoOp(const BuiltinFunction *, Scope &scope, void GlobalExtensions::method_gc(const BuiltinFunction *, Scope &scope, CallData *) { - scope.engine->memoryManager->runGC(); + scope.engine->memoryManager->runGC(/* forceFullCollection = */ true); scope.result = QV4::Encode::undefined(); } -- cgit v1.2.3 From 922057ee27127529d755b40bde6113372abc7263 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 13 Feb 2017 13:38:48 +0100 Subject: Better MM debugging Add some more verbose debugging output when we're not using a release build. Change-Id: I4fec5991263e970899a4cc33f9551f4abb21f5ea Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 69 +++++++++++++++++++++++++++++++++--------------- src/qml/memory/qv4mm_p.h | 4 +-- 2 files changed, 49 insertions(+), 24 deletions(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index f3ee397d22..9c7915d2c3 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -60,7 +60,11 @@ #include "qv4alloca_p.h" #include "qv4profiling_p.h" -#define MM_DEBUG 0 +//#define MM_STATS + +#if !defined(MM_STATS) && !defined(QT_NO_DEBUG) +#define MM_STATS +#endif #if MM_DEBUG #define DEBUG qDebug() << "MM:" @@ -333,7 +337,7 @@ void Chunk::resetBlackBits() memset(blackBitmap, 0, sizeof(blackBitmap)); } -#ifndef QT_NO_DEBUG +#ifdef MM_STATS static uint nGrayItems = 0; #endif @@ -359,7 +363,7 @@ void Chunk::collectGrayItems(ExecutionEngine *engine) Heap::Base *b = *itemToFree; Q_ASSERT(b->inUse()); engine->pushForGC(b); -#ifndef QT_NO_DEBUG +#ifdef MM_STATS ++nGrayItems; // qDebug() << "adding gray item" << b << "to mark stack"; #endif @@ -380,7 +384,7 @@ void Chunk::sortIntoBins(HeapItem **bins, uint nBins) #else const int start = 1; #endif -#ifndef QT_NO_DEBUG +#ifdef MM_STATS uint freeSlots = 0; uint allocatedSlots = 0; #endif @@ -390,7 +394,7 @@ void Chunk::sortIntoBins(HeapItem **bins, uint nBins) if (!i) usedSlots |= (static_cast(1) << (HeaderSize/SlotSize)) - 1; #endif -#ifndef QT_NO_DEBUG +#ifdef MM_STATS allocatedSlots += qPopulationCount(usedSlots); // qDebug() << hex << " i=" << i << "used=" << usedSlots; #endif @@ -407,7 +411,7 @@ void Chunk::sortIntoBins(HeapItem **bins, uint nBins) break; } usedSlots = (objectBitmap[i]|extendsBitmap[i]); -#ifndef QT_NO_DEBUG +#ifdef MM_STATS allocatedSlots += qPopulationCount(usedSlots); // qDebug() << hex << " i=" << i << "used=" << usedSlots; #endif @@ -418,7 +422,7 @@ void Chunk::sortIntoBins(HeapItem **bins, uint nBins) usedSlots |= (quintptr(1) << index) - 1; uint freeEnd = i*Bits + index; uint nSlots = freeEnd - freeStart; -#ifndef QT_NO_DEBUG +#ifdef MM_STATS // qDebug() << hex << " got free slots from" << freeStart << "to" << freeEnd << "n=" << nSlots << "usedSlots=" << usedSlots; freeSlots += nSlots; #endif @@ -429,7 +433,7 @@ void Chunk::sortIntoBins(HeapItem **bins, uint nBins) bins[bin] = freeItem; } } -#ifndef QT_NO_DEBUG +#ifdef MM_STATS Q_ASSERT(freeSlots + allocatedSlots == (EntriesInBitmap - start) * 8 * sizeof(quintptr)); #endif } @@ -717,15 +721,17 @@ MemoryManager::MemoryManager(ExecutionEngine *engine) #endif } -#ifndef QT_NO_DEBUG -static size_t lastAllocRequestedSlots = 0; +#ifdef MM_STATS +static int allocationCount = 0; +static int lastAllocRequestedSlots = 0; #endif Heap::Base *MemoryManager::allocString(std::size_t unmanagedSize) { const size_t stringSize = align(sizeof(Heap::String)); -#ifndef QT_NO_DEBUG +#ifdef MM_STATS lastAllocRequestedSlots = stringSize >> Chunk::SlotSizeShift; + ++allocationCount; #endif bool didGCRun = false; @@ -762,8 +768,9 @@ Heap::Base *MemoryManager::allocString(std::size_t unmanagedSize) Heap::Base *MemoryManager::allocData(std::size_t size) { -#ifndef QT_NO_DEBUG +#ifdef MM_STATS lastAllocRequestedSlots = size >> Chunk::SlotSizeShift; + ++allocationCount; #endif bool didRunGC = false; @@ -804,6 +811,9 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM // ### Could optimize this and allocate both in one go through the block allocator if (nMembers) { +#ifdef MM_STATS + ++allocationCount; +#endif std::size_t memberSize = align(sizeof(Heap::MemberData) + (nMembers - 1)*sizeof(Value)); // qDebug() << "allocating member data for" << o << nMembers << memberSize; Heap::Base *m; @@ -823,10 +833,13 @@ Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nM return o; } +static uint markStackSize = 0; + void MemoryManager::drainMarkStack(Value *markBase) { while (engine->jsStackTop > markBase) { Heap::Base *h = engine->popForGC(); + ++markStackSize; Q_ASSERT(h); // at this point we should only have Heap::Base objects in this area on the stack. If not, weird things might happen. if (h->vtable()->markObjects) h->vtable()->markObjects(h, engine); @@ -874,18 +887,28 @@ void MemoryManager::mark() { Value *markBase = engine->jsStackTop; + markStackSize = 0; + if (nextGCIsIncremental) { // need to collect all gray items and push them onto the mark stack blockAllocator.collectGrayItems(engine); hugeItemAllocator.collectGrayItems(engine); } +// qDebug() << ">>>> Mark phase:"; +// qDebug() << " mark stack after gray items" << (engine->jsStackTop - markBase); + engine->markObjects(nextGCIsIncremental); +// qDebug() << " mark stack after engine->mark" << (engine->jsStackTop - markBase); + collectFromJSStack(); +// qDebug() << " mark stack after js stack collect" << (engine->jsStackTop - markBase); m_persistentValues->mark(engine); +// qDebug() << " mark stack after persistants" << (engine->jsStackTop - markBase); + // Preserve QObject ownership rules within JavaScript: A parent with c++ ownership // keeps all of its children alive in JavaScript. @@ -988,23 +1011,23 @@ bool MemoryManager::shouldRunGC() const size_t dumpBins(BlockAllocator *b, bool printOutput = true) { - size_t totalFragmentedSlots = 0; + size_t totalSlotMem = 0; if (printOutput) - qDebug() << "Fragmentation map:"; + qDebug() << "Slot map:"; for (uint i = 0; i < BlockAllocator::NumBins; ++i) { uint nEntries = 0; HeapItem *h = b->freeBins[i]; while (h) { ++nEntries; - totalFragmentedSlots += h->freeData.availableSlots; + totalSlotMem += h->freeData.availableSlots; h = h->freeData.next; } if (printOutput) qDebug() << " number of entries in slot" << i << ":" << nEntries; } if (printOutput) - qDebug() << " total mem in bins" << totalFragmentedSlots*Chunk::SlotSize; - return totalFragmentedSlots*Chunk::SlotSize; + qDebug() << " total mem in bins" << totalSlotMem*Chunk::SlotSize; + return totalSlotMem*Chunk::SlotSize; } void MemoryManager::runGC(bool forceFullCollection) @@ -1037,15 +1060,16 @@ void MemoryManager::runGC(bool forceFullCollection) const size_t largeItemsBefore = getLargeItemsMem(); qDebug() << "========== GC =========="; -#ifndef QT_NO_DEBUG +#ifdef MM_STATS qDebug() << " Triggered by alloc request of" << lastAllocRequestedSlots << "slots."; + qDebug() << " Allocations since last GC" << allocationCount; #endif qDebug() << "Incremental:" << nextGCIsIncremental; qDebug() << "Allocated" << totalMem << "bytes in" << blockAllocator.chunks.size() << "chunks"; qDebug() << "Fragmented memory before GC" << (totalMem - usedBefore); dumpBins(&blockAllocator); -#ifndef QT_NO_DEBUG +#ifdef MM_STATS nGrayItems = 0; #endif @@ -1065,15 +1089,16 @@ void MemoryManager::runGC(bool forceFullCollection) qDebug() << " unmanaged heap limit:" << unmanagedHeapSizeGCLimit; } size_t memInBins = dumpBins(&blockAllocator); -#ifndef QT_NO_DEBUG +#ifdef MM_STATS if (nextGCIsIncremental) qDebug() << " number of gray items:" << nGrayItems; #endif qDebug() << "Marked object in" << markTime << "ms."; + qDebug() << " " << markStackSize << "objects marked"; qDebug() << "Sweeped object in" << sweepTime << "ms."; qDebug() << "Used memory before GC:" << usedBefore; - qDebug() << "Used memory after GC:" << usedAfter; - qDebug() << "Freed up bytes:" << (usedBefore - usedAfter); + qDebug() << "Used memory after GC :" << usedAfter; + qDebug() << "Freed up bytes :" << (usedBefore - usedAfter); size_t lost = blockAllocator.allocatedMem() - memInBins - usedAfter; if (lost) qDebug() << "!!!!!!!!!!!!!!!!!!!!! LOST MEM:" << lost << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index f91175e78a..437e50cbe7 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -86,7 +86,7 @@ struct StackAllocator { } else { nextFree += requiredSlots; } -#if !defined(QT_NO_DEBUG) || defined(MM_DEBUG) +#if MM_DEBUG || !defined(QT_NO_DEBUG) Chunk *c = m->chunk(); Chunk::setBit(c->objectBitmap, m - c->realBase()); #endif @@ -98,7 +98,7 @@ struct StackAllocator { } else { nextFree -= requiredSlots; } -#if !defined(QT_NO_DEBUG) || defined(MM_DEBUG) +#if MM_DEBUG || !defined(QT_NO_DEBUG) Chunk *c = nextFree->chunk(); Chunk::clearBit(c->objectBitmap, nextFree - c->realBase()); #endif -- cgit v1.2.3 From da32817db4b012e54be8ff43b5e56d676ec7b5bb Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 14 Feb 2017 22:47:36 +0100 Subject: Optimize Base::mark() Change-Id: I7f7b485274c870b39492eb9446d910d35f960124 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4engine_p.h | 16 +++++++++++----- src/qml/memory/qv4mmdefs_p.h | 19 +++++++++++++------ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 395a7c7250..21b61a5aff 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -550,13 +550,19 @@ inline void Heap::Base::mark(QV4::ExecutionEngine *engine) { Q_ASSERT(inUse()); - if (isMarked()) - return; + const HeapItem *h = reinterpret_cast(this); + Chunk *c = h->chunk(); + size_t index = h - c->realBase(); + Q_ASSERT(!Chunk::testBit(c->extendsBitmap, index)); + quintptr *bitmap = c->blackBitmap + Chunk::bitmapIndex(index); + quintptr bit = Chunk::bitForIndex(index); + if (!(*bitmap & bit)) { #ifndef QT_NO_DEBUG - engine->assertObjectBelongsToEngine(*this); + engine->assertObjectBelongsToEngine(*this); #endif - setMarkBit(); - engine->pushForGC(this); + *bitmap |= bit; + engine->pushForGC(this); + } } inline void Value::mark(ExecutionEngine *e) diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 75f567b9e5..f66630061d 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -111,22 +111,29 @@ struct Chunk { HeapItem *realBase(); HeapItem *first(); + static Q_ALWAYS_INLINE size_t bitmapIndex(size_t index) { + return index >> BitShift; + } + static Q_ALWAYS_INLINE quintptr bitForIndex(size_t index) { + return static_cast(1) << (index & (Bits - 1)); + } + static void setBit(quintptr *bitmap, size_t index) { // Q_ASSERT(index >= HeaderSize/SlotSize && index < ChunkSize/SlotSize); - bitmap += index >> BitShift; - quintptr bit = static_cast(1) << (index & (Bits - 1)); + bitmap += bitmapIndex(index); + quintptr bit = bitForIndex(index); *bitmap |= bit; } static void clearBit(quintptr *bitmap, size_t index) { // Q_ASSERT(index >= HeaderSize/SlotSize && index < ChunkSize/SlotSize); - bitmap += index >> BitShift; - quintptr bit = static_cast(1) << (index & (Bits - 1)); + bitmap += bitmapIndex(index); + quintptr bit = bitForIndex(index); *bitmap &= ~bit; } static bool testBit(quintptr *bitmap, size_t index) { // Q_ASSERT(index >= HeaderSize/SlotSize && index < ChunkSize/SlotSize); - bitmap += index >> BitShift; - quintptr bit = static_cast(1) << (index & (Bits - 1)); + bitmap += bitmapIndex(index); + quintptr bit = bitForIndex(index); return (*bitmap & bit); } static void setBits(quintptr *bitmap, size_t index, size_t nBits) { -- cgit v1.2.3 From 0bee9b94eb20d644a1df4fd0062527e680545f31 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 15 Feb 2017 12:21:36 +0100 Subject: Micro optimization the value that is being removed from the stack when popForGC() is being called will always be a valid Heap object, so we can use the unsafe accessor instead of the slower one that checks. Change-Id: I23d435c760d3ac7ba8ca28e46bdcbe36886f0dd9 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4engine_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 21b61a5aff..18571d88f2 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -122,7 +122,7 @@ public: } Heap::Base *popForGC() { --jsStackTop; - return jsStackTop->heapObject(); + return jsStackTop->m(); } QML_NEARLY_ALWAYS_INLINE Value *jsAlloca(int nValues) { -- cgit v1.2.3 From a10f1b1e4ac8072a733bebcde7f4aafcdd54c126 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 15 Feb 2017 12:23:20 +0100 Subject: Optimize allocObjectWithMemberData Use only one call into the block allocator in the common case. Change-Id: Ic9be82f03ba66c1eff3e27407458343b6cd6d30c Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 9c7915d2c3..069084763c 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -807,26 +807,33 @@ Heap::Base *MemoryManager::allocData(std::size_t size) Heap::Object *MemoryManager::allocObjectWithMemberData(std::size_t size, uint nMembers) { - Heap::Object *o = static_cast(allocData(size)); - - // ### Could optimize this and allocate both in one go through the block allocator - if (nMembers) { -#ifdef MM_STATS - ++allocationCount; -#endif + Heap::Object *o; + if (!nMembers) { + o = static_cast(allocData(size)); + } else { + // Allocate both in one go through the block allocator std::size_t memberSize = align(sizeof(Heap::MemberData) + (nMembers - 1)*sizeof(Value)); -// qDebug() << "allocating member data for" << o << nMembers << memberSize; - Heap::Base *m; - if (memberSize > Chunk::DataSize) - m = *hugeItemAllocator.allocate(memberSize); - else - m = *blockAllocator.allocate(memberSize, true); - memset(m, 0, memberSize); - o->memberData.set(engine, static_cast(m)); - o->memberData->setVtable(MemberData::staticVTable()); - o->memberData->values.alloc = static_cast((memberSize - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); - o->memberData->values.size = o->memberData->values.alloc; - o->memberData->init(); + size_t totalSize = size + memberSize; + Heap::MemberData *m; + if (totalSize > Chunk::DataSize) { + o = static_cast(allocData(size)); + m = hugeItemAllocator.allocate(memberSize)->as(); + } else { + HeapItem *mh = reinterpret_cast(allocData(totalSize)); + Heap::Base *b = *mh; + o = static_cast(b); + mh += (size >> Chunk::SlotSizeShift); + m = mh->as(); + Chunk *c = mh->chunk(); + size_t index = mh - c->realBase(); + Chunk::setBit(c->objectBitmap, index); + Chunk::clearBit(c->extendsBitmap, index); + } + o->memberData.set(engine, m); + m->setVtable(MemberData::staticVTable()); + m->values.alloc = static_cast((memberSize - sizeof(Heap::MemberData) + sizeof(Value))/sizeof(Value)); + m->values.size = o->memberData->values.alloc; + m->init(); // qDebug() << " got" << o->memberData << o->memberData->size; } // qDebug() << "allocating object with memberData" << o << o->memberData.operator->(); @@ -1063,6 +1070,7 @@ void MemoryManager::runGC(bool forceFullCollection) #ifdef MM_STATS qDebug() << " Triggered by alloc request of" << lastAllocRequestedSlots << "slots."; qDebug() << " Allocations since last GC" << allocationCount; + allocationCount = 0; #endif qDebug() << "Incremental:" << nextGCIsIncremental; qDebug() << "Allocated" << totalMem << "bytes in" << blockAllocator.chunks.size() << "chunks"; -- cgit v1.2.3 From 78589bba88bcb3bce5a5996c762b324680d097a5 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 16 Feb 2017 10:25:52 +0100 Subject: Output mark/sweep times in micro seconds Change-Id: Iaef7f23c9a58f8df761a35ed0fa681f8b404a4a6 Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 069084763c..233b83fcc0 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -1084,11 +1084,12 @@ void MemoryManager::runGC(bool forceFullCollection) QElapsedTimer t; t.start(); mark(); - qint64 markTime = t.restart(); + qint64 markTime = t.nsecsElapsed()/1000; + t.restart(); sweep(); const size_t usedAfter = getUsedMem(); const size_t largeItemsAfter = getLargeItemsMem(); - qint64 sweepTime = t.elapsed(); + qint64 sweepTime = t.nsecsElapsed()/1000; if (triggeredByUnmanagedHeap) { qDebug() << "triggered by unmanaged heap:"; @@ -1101,9 +1102,9 @@ void MemoryManager::runGC(bool forceFullCollection) if (nextGCIsIncremental) qDebug() << " number of gray items:" << nGrayItems; #endif - qDebug() << "Marked object in" << markTime << "ms."; + qDebug() << "Marked object in" << markTime << "us."; qDebug() << " " << markStackSize << "objects marked"; - qDebug() << "Sweeped object in" << sweepTime << "ms."; + qDebug() << "Sweeped object in" << sweepTime << "us."; qDebug() << "Used memory before GC:" << usedBefore; qDebug() << "Used memory after GC :" << usedAfter; qDebug() << "Freed up bytes :" << (usedBefore - usedAfter); -- cgit v1.2.3 From cb25abf2a818e76744426ff82619f7351132269f Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 16 Feb 2017 10:52:48 +0100 Subject: Don't grow GC memory after an incremental GC If the last GC was incremental, it would not clean up all garbage. Thus we should not look at the used memory after such a GC to determine whether we need to allocate additional memory. Change-Id: I57c33eeec63c16310920bc3dae074f4dcbb73d27 Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 6 ++++-- src/qml/memory/qv4mm_p.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 233b83fcc0..1a1d92aa0e 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -1010,8 +1010,7 @@ void MemoryManager::sweep(bool lastSweep) bool MemoryManager::shouldRunGC() const { size_t total = blockAllocator.totalSlots(); - size_t usedSlots = blockAllocator.usedSlotsAfterLastSweep; - if (total > MinSlotsGCLimit && usedSlots * GCOverallocation < total * 100) + if (total > MinSlotsGCLimit && usedSlotsAfterLastFullSweep * GCOverallocation < total * 100) return true; return false; } @@ -1124,6 +1123,9 @@ void MemoryManager::runGC(bool forceFullCollection) Q_ASSERT(blockAllocator.allocatedMem() == getUsedMem() + dumpBins(&blockAllocator, false)); } + if (!nextGCIsIncremental) + usedSlotsAfterLastFullSweep = blockAllocator.usedSlotsAfterLastSweep; + #if WRITEBARRIER(steele) static int count = 0; ++count; diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index 437e50cbe7..7f02a4f929 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -463,6 +463,7 @@ public: std::size_t unmanagedHeapSize = 0; // the amount of bytes of heap that is not managed by the memory manager, but which is held onto by managed items. std::size_t unmanagedHeapSizeGCLimit; + std::size_t usedSlotsAfterLastFullSweep = 0; bool gcBlocked = false; bool aggressiveGC = false; -- cgit v1.2.3 From 182469fc85257fccfa8024e132ad40a50b03c0f5 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Thu, 9 Mar 2017 13:59:40 +0100 Subject: Build fix for -no-feature-quick-shadereffect Change-Id: Ie1f601c6ae4c6c5d8d23b14a6670979d9c24e209 Reviewed-by: Simon Hausmann --- src/imports/imports.pro | 2 +- src/quick/items/context2d/qquickcanvasitem.cpp | 1 + src/quick/items/context2d/qquickcontext2d.cpp | 2 ++ src/quick/items/qquickpainteditem_p.h | 1 + src/quick/util/qquickanimatorjob.cpp | 3 ++- src/src.pro | 2 +- 6 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/imports/imports.pro b/src/imports/imports.pro index 45719df874..0ba949f070 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -20,7 +20,7 @@ qtHaveModule(quick) { sharedimage \ testlib - qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ + qtConfig(quick-shadereffect):qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ SUBDIRS += particles } diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 1167f408f5..a81ab619ac 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index e25cc5ccbe..0eeba5d6cd 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -42,7 +42,9 @@ #include "qquickcanvasitem_p.h" #include #include +#if QT_CONFIG(quick_shadereffect) #include +#endif #include #include diff --git a/src/quick/items/qquickpainteditem_p.h b/src/quick/items/qquickpainteditem_p.h index 742e786335..229fbf1007 100644 --- a/src/quick/items/qquickpainteditem_p.h +++ b/src/quick/items/qquickpainteditem_p.h @@ -52,6 +52,7 @@ // #include "qquickitem_p.h" +#include "qquickpainteditem.h" #include QT_BEGIN_NAMESPACE diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 4aacb09c97..89007cff1f 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -345,12 +345,13 @@ void QQuickTransformAnimatorJob::postSync() } QQuickItemPrivate *d = QQuickItemPrivate::get(m_target); +#if QT_CONFIG(quick_shadereffect) if (d->extra.isAllocated() && d->extra->layer && d->extra->layer->enabled()) { d = QQuickItemPrivate::get(d->extra->layer->m_effectSource); } - +#endif m_helper->node = d->itemNode(); } diff --git a/src/src.pro b/src/src.pro index 4e2de8da14..24e139415b 100644 --- a/src/src.pro +++ b/src/src.pro @@ -10,7 +10,7 @@ qtHaveModule(gui):qtConfig(animation) { quick \ qmltest - qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ + qtConfig(quick-shadereffect):qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ SUBDIRS += particles qtHaveModule(widgets): SUBDIRS += quickwidgets } -- cgit v1.2.3 From 77e0dc0485953427320ed0b442ba24eef4f9d73b Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 10 Mar 2017 09:17:35 +0100 Subject: Fix support for enums and translations in list elements QQC uses valid constructs like ListElement { dayOfWeek: Locale.Sunday }, where the enums are resolved at type compilation time. Syntactically Locale.Sunday is a JS expression, but as scripts are not permitted for list elements, we must retain the values in string form when generating the binary (cache) qml representation. This is a forward port of commit 736f4f9c847d1102f6ac77674c831f0555ff445e from the qml compiler, and also matches QTRD-3226. Change-Id: I3e615f224d4ab222a50f3271735cb8f7a24f5f11 Reviewed-by: Erik Verbruggen --- tools/qmlcachegen/qmlcachegen.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index eb2986d957..9a68e2ac97 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -80,6 +80,39 @@ QString diagnosticErrorMessage(const QString &fileName, const QQmlJS::Diagnostic return message; } +// Ensure that ListElement objects keep all property assignments in their string form +static void annotateListElements(QmlIR::Document *document) +{ + QStringList listElementNames; + + foreach (const QV4::CompiledData::Import *import, document->imports) { + const QString uri = document->stringAt(import->uriIndex); + if (uri != QStringLiteral("QtQml.Models") && uri != QStringLiteral("QtQuick")) + continue; + + QString listElementName = QStringLiteral("ListElement"); + const QString qualifier = document->stringAt(import->qualifierIndex); + if (!qualifier.isEmpty()) { + listElementName.prepend(QLatin1Char('.')); + listElementName.prepend(qualifier); + } + listElementNames.append(listElementName); + } + + if (listElementNames.isEmpty()) + return; + + foreach (QmlIR::Object *object, document->objects) { + if (!listElementNames.contains(document->stringAt(object->inheritedTypeNameIndex))) + continue; + for (QmlIR::Binding *binding = object->firstBinding(); binding; binding = binding->next) { + if (binding->type != QV4::CompiledData::Binding::Type_Script) + continue; + binding->stringIndex = document->registerString(object->bindingAsString(document, binding->value.compiledScriptIndex)); + } + } +} + static bool compileQmlFile(const QString &inputFileName, const QString &outputFileName, QV4::EvalISelFactory *iselFactory, Error *error) { QmlIR::Document irDocument(/*debugMode*/false); @@ -111,6 +144,8 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi } } + annotateListElements(&irDocument); + { QmlIR::JSCodeGen v4CodeGen(/*empty input file name*/QString(), irDocument.code, &irDocument.jsModule, &irDocument.jsParserEngine, irDocument.program, /*import cache*/0, &irDocument.jsGenerator.stringTable); for (QmlIR::Object *object: qAsConst(irDocument.objects)) { -- cgit v1.2.3 From 323d8aafbf0fbe1911fbc8b286b2a05455dd4861 Mon Sep 17 00:00:00 2001 From: Marco Benelli Date: Fri, 24 Feb 2017 16:07:34 +0100 Subject: Update plugins.qmltypes for 5.9 Change-Id: I5e6dbd2012718890f5fcc92beebcd1829dc53a57 Reviewed-by: Thomas Hartmann --- src/imports/builtins/builtins.qmltypes | 32 ++++++++- src/imports/particles/plugins.qmltypes | 6 +- src/imports/qtquick2/plugins.qmltypes | 114 ++++++++++++++++++++++++--------- src/imports/testlib/plugins.qmltypes | 42 +++++++++++- src/imports/window/plugins.qmltypes | 56 ++++++++++------ 5 files changed, 197 insertions(+), 53 deletions(-) diff --git a/src/imports/builtins/builtins.qmltypes b/src/imports/builtins/builtins.qmltypes index 88e3ac6634..ac95a8837b 100644 --- a/src/imports/builtins/builtins.qmltypes +++ b/src/imports/builtins/builtins.qmltypes @@ -149,6 +149,25 @@ Module { "AlignCenter": 132 } } + Enum { + name: "TextFlag" + values: { + "TextSingleLine": 256, + "TextDontClip": 512, + "TextExpandTabs": 1024, + "TextShowMnemonic": 2048, + "TextWordWrap": 4096, + "TextWrapAnywhere": 8192, + "TextDontPrint": 16384, + "TextIncludeTrailingSpaces": 134217728, + "TextHideMnemonic": 32768, + "TextJustificationForced": 65536, + "TextForceLeftToRight": 131072, + "TextForceRightToLeft": 262144, + "TextLongestVariant": 524288, + "TextBypassShaping": 1048576 + } + } Enum { name: "TextElideMode" values: { @@ -440,7 +459,8 @@ Module { "AA_SynthesizeMouseForUnhandledTabletEvents": 24, "AA_CompressHighFrequencyEvents": 25, "AA_DontCheckOpenGLContextThreadAffinity": 26, - "AA_AttributeCount": 27 + "AA_DisableShaderDiskCache": 27, + "AA_AttributeCount": 28 } } Enum { @@ -1096,7 +1116,8 @@ Module { "SystemLocaleLongDate": 5, "DefaultLocaleShortDate": 6, "DefaultLocaleLongDate": 7, - "RFC2822Date": 8 + "RFC2822Date": 8, + "ISODateWithMs": 9 } } Enum { @@ -1607,6 +1628,13 @@ Module { "MouseEventFlagMask": 255 } } + Enum { + name: "ChecksumType" + values: { + "ChecksumIso3309": 0, + "ChecksumItuV41": 1 + } + } } Component { name: "QEasingCurve"; prototype: "QQmlEasingValueType" } } diff --git a/src/imports/particles/plugins.qmltypes b/src/imports/particles/plugins.qmltypes index 5c4bd01980..6c7c98cc71 100644 --- a/src/imports/particles/plugins.qmltypes +++ b/src/imports/particles/plugins.qmltypes @@ -275,11 +275,11 @@ Module { Parameter { name: "arg"; type: "double" } } Method { - name: "setAcceleration" + name: "setMagnitude" Parameter { name: "arg"; type: "double" } } Method { - name: "setMagnitude" + name: "setAcceleration" Parameter { name: "arg"; type: "double" } } Method { @@ -552,7 +552,7 @@ Module { Parameter { name: "arg"; type: "bool" } } Method { - name: "setmirrored" + name: "setMirrored" Parameter { name: "arg"; type: "bool" } } } diff --git a/src/imports/qtquick2/plugins.qmltypes b/src/imports/qtquick2/plugins.qmltypes index 441cd743aa..a9534b5ccc 100644 --- a/src/imports/qtquick2/plugins.qmltypes +++ b/src/imports/qtquick2/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable -noforceqtquick QtQuick 2.8' +// 'qmlplugindump -nonrelocatable -noforceqtquick QtQuick 2.9' Module { dependencies: [] @@ -439,6 +439,13 @@ Module { } } } + Component { + name: "QPointingDeviceUniqueId" + exports: ["QtQuick/PointingDeviceUniqueId 2.9"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "numericId"; type: "qlonglong"; isReadonly: true } + } Component { name: "QQmlApplication" prototype: "QObject" @@ -1159,6 +1166,8 @@ Module { Property { name: "supportsMultipleWindows"; type: "bool"; isReadonly: true } Property { name: "state"; type: "Qt::ApplicationState"; isReadonly: true } Property { name: "font"; type: "QFont"; isReadonly: true } + Property { name: "displayName"; type: "string" } + Property { name: "screens"; type: "QQuickScreenInfo"; isList: true; isReadonly: true } Signal { name: "stateChanged" Parameter { name: "state"; type: "Qt::ApplicationState" } @@ -1168,9 +1177,13 @@ Module { name: "QQuickBasePositioner" defaultProperty: "data" prototype: "QQuickImplicitSizeItem" - exports: ["QtQuick/Positioner 2.0", "QtQuick/Positioner 2.6"] + exports: [ + "QtQuick/Positioner 2.0", + "QtQuick/Positioner 2.6", + "QtQuick/Positioner 2.9" + ] isCreatable: false - exportMetaObjectRevisions: [0, 6] + exportMetaObjectRevisions: [0, 6, 9] attachedType: "QQuickPositionerAttached" Property { name: "spacing"; type: "double" } Property { name: "populate"; type: "QQuickTransition"; isPointer: true } @@ -1186,6 +1199,8 @@ Module { Signal { name: "leftPaddingChanged"; revision: 6 } Signal { name: "rightPaddingChanged"; revision: 6 } Signal { name: "bottomPaddingChanged"; revision: 6 } + Signal { name: "positioningComplete"; revision: 9 } + Method { name: "forceLayout"; revision: 9 } } Component { name: "QQuickBehavior" @@ -1502,8 +1517,8 @@ Module { name: "QQuickFlickable" defaultProperty: "flickableData" prototype: "QQuickItem" - exports: ["QtQuick/Flickable 2.0"] - exportMetaObjectRevisions: [0] + exports: ["QtQuick/Flickable 2.0", "QtQuick/Flickable 2.9"] + exportMetaObjectRevisions: [0, 9] Enum { name: "BoundsBehavior" values: { @@ -1563,6 +1578,8 @@ Module { isPointer: true } Property { name: "pixelAligned"; type: "bool" } + Property { name: "horizontalOvershoot"; revision: 9; type: "double"; isReadonly: true } + Property { name: "verticalOvershoot"; revision: 9; type: "double"; isReadonly: true } Property { name: "flickableData"; type: "QObject"; isList: true; isReadonly: true } Property { name: "flickableChildren"; type: "QQuickItem"; isList: true; isReadonly: true } Signal { name: "isAtBoundaryChanged" } @@ -1572,6 +1589,8 @@ Module { Signal { name: "flickEnded" } Signal { name: "dragStarted" } Signal { name: "dragEnded" } + Signal { name: "horizontalOvershootChanged"; revision: 9 } + Signal { name: "verticalOvershootChanged"; revision: 9 } Method { name: "resizeContent" Parameter { name: "w"; type: "double" } @@ -2084,8 +2103,13 @@ Module { name: "QQuickItem" defaultProperty: "data" prototype: "QObject" - exports: ["QtQuick/Item 2.0", "QtQuick/Item 2.1", "QtQuick/Item 2.4"] - exportMetaObjectRevisions: [0, 1, 2] + exports: [ + "QtQuick/Item 2.0", + "QtQuick/Item 2.1", + "QtQuick/Item 2.4", + "QtQuick/Item 2.7" + ] + exportMetaObjectRevisions: [0, 1, 2, 7] Enum { name: "TransformOrigin" values: { @@ -2210,23 +2234,21 @@ Module { Parameter { name: "point"; type: "QPointF" } } Method { - name: "mapToGlobal" - revision: 7 - type: "QPointF" - Parameter { name: "point"; type: "QPointF" } + name: "mapFromItem" + Parameter { type: "QQmlV4Function"; isPointer: true } } Method { - name: "mapFromGlobal" - revision: 7 - type: "QPointF" - Parameter { name: "point"; type: "QPointF" } + name: "mapToItem" + Parameter { type: "QQmlV4Function"; isPointer: true } } Method { - name: "mapFromItem" + name: "mapFromGlobal" + revision: 7 Parameter { type: "QQmlV4Function"; isPointer: true } } Method { - name: "mapToItem" + name: "mapToGlobal" + revision: 7 Parameter { type: "QQmlV4Function"; isPointer: true } } Method { name: "forceActiveFocus" } @@ -2259,6 +2281,11 @@ Module { type: "bool" Parameter { name: "fileName"; type: "string" } } + Method { + name: "saveToFile" + type: "bool" + Parameter { name: "fileName"; type: "string" } + } } Component { name: "QQuickItemLayer" @@ -2318,9 +2345,13 @@ Module { name: "QQuickItemView" defaultProperty: "flickableData" prototype: "QQuickFlickable" - exports: ["QtQuick/ItemView 2.1", "QtQuick/ItemView 2.3"] + exports: [ + "QtQuick/ItemView 2.1", + "QtQuick/ItemView 2.3", + "QtQuick/ItemView 2.7" + ] isCreatable: false - exportMetaObjectRevisions: [1, 2] + exportMetaObjectRevisions: [1, 2, 7] Enum { name: "LayoutDirection" values: { @@ -2494,6 +2525,10 @@ Module { name: "released" Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true } } + Signal { + name: "shortcutOverride" + Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true } + } Signal { name: "digit0Pressed" Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true } @@ -2757,9 +2792,10 @@ Module { exports: [ "QtQuick/MouseArea 2.0", "QtQuick/MouseArea 2.4", - "QtQuick/MouseArea 2.5" + "QtQuick/MouseArea 2.5", + "QtQuick/MouseArea 2.9" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 9] Property { name: "mouseX"; type: "double"; isReadonly: true } Property { name: "mouseY"; type: "double"; isReadonly: true } Property { name: "containsMouse"; type: "bool"; isReadonly: true } @@ -2774,6 +2810,7 @@ Module { Property { name: "propagateComposedEvents"; type: "bool" } Property { name: "cursorShape"; type: "Qt::CursorShape" } Property { name: "containsPress"; revision: 1; type: "bool"; isReadonly: true } + Property { name: "pressAndHoldInterval"; revision: 9; type: "int" } Signal { name: "hoveredChanged" } Signal { name: "scrollGestureEnabledChanged"; revision: 2 } Signal { @@ -2816,6 +2853,7 @@ Module { Signal { name: "exited" } Signal { name: "canceled" } Signal { name: "containsPressChanged"; revision: 1 } + Signal { name: "pressAndHoldIntervalChanged"; revision: 9 } } Component { name: "QQuickMultiPointTouchArea" @@ -3600,14 +3638,20 @@ Module { Component { name: "QQuickShortcut" prototype: "QObject" - exports: ["QtQuick/Shortcut 2.5", "QtQuick/Shortcut 2.6"] - exportMetaObjectRevisions: [0, 1] + exports: [ + "QtQuick/Shortcut 2.5", + "QtQuick/Shortcut 2.6", + "QtQuick/Shortcut 2.9" + ] + exportMetaObjectRevisions: [0, 1, 9] Property { name: "sequence"; type: "QVariant" } + Property { name: "sequences"; revision: 9; type: "QVariantList" } Property { name: "nativeText"; revision: 1; type: "string"; isReadonly: true } Property { name: "portableText"; revision: 1; type: "string"; isReadonly: true } Property { name: "enabled"; type: "bool" } Property { name: "autoRepeat"; type: "bool" } Property { name: "context"; type: "Qt::ShortcutContext" } + Signal { name: "sequencesChanged"; revision: 9 } Signal { name: "activated" } Signal { name: "activatedAmbiguously" } } @@ -3926,9 +3970,10 @@ Module { "QtQuick/Text 2.0", "QtQuick/Text 2.2", "QtQuick/Text 2.3", - "QtQuick/Text 2.6" + "QtQuick/Text 2.6", + "QtQuick/Text 2.9" ] - exportMetaObjectRevisions: [0, 2, 3, 6] + exportMetaObjectRevisions: [0, 2, 3, 6, 9] Enum { name: "HAlignment" values: { @@ -4038,6 +4083,7 @@ Module { Property { name: "leftPadding"; revision: 6; type: "double" } Property { name: "rightPadding"; revision: 6; type: "double" } Property { name: "bottomPadding"; revision: 6; type: "double" } + Property { name: "fontInfo"; revision: 9; type: "QJSValue"; isReadonly: true } Signal { name: "textChanged" Parameter { name: "text"; type: "string" } @@ -4093,7 +4139,9 @@ Module { Signal { name: "leftPaddingChanged"; revision: 6 } Signal { name: "rightPaddingChanged"; revision: 6 } Signal { name: "bottomPaddingChanged"; revision: 6 } + Signal { name: "fontInfoChanged"; revision: 9 } Method { name: "doLayout" } + Method { name: "forceLayout"; revision: 9 } Method { name: "linkAt" revision: 3 @@ -4390,9 +4438,10 @@ Module { "QtQuick/TextInput 2.2", "QtQuick/TextInput 2.4", "QtQuick/TextInput 2.6", - "QtQuick/TextInput 2.7" + "QtQuick/TextInput 2.7", + "QtQuick/TextInput 2.9" ] - exportMetaObjectRevisions: [0, 2, 3, 6, 7] + exportMetaObjectRevisions: [0, 2, 3, 6, 7, 9] Enum { name: "EchoMode" values: { @@ -4497,6 +4546,7 @@ Module { Property { name: "bottomPadding"; revision: 6; type: "double" } Signal { name: "accepted" } Signal { name: "editingFinished"; revision: 2 } + Signal { name: "textEdited"; revision: 9 } Signal { name: "fontChanged" Parameter { name: "font"; type: "QFont" } @@ -4657,13 +4707,16 @@ Module { Component { name: "QQuickTouchPoint" prototype: "QObject" - exports: ["QtQuick/TouchPoint 2.0"] - exportMetaObjectRevisions: [0] + exports: ["QtQuick/TouchPoint 2.0", "QtQuick/TouchPoint 2.9"] + exportMetaObjectRevisions: [0, 0] Property { name: "pointId"; type: "int"; isReadonly: true } + Property { name: "uniqueId"; revision: 9; type: "QPointingDeviceUniqueId"; isReadonly: true } Property { name: "pressed"; type: "bool"; isReadonly: true } Property { name: "x"; type: "double"; isReadonly: true } Property { name: "y"; type: "double"; isReadonly: true } + Property { name: "ellipseDiameters"; revision: 9; type: "QSizeF"; isReadonly: true } Property { name: "pressure"; type: "double"; isReadonly: true } + Property { name: "rotation"; revision: 9; type: "double"; isReadonly: true } Property { name: "velocity"; type: "QVector2D"; isReadonly: true } Property { name: "area"; type: "QRectF"; isReadonly: true } Property { name: "startX"; type: "double"; isReadonly: true } @@ -4672,6 +4725,9 @@ Module { Property { name: "previousY"; type: "double"; isReadonly: true } Property { name: "sceneX"; type: "double"; isReadonly: true } Property { name: "sceneY"; type: "double"; isReadonly: true } + Signal { name: "uniqueIdChanged"; revision: 9 } + Signal { name: "ellipseDiametersChanged"; revision: 9 } + Signal { name: "rotationChanged"; revision: 9 } } Component { name: "QQuickTransform"; prototype: "QObject" } Component { diff --git a/src/imports/testlib/plugins.qmltypes b/src/imports/testlib/plugins.qmltypes index 563778e55e..5d7ca51adc 100644 --- a/src/imports/testlib/plugins.qmltypes +++ b/src/imports/testlib/plugins.qmltypes @@ -4,10 +4,44 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable -noforceqtquick QtTest 1.1' +// 'qmlplugindump -nonrelocatable -noforceqtquick QtTest 1.2' Module { dependencies: ["QtQuick 2.0"] + Component { + name: "QQuickTouchEventSequence" + prototype: "QObject" + Method { + name: "press" + type: "QObject*" + Parameter { name: "touchId"; type: "int" } + Parameter { name: "item"; type: "QObject"; isPointer: true } + Parameter { name: "x"; type: "double" } + Parameter { name: "y"; type: "double" } + } + Method { + name: "move" + type: "QObject*" + Parameter { name: "touchId"; type: "int" } + Parameter { name: "item"; type: "QObject"; isPointer: true } + Parameter { name: "x"; type: "double" } + Parameter { name: "y"; type: "double" } + } + Method { + name: "release" + type: "QObject*" + Parameter { name: "touchId"; type: "int" } + Parameter { name: "item"; type: "QObject"; isPointer: true } + Parameter { name: "x"; type: "double" } + Parameter { name: "y"; type: "double" } + } + Method { + name: "stationary" + type: "QObject*" + Parameter { name: "touchId"; type: "int" } + } + Method { name: "commit"; type: "QObject*" } + } Component { name: "QuickTestEvent" prototype: "QObject" @@ -127,6 +161,12 @@ Module { Parameter { name: "yDelta"; type: "int" } Parameter { name: "delay"; type: "int" } } + Method { + name: "touchEvent" + type: "QQuickTouchEventSequence*" + Parameter { name: "item"; type: "QObject"; isPointer: true } + } + Method { name: "touchEvent"; type: "QQuickTouchEventSequence*" } } Component { name: "QuickTestResult" diff --git a/src/imports/window/plugins.qmltypes b/src/imports/window/plugins.qmltypes index a79bd8c332..cea2a910a7 100644 --- a/src/imports/window/plugins.qmltypes +++ b/src/imports/window/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.Window 2.2' +// 'qmlplugindump -nonrelocatable QtQuick.Window 2.3' Module { dependencies: ["QtQuick 2.8"] @@ -24,14 +24,28 @@ Module { Component { name: "QQuickScreen" prototype: "QObject" - exports: ["QtQuick.Window/Screen 2.0"] + exports: ["QtQuick.Window/Screen 2.0", "QtQuick.Window/Screen 2.3"] isCreatable: false - exportMetaObjectRevisions: [0] + exportMetaObjectRevisions: [0, 1] attachedType: "QQuickScreenAttached" } Component { name: "QQuickScreenAttached" + prototype: "QQuickScreenInfo" + Property { name: "orientationUpdateMask"; type: "Qt::ScreenOrientations" } + Method { + name: "angleBetween" + type: "int" + Parameter { name: "a"; type: "int" } + Parameter { name: "b"; type: "int" } + } + } + Component { + name: "QQuickScreenInfo" prototype: "QObject" + exports: ["QtQuick.Window/ScreenInfo 2.3"] + isCreatable: false + exportMetaObjectRevisions: [2] Property { name: "name"; type: "string"; isReadonly: true } Property { name: "width"; type: "int"; isReadonly: true } Property { name: "height"; type: "int"; isReadonly: true } @@ -42,25 +56,18 @@ Module { Property { name: "devicePixelRatio"; type: "double"; isReadonly: true } Property { name: "primaryOrientation"; type: "Qt::ScreenOrientation"; isReadonly: true } Property { name: "orientation"; type: "Qt::ScreenOrientation"; isReadonly: true } - Property { name: "orientationUpdateMask"; type: "Qt::ScreenOrientations" } + Property { name: "virtualX"; revision: 1; type: "int"; isReadonly: true } + Property { name: "virtualY"; revision: 1; type: "int"; isReadonly: true } Signal { name: "desktopGeometryChanged" } - Method { - name: "angleBetween" - type: "int" - Parameter { name: "a"; type: "int" } - Parameter { name: "b"; type: "int" } - } + Signal { name: "virtualXChanged"; revision: 1 } + Signal { name: "virtualYChanged"; revision: 1 } } Component { name: "QQuickWindow" defaultProperty: "data" prototype: "QWindow" - exports: [ - "QtQuick.Window/Window 2.0", - "QtQuick.Window/Window 2.1", - "QtQuick.Window/Window 2.2" - ] - exportMetaObjectRevisions: [0, 1, 2] + exports: ["QtQuick.Window/Window 2.0"] + exportMetaObjectRevisions: [0] Enum { name: "SceneGraphError" values: { @@ -125,11 +132,16 @@ Module { name: "QQuickWindowQmlImpl" defaultProperty: "data" prototype: "QQuickWindow" - exports: ["QtQuick.Window/Window 2.1", "QtQuick.Window/Window 2.2"] - exportMetaObjectRevisions: [0, 1] + exports: [ + "QtQuick.Window/Window 2.1", + "QtQuick.Window/Window 2.2", + "QtQuick.Window/Window 2.3" + ] + exportMetaObjectRevisions: [0, 1, 2] attachedType: "QQuickWindowAttached" Property { name: "visible"; type: "bool" } Property { name: "visibility"; type: "Visibility" } + Property { name: "screen"; revision: 2; type: "QObject"; isPointer: true } Signal { name: "visibleChanged" Parameter { name: "arg"; type: "bool" } @@ -138,6 +150,7 @@ Module { name: "visibilityChanged" Parameter { name: "visibility"; type: "QWindow::Visibility" } } + Signal { name: "screenChanged"; revision: 2 } } Component { name: "QWindow" @@ -153,6 +166,13 @@ Module { "FullScreen": 5 } } + Enum { + name: "AncestorMode" + values: { + "ExcludeTransients": 0, + "IncludeTransients": 1 + } + } Property { name: "title"; type: "string" } Property { name: "modality"; type: "Qt::WindowModality" } Property { name: "flags"; type: "Qt::WindowFlags" } -- cgit v1.2.3 From 1ba5c5bb017237501fd8e1e97fc00b4817f19fa4 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 13 Mar 2017 08:44:22 +0100 Subject: Fix accidental assignment in assertion Change-Id: I5b63697c0607f4300b7f203eeac74914f3fb43af Reviewed-by: Holger Freyther Reviewed-by: Lars Knoll --- src/qml/memory/qv4heap_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index 5a3797f397..97aa6ced38 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -144,7 +144,7 @@ struct Q_QML_EXPORT Base { else if (_livenessStatus == Destroyed) fprintf(stderr, "ERROR: use of object '%s' after call to destroy() !!\n", vtable()->className); - Q_ASSERT(_livenessStatus = Initialized); + Q_ASSERT(_livenessStatus == Initialized); } void _checkIsDestroyed() { if (_livenessStatus == Initialized) -- cgit v1.2.3 From 30635ee2424dbd08bb5c2170be0c2dc5f9d23b2c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 13 Mar 2017 08:46:02 +0100 Subject: Fix accidental assignment in assertion Change-Id: Ic826901d120f8073727d06fccfe95e7d75e3d088 Reviewed-by: Lars Knoll --- src/qml/jsruntime/qv4context.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 7a0df5dbf3..d2f2529979 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -343,7 +343,7 @@ void ExecutionContext::setProperty(String *name, const Value &value) if (index < c->v4Function->nFormals) { c->callData->args[c->v4Function->nFormals - index - 1] = value; } else { - Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); + Q_ASSERT(c->type == Heap::ExecutionContext::Type_CallContext); index -= c->v4Function->nFormals; static_cast(c)->locals.set(scope.engine, index, value); } @@ -418,7 +418,7 @@ ReturnedValue ExecutionContext::getProperty(String *name) if (index < UINT_MAX) { if (index < c->v4Function->nFormals) return c->callData->args[c->v4Function->nFormals - index - 1].asReturnedValue(); - Q_ASSERT(c->type = Heap::ExecutionContext::Type_CallContext); + Q_ASSERT(c->type == Heap::ExecutionContext::Type_CallContext); return c->locals[index - c->v4Function->nFormals].asReturnedValue(); } if (c->v4Function->isNamedExpression()) { -- cgit v1.2.3 From a91b83c0bbafbdfb290f2766d51d12e805506e30 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 9 Mar 2017 16:55:13 +0100 Subject: Clean up type dependency hashing for QML caching Instead of passing the engine parameter all the way through the data structure generator, along with the dependent type data structure that is unused otherwise, let's simply provide a function object for the dependency hashing. This is also in preparation for adding singleton types to the dependency hash. Task-number: QTBUG-58486 Change-Id: I5bb5e5c06b7b5c77195cec3da13141333cfea7a8 Reviewed-by: Lars Knoll --- src/qml/compiler/qqmlirbuilder.cpp | 9 ++++----- src/qml/compiler/qqmlirbuilder_p.h | 2 +- src/qml/compiler/qqmltypecompiler.cpp | 5 +++-- src/qml/compiler/qqmltypecompiler_p.h | 4 +++- src/qml/compiler/qv4compileddata.cpp | 7 +++---- src/qml/compiler/qv4compileddata_p.h | 7 ++++--- src/qml/qml/qqmltypeloader.cpp | 16 ++++++++++------ src/qml/qml/qqmltypeloader_p.h | 2 +- 8 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index c0f953ca2c..8ead1c9b5d 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -1359,7 +1359,7 @@ bool IRBuilder::isRedundantNullInitializerForPropertyDeclaration(Property *prope return QQmlJS::AST::cast(expr); } -QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output, QQmlEngine *engine, const QV4::CompiledData::ResolvedTypeReferenceMap &dependentTypes) +QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output, const QV4::CompiledData::DependentTypesHasher &dependencyHasher) { QQmlRefPointer compilationUnit = output.javaScriptCompilationUnit; QV4::CompiledData::Unit *jsUnit = compilationUnit->createUnitData(&output); @@ -1402,17 +1402,16 @@ QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output, QQmlEngine qmlUnit->stringTableSize = output.jsGenerator.stringTable.stringCount(); #ifndef V4_BOOTSTRAP - if (!dependentTypes.isEmpty()) { + if (dependencyHasher) { QCryptographicHash hash(QCryptographicHash::Md5); - if (dependentTypes.addToHash(&hash, engine)) { + if (dependencyHasher(&hash)) { QByteArray checksum = hash.result(); Q_ASSERT(checksum.size() == sizeof(qmlUnit->dependencyMD5Checksum)); memcpy(qmlUnit->dependencyMD5Checksum, checksum.constData(), sizeof(qmlUnit->dependencyMD5Checksum)); } } #else - Q_UNUSED(dependentTypes); - Q_UNUSED(engine); + Q_UNUSED(dependencyHasher); #endif // write imports diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index cc16dc2104..44f8cef16a 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -548,7 +548,7 @@ public: struct Q_QML_PRIVATE_EXPORT QmlUnitGenerator { - QV4::CompiledData::Unit *generate(Document &output, QQmlEngine *engine, const QV4::CompiledData::ResolvedTypeReferenceMap &dependentTypes); + QV4::CompiledData::Unit *generate(Document &output, const QV4::CompiledData::DependentTypesHasher &dependencyHasher = QV4::CompiledData::DependentTypesHasher()); private: typedef bool (Binding::*BindingFilter)() const; diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp index b7262e4333..0f3ebac223 100644 --- a/src/qml/compiler/qqmltypecompiler.cpp +++ b/src/qml/compiler/qqmltypecompiler.cpp @@ -58,10 +58,11 @@ QT_BEGIN_NAMESPACE QQmlTypeCompiler::QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlTypeData *typeData, QmlIR::Document *parsedQML, const QQmlRefPointer &importCache, - const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache) + const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache, const QV4::CompiledData::DependentTypesHasher &dependencyHasher) : resolvedTypes(resolvedTypeCache) , engine(engine) , typeData(typeData) + , dependencyHasher(dependencyHasher) , importCache(importCache) , document(parsedQML) { @@ -156,7 +157,7 @@ QV4::CompiledData::CompilationUnit *QQmlTypeCompiler::compile() // Generate QML compiled type data structures QmlIR::QmlUnitGenerator qmlGenerator; - QV4::CompiledData::Unit *qmlUnit = qmlGenerator.generate(*document, QQmlEnginePrivate::get(engine), resolvedTypes); + QV4::CompiledData::Unit *qmlUnit = qmlGenerator.generate(*document, dependencyHasher); Q_ASSERT(document->javaScriptCompilationUnit); // The js unit owns the data and will free the qml unit. diff --git a/src/qml/compiler/qqmltypecompiler_p.h b/src/qml/compiler/qqmltypecompiler_p.h index de6abb4ced..7df4fb57cb 100644 --- a/src/qml/compiler/qqmltypecompiler_p.h +++ b/src/qml/compiler/qqmltypecompiler_p.h @@ -89,7 +89,8 @@ struct QQmlTypeCompiler { Q_DECLARE_TR_FUNCTIONS(QQmlTypeCompiler) public: - QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlTypeData *typeData, QmlIR::Document *document, const QQmlRefPointer &importCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache); + QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlTypeData *typeData, QmlIR::Document *document, const QQmlRefPointer &importCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache, + const QV4::CompiledData::DependentTypesHasher &dependencyHasher); // --- interface used by QQmlPropertyCacheCreator typedef QmlIR::Object CompiledObject; @@ -139,6 +140,7 @@ private: QList errors; QQmlEnginePrivate *engine; QQmlTypeData *typeData; + const QV4::CompiledData::DependentTypesHasher &dependencyHasher; QQmlRefPointer importCache; QmlIR::Document *document; // index is string index of type name (use obj->inheritedTypeNameIndex) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index d8ff22e9ed..b175abe1f5 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -310,10 +310,9 @@ void CompilationUnit::finalize(QQmlEnginePrivate *engine) totalObjectCount = objectCount; } -bool CompilationUnit::verifyChecksum(QQmlEngine *engine, - const ResolvedTypeReferenceMap &dependentTypes) const +bool CompilationUnit::verifyChecksum(const DependentTypesHasher &dependencyHasher) const { - if (dependentTypes.isEmpty()) { + if (!dependencyHasher) { for (size_t i = 0; i < sizeof(data->dependencyMD5Checksum); ++i) { if (data->dependencyMD5Checksum[i] != 0) return false; @@ -321,7 +320,7 @@ bool CompilationUnit::verifyChecksum(QQmlEngine *engine, return true; } QCryptographicHash hash(QCryptographicHash::Md5); - if (!dependentTypes.addToHash(&hash, engine)) + if (!dependencyHasher(&hash)) return false; QByteArray checksum = hash.result(); Q_ASSERT(checksum.size() == sizeof(data->dependencyMD5Checksum)); diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 2682365182..cb8ce8a649 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -809,8 +809,10 @@ struct ResolvedTypeReferenceMap: public QMap { bool addToHash(QCryptographicHash *hash, QQmlEngine *engine) const; }; + +using DependentTypesHasher = std::function; #else -struct ResolvedTypeReferenceMap {}; +struct DependentTypesHasher {}; #endif // index is per-object binding index @@ -879,8 +881,7 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit : public QQmlRefCount QVector dependentScripts; ResolvedTypeReferenceMap resolvedTypes; - bool verifyChecksum(QQmlEngine *engine, - const ResolvedTypeReferenceMap &dependentTypes) const; + bool verifyChecksum(const DependentTypesHasher &dependencyHasher) const; int metaTypeId; int listMetaTypeId; diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 7ad18c8efb..dea8f3ed6f 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2227,8 +2227,12 @@ void QQmlTypeData::done() QQmlEngine *const engine = typeLoader()->engine(); + const auto dependencyHasher = [engine, resolvedTypeCache](QCryptographicHash *hash) { + return resolvedTypeCache.addToHash(hash, engine); + }; + // verify if any dependencies changed if we're using a cache - if (m_document.isNull() && !m_compiledData->verifyChecksum(engine, resolvedTypeCache)) { + if (m_document.isNull() && !m_compiledData->verifyChecksum(dependencyHasher)) { qCDebug(DBG_DISK_CACHE) << "Checksum mismatch for cached version of" << m_compiledData->url().toString(); if (!loadFromSource()) return; @@ -2238,7 +2242,7 @@ void QQmlTypeData::done() if (!m_document.isNull()) { // Compile component - compile(importCache, resolvedTypeCache); + compile(importCache, resolvedTypeCache, dependencyHasher); } else { createTypeAndPropertyCaches(importCache, resolvedTypeCache); } @@ -2487,12 +2491,13 @@ QString QQmlTypeData::stringAt(int index) const return m_document->jsGenerator.stringTable.stringForIndex(index); } -void QQmlTypeData::compile(const QQmlRefPointer &importCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache) +void QQmlTypeData::compile(const QQmlRefPointer &importCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache, + const QV4::CompiledData::DependentTypesHasher &dependencyHasher) { Q_ASSERT(m_compiledData.isNull()); QQmlEnginePrivate * const enginePrivate = QQmlEnginePrivate::get(typeLoader()->engine()); - QQmlTypeCompiler compiler(enginePrivate, this, m_document.data(), importCache, resolvedTypeCache); + QQmlTypeCompiler compiler(enginePrivate, this, m_document.data(), importCache, resolvedTypeCache, dependencyHasher); m_compiledData = compiler.compile(); if (!m_compiledData) { setError(compiler.compilationErrors()); @@ -2934,8 +2939,7 @@ void QQmlScriptBlob::dataReceived(const Data &data) irUnit.jsModule.unitFlags |= QV4::CompiledData::Unit::IsSharedLibrary; QmlIR::QmlUnitGenerator qmlGenerator; - QV4::CompiledData::ResolvedTypeReferenceMap emptyDependencies; - QV4::CompiledData::Unit *unitData = qmlGenerator.generate(irUnit, m_typeLoader->engine(), emptyDependencies); + QV4::CompiledData::Unit *unitData = qmlGenerator.generate(irUnit); Q_ASSERT(!unit->data); // The js unit owns the data and will free the qml unit. unit->data = unitData; diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index 53cf4234e1..d85346c23e 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -453,7 +453,7 @@ private: QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypeCache ) const; void compile(const QQmlRefPointer &importCache, - const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache); + const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache, const QV4::CompiledData::DependentTypesHasher &dependencyHasher); void createTypeAndPropertyCaches(const QQmlRefPointer &importCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache); bool resolveType(const QString &typeName, int &majorVersion, int &minorVersion, TypeReference &ref); -- cgit v1.2.3 From 5b94de09cc738837d1539e28b3c0dccd17c18d29 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 9 Mar 2017 15:24:59 +0100 Subject: Fix caching of QML singleton types When a QML file depends on a QML singleton, we failed to include it in the dependency hash. Thus changes to the QML singleton did not result in a re-creation of the caches of files that use it. The list of singletons comes from random-ordered hashes in the qml import handling. We provide an order to the direct dependencies by sorting by the singleton type names. Task-number: QTBUG-58486 Change-Id: Ie7e9d006f9bf3a60af1f819ee439c29bc234bd8a Reviewed-by: Lars Knoll --- src/qml/qml/qqmltypeloader.cpp | 37 ++++++++++++++++- src/qml/qml/qqmltypeloader_p.h | 1 + tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp | 53 ++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 2 deletions(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index dea8f3ed6f..3004fd2196 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2007,6 +2007,16 @@ QQmlTypeData::TypeDataCallback::~TypeDataCallback() { } +QString QQmlTypeData::TypeReference::qualifiedName() const +{ + QString result; + if (!prefix.isEmpty()) { + result = prefix + QLatin1Char('.'); + } + result.append(type->qmlTypeName()); + return result; +} + QQmlTypeData::QQmlTypeData(const QUrl &url, QQmlTypeLoader *manager) : QQmlTypeLoader::Blob(url, QmlFile, manager), m_typesResolved(false), m_implicitImportLoaded(false) @@ -2147,6 +2157,23 @@ void QQmlTypeData::createTypeAndPropertyCaches(const QQmlRefPointer &typeRefs, QCryptographicHash *hash, QQmlEngine *engine) +{ + for (const auto &typeRef: typeRefs) { + if (typeRef.typeData) { + const auto unit = typeRef.typeData->compilationUnit(); + hash->addData(unit->data->md5Checksum, sizeof(unit->data->md5Checksum)); + } else if (typeRef.type) { + const auto propertyCache = QQmlEnginePrivate::get(engine)->cache(typeRef.type->metaObject()); + bool ok = false; + hash->addData(propertyCache->checksum(&ok)); + if (!ok) + return false; + } + } + return true; +} + void QQmlTypeData::done() { QDeferredCleanup cleanup([this]{ @@ -2227,8 +2254,10 @@ void QQmlTypeData::done() QQmlEngine *const engine = typeLoader()->engine(); - const auto dependencyHasher = [engine, resolvedTypeCache](QCryptographicHash *hash) { - return resolvedTypeCache.addToHash(hash, engine); + const auto dependencyHasher = [engine, resolvedTypeCache, this](QCryptographicHash *hash) { + if (!resolvedTypeCache.addToHash(hash, engine)) + return false; + return ::addTypeReferenceChecksumsToHash(m_compositeSingletons, hash, engine); }; // verify if any dependencies changed if we're using a cache @@ -2568,6 +2597,10 @@ void QQmlTypeData::resolveTypes() } } + std::stable_sort(m_compositeSingletons.begin(), m_compositeSingletons.end(), [](const TypeReference &lhs, const TypeReference &rhs){ + return lhs.qualifiedName() < rhs.qualifiedName(); + }); + for (QV4::CompiledData::TypeReferenceMap::ConstIterator unresolvedRef = m_typeReferences.constBegin(), end = m_typeReferences.constEnd(); unresolvedRef != end; ++unresolvedRef) { diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index d85346c23e..e3c4a52c45 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -400,6 +400,7 @@ public: int minorVersion; QQmlTypeData *typeData; QString prefix; // used by CompositeSingleton types + QString qualifiedName() const; bool needsCreation; }; diff --git a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp index b265607fd1..9494e3a7fd 100644 --- a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp +++ b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp @@ -58,6 +58,7 @@ private slots: void localAliases(); void cacheResources(); void stableOrderOfDependentCompositeTypes(); + void singletonDependency(); }; // A wrapper around QQmlComponent to ensure the temporary reference counts @@ -737,6 +738,58 @@ void tst_qmldiskcache::stableOrderOfDependentCompositeTypes() } } +void tst_qmldiskcache::singletonDependency() +{ + QScopedPointer engine(new QQmlEngine); + + QTemporaryDir tempDir; + QVERIFY(tempDir.isValid()); + + const auto writeTempFile = [&tempDir](const QString &fileName, const char *contents) { + QFile f(tempDir.path() + '/' + fileName); + const bool ok = f.open(QIODevice::WriteOnly | QIODevice::Truncate); + Q_ASSERT(ok); + f.write(contents); + return f.fileName(); + }; + + writeTempFile("MySingleton.qml", "import QtQml 2.0\npragma Singleton\nQtObject { property int value: 42 }"); + writeTempFile("qmldir", "singleton MySingleton 1.0 MySingleton.qml"); + const QString testFilePath = writeTempFile("main.qml", "import QtQml 2.0\nimport \".\"\nQtObject {\n" + " property int value: MySingleton.value\n" + "}"); + + { + CleanlyLoadingComponent component(engine.data(), QUrl::fromLocalFile(testFilePath)); + QScopedPointer obj(component.create()); + QVERIFY(!obj.isNull()); + QCOMPARE(obj->property("value").toInt(), 42); + } + + const QString testFileCachePath = testFilePath + QLatin1Char('c'); + QVERIFY(QFile::exists(testFileCachePath)); + QDateTime initialCacheTimeStamp = QFileInfo(testFileCachePath).lastModified(); + + engine.reset(new QQmlEngine); + waitForFileSystem(); + + writeTempFile("MySingleton.qml", "import QtQml 2.0\npragma Singleton\nQtObject { property int value: 100 }"); + waitForFileSystem(); + + { + CleanlyLoadingComponent component(engine.data(), QUrl::fromLocalFile(testFilePath)); + QScopedPointer obj(component.create()); + QVERIFY(!obj.isNull()); + QCOMPARE(obj->property("value").toInt(), 100); + } + + { + QVERIFY(QFile::exists(testFileCachePath)); + QDateTime newCacheTimeStamp = QFileInfo(testFileCachePath).lastModified(); + QVERIFY2(newCacheTimeStamp > initialCacheTimeStamp, qPrintable(newCacheTimeStamp.toString())); + } +} + QTEST_MAIN(tst_qmldiskcache) #include "tst_qmldiskcache.moc" -- cgit v1.2.3 From 920e0ddaf987f160cd70deb29d14769092929403 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Thu, 9 Mar 2017 14:20:42 +0100 Subject: Build fix for -no-feature-quick-path Change-Id: Ib52d45a12b367fa08982535a69c14881beec597e Reviewed-by: Lars Knoll --- src/quick/items/context2d/qquickcontext2d.cpp | 10 ++++++++-- src/quick/items/qquickitemsmodule.cpp | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index 0eeba5d6cd..ce890771d9 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -49,8 +49,9 @@ #include #include +#if QT_CONFIG(quick_path) #include - +#endif #include #include @@ -569,9 +570,10 @@ struct QQuickJSContext2D : public QV4::Object static void method_set_shadowOffsetY(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); // should these two be on the proto? +#if QT_CONFIG(quick_path) static void method_get_path(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); static void method_set_path(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); - +#endif static void method_get_font(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); static void method_set_font(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); static void method_get_textAlign(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData); @@ -2034,6 +2036,7 @@ void QQuickJSContext2D::method_set_shadowOffsetY(const QV4::BuiltinFunction *, Q RETURN_UNDEFINED(); } +#if QT_CONFIG(quick_path) void QQuickJSContext2D::method_get_path(const QV4::BuiltinFunction *, QV4::Scope &scope, QV4::CallData *callData) { QV4::Scoped r(scope, callData->thisObject); @@ -2060,6 +2063,7 @@ void QQuickJSContext2D::method_set_path(const QV4::BuiltinFunction *, QV4::Scope r->d()->context->m_v4path.set(scope.engine, value); RETURN_UNDEFINED(); } +#endif // QT_CONFIG(quick_path) //rects /*! @@ -4207,7 +4211,9 @@ QQuickContext2DEngineData::QQuickContext2DEngineData(QV4::ExecutionEngine *v4) proto->defineAccessorProperty(QStringLiteral("fillStyle"), QQuickJSContext2D::method_get_fillStyle, QQuickJSContext2D::method_set_fillStyle); proto->defineAccessorProperty(QStringLiteral("shadowColor"), QQuickJSContext2D::method_get_shadowColor, QQuickJSContext2D::method_set_shadowColor); proto->defineAccessorProperty(QStringLiteral("textBaseline"), QQuickJSContext2D::method_get_textBaseline, QQuickJSContext2D::method_set_textBaseline); +#if QT_CONFIG(quick_path) proto->defineAccessorProperty(QStringLiteral("path"), QQuickJSContext2D::method_get_path, QQuickJSContext2D::method_set_path); +#endif proto->defineAccessorProperty(QStringLiteral("lineJoin"), QQuickJSContext2D::method_get_lineJoin, QQuickJSContext2D::method_set_lineJoin); proto->defineAccessorProperty(QStringLiteral("lineWidth"), QQuickJSContext2D::method_get_lineWidth, QQuickJSContext2D::method_set_lineWidth); proto->defineAccessorProperty(QStringLiteral("textAlign"), QQuickJSContext2D::method_get_textAlign, QQuickJSContext2D::method_set_textAlign); diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp index a8824de9c8..5f6d44b54d 100644 --- a/src/quick/items/qquickitemsmodule.cpp +++ b/src/quick/items/qquickitemsmodule.cpp @@ -273,7 +273,7 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor) qmlRegisterType(); qmlRegisterType(uri, major, minor,"AnchorAnimation"); qmlRegisterType(uri, major, minor,"ParentAnimation"); -#if QT_CONFIG(quick_canvas) +#if QT_CONFIG(quick_path) qmlRegisterType("QtQuick",2,0,"PathAnimation"); qmlRegisterType("QtQuick",2,0,"PathInterpolator"); #endif -- cgit v1.2.3 From 9180241819a9ea5e517977efc5bb031521a56cc6 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Thu, 9 Mar 2017 14:50:19 +0100 Subject: Add features.quick-particles Change-Id: I78b30d254ed64acadcb2acc278ad1dfde55216ac Reviewed-by: Lars Knoll --- src/imports/imports.pro | 2 +- src/quick/configure.json | 8 ++++++++ src/src.pro | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/imports/imports.pro b/src/imports/imports.pro index 0ba949f070..d16ac05669 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -20,7 +20,7 @@ qtHaveModule(quick) { sharedimage \ testlib - qtConfig(quick-shadereffect):qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ + qtConfig(quick-particles): \ SUBDIRS += particles } diff --git a/src/quick/configure.json b/src/quick/configure.json index 4ed11e8318..eabc8c4824 100644 --- a/src/quick/configure.json +++ b/src/quick/configure.json @@ -97,6 +97,14 @@ "privateFeature" ] }, + "quick-particles": { + "label": "Particle support", + "purpose": "Provides a particle system for Qt Quick", + "condition": "features.quick-shadereffect && features.quick-sprite && features.opengl", + "output": [ + "privateFeature" + ] + }, "quick-path": { "label": "Path support", "purpose": "Provides Path elements in Qt Quick", diff --git a/src/src.pro b/src/src.pro index 24e139415b..3bb399acd4 100644 --- a/src/src.pro +++ b/src/src.pro @@ -10,7 +10,7 @@ qtHaveModule(gui):qtConfig(animation) { quick \ qmltest - qtConfig(quick-shadereffect):qtConfig(quick-sprite):qtConfig(opengl(es1|es2)?): \ + qtConfig(quick-particles): \ SUBDIRS += particles qtHaveModule(widgets): SUBDIRS += quickwidgets } -- cgit v1.2.3 From 46468c4762b7e5fc4a69b6560af78a926b651554 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Fri, 16 Dec 2016 16:30:01 +0100 Subject: Doc: added snippets to Extension Objects Example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Icbd2393d4b8523e24328f765e76869c86afb3e72 Reviewed-by: Topi Reiniö --- examples/qml/doc/src/qml-extending.qdoc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/qml/doc/src/qml-extending.qdoc b/examples/qml/doc/src/qml-extending.qdoc index b4174426a8..f99aca5457 100644 --- a/examples/qml/doc/src/qml-extending.qdoc +++ b/examples/qml/doc/src/qml-extending.qdoc @@ -73,24 +73,24 @@ This example builds on: \li \l {Extending QML - Adding Types Example} \endlist -Shows how to use \l {QQmlEngine::}{qmlRegisterExtendedType()} to provide an \l {Registering -Extension Objects}{extension object} to a \l QLineEdit without modifying or -subclassing. +Shows how to use \l {QQmlEngine::}{qmlRegisterExtendedType()} to provide an +\l {Registering Extension Objects}{extension object} to a \l QLineEdit without modifying or +subclassing it. + +Firstly, the LineEditExtension class is registered with the QML system as an extension of QLineEdit: \snippet referenceexamples/extended/main.cpp 0 -The QML engine instantiates a \l QLineEdit +The QML engine then instantiates a \l QLineEdit: \snippet referenceexamples/extended/main.cpp 1 -and sets a property that oly exists on the extension type. +In QML, a property is set on the line edit that only exists in the LineEditExtension class: \snippet referenceexamples/extended/example.qml 0 -The QML engine instantiates a \l QLineEdit and sets a property that -only exists on the extension type. The extension type performs calls on the -\l QLineEdit that otherwise will not be accessible to the QML engine. - +The extension type performs calls on the \l QLineEdit that otherwise will +not be accessible to the QML engine. */ /*! -- cgit v1.2.3 From 5adfb4063a64aa3ae27269330c1fb8960dda4082 Mon Sep 17 00:00:00 2001 From: Josh Faust Date: Tue, 23 Apr 2013 21:36:30 -0700 Subject: Fix QQmlTypeLoader::Blob::qmldirDataAvailable memory overwrite An invalid iterator was being dereferenced. Task-number: QTBUG-59268 Change-Id: I58635667ab4591c06f1d7644243b83fd0172e74f Reviewed-by: Simon Hausmann --- src/qml/qml/qqmltypeloader.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 3004fd2196..6465cd0b19 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -1527,7 +1527,8 @@ bool QQmlTypeLoader::Blob::qmldirDataAvailable(QQmlQmldirData *data, QList Date: Thu, 9 Mar 2017 18:53:23 +0100 Subject: QV4DebugService: Reduce unnecessary recursion and redundancy Large parts of the protocol are unnecessary. There is no reason to send a separate chunk of "handles" with almost every reply. The refs are given as part of the regular data and if the client wants to find out more, it can do further lookups. Also, it makes no sense to encode the function and script names as objects, as they are in fact not JavaScript objects. Unfortunately these cleanups require some cooperation from the client. Older clients will misbehave if we just drop the redundancy. Therefore, we introduce parameters which the client can explicitly set with the "connect" message. redundantRefs tells the service if redundant references are required, namesAsObjects tells it if script and function names have to be sent as objects/ Once we can require clients that support these options, we can drop the code that generates redundant data. Also, fix tst_qv4debugger::evaluateExpression() to actually check all the expressions evaluated, not only the first and second one. Task-number: QTBUG-42435 Change-Id: If93d2a2b9d0b8035f85dbef871bc1b03f199171d Reviewed-by: hjk Reviewed-by: Simon Hausmann --- .../qmldbg_debugger/qv4datacollector.cpp | 72 +++++++++---- .../qmltooling/qmldbg_debugger/qv4datacollector.h | 26 +++-- .../qmltooling/qmldbg_debugger/qv4debugjob.cpp | 17 +-- .../qmltooling/qmldbg_debugger/qv4debugjob.h | 21 +++- .../qmltooling/qmldbg_debugger/qv4debugservice.cpp | 45 ++++++-- .../qmltooling/qmldbg_debugger/qv4debugservice.h | 6 ++ .../qqmldebugjs/qqmldebugjs/tst_qqmldebugjs.cpp | 118 ++++++++++++++++----- .../qml/debugger/qv4debugger/tst_qv4debugger.cpp | 82 ++++++++------ 8 files changed, 274 insertions(+), 113 deletions(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index aed2759383..5d2e754057 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -118,15 +118,18 @@ int QV4DataCollector::encodeScopeType(QV4::Heap::ExecutionContext::ContextType s } } -QV4DataCollector::QV4DataCollector(QV4::ExecutionEngine *engine) : m_engine(engine) +QV4DataCollector::QV4DataCollector(QV4::ExecutionEngine *engine) + : m_engine(engine), m_namesAsObjects(true), m_redundantRefs(true) { m_values.set(engine, engine->newArrayObject()); } +// TODO: Directly call addRef() once we don't need to support redundantRefs anymore QV4DataCollector::Ref QV4DataCollector::collect(const QV4::ScopedValue &value) { Ref ref = addRef(value); - m_collectedRefs.append(ref); + if (m_redundantRefs) + m_collectedRefs.append(ref); return ref; } @@ -190,24 +193,33 @@ const QV4::Object *collectProperty(const QV4::ScopedValue &value, QV4::Execution } } -QJsonObject QV4DataCollector::lookupRef(Ref ref) +QJsonObject QV4DataCollector::lookupRef(Ref ref, bool deep) { QJsonObject dict; - if (lookupSpecialRef(ref, &dict)) - return dict; + + if (m_namesAsObjects) { + if (lookupSpecialRef(ref, &dict)) + return dict; + } + + if (m_redundantRefs) + deep = true; dict.insert(QStringLiteral("handle"), qint64(ref)); QV4::Scope scope(engine()); QV4::ScopedValue value(scope, getValue(ref)); - if (const QV4::Object *o = collectProperty(value, engine(), dict)) - dict.insert(QStringLiteral("properties"), collectProperties(o)); + const QV4::Object *object = collectProperty(value, engine(), dict); + if (deep && object) + dict.insert(QStringLiteral("properties"), collectProperties(object)); return dict; } +// TODO: Drop this method once we don't need to support namesAsObjects anymore QV4DataCollector::Ref QV4DataCollector::addFunctionRef(const QString &functionName) { + Q_ASSERT(m_namesAsObjects); Ref ref = addRef(QV4::Primitive::emptyValue(), false); QJsonObject dict; @@ -220,8 +232,10 @@ QV4DataCollector::Ref QV4DataCollector::addFunctionRef(const QString &functionNa return ref; } +// TODO: Drop this method once we don't need to support namesAsObjects anymore QV4DataCollector::Ref QV4DataCollector::addScriptRef(const QString &scriptName) { + Q_ASSERT(m_namesAsObjects); Ref ref = addRef(QV4::Primitive::emptyValue(), false); QJsonObject dict; @@ -250,6 +264,7 @@ bool QV4DataCollector::collectScope(QJsonObject *dict, int frameNr, int scopeNr) if (!ctxt) return false; + Refs collectedRefs; QV4::ScopedValue v(scope); int nFormals = ctxt->formalCount(); for (unsigned i = 0, ei = nFormals; i != ei; ++i) { @@ -258,7 +273,7 @@ bool QV4DataCollector::collectScope(QJsonObject *dict, int frameNr, int scopeNr) qName = name->string; names.append(qName); v = ctxt->argument(i); - collect(v); + collectedRefs.append(collect(v)); } for (unsigned i = 0, ei = ctxt->variableCount(); i != ei; ++i) { @@ -267,19 +282,24 @@ bool QV4DataCollector::collectScope(QJsonObject *dict, int frameNr, int scopeNr) qName = name->string; names.append(qName); v = ctxt->d()->locals[i]; - collect(v); + collectedRefs.append(collect(v)); } QV4::ScopedObject scopeObject(scope, engine()->newObject()); - Q_ASSERT(names.size() == m_collectedRefs.size()); - for (int i = 0, ei = m_collectedRefs.size(); i != ei; ++i) + Q_ASSERT(names.size() == collectedRefs.size()); + for (int i = 0, ei = collectedRefs.size(); i != ei; ++i) scopeObject->put(engine(), names.at(i), - QV4::Value::fromReturnedValue(getValue(m_collectedRefs.at(i)))); + QV4::Value::fromReturnedValue(getValue(collectedRefs.at(i)))); Ref scopeObjectRef = addRef(scopeObject); - dict->insert(QStringLiteral("ref"), qint64(scopeObjectRef)); - m_collectedRefs.append(scopeObjectRef); + if (m_redundantRefs) { + dict->insert(QStringLiteral("ref"), qint64(scopeObjectRef)); + m_collectedRefs.append(scopeObjectRef); + } else { + *dict = lookupRef(scopeObjectRef, true); + } + return true; } @@ -291,15 +311,16 @@ QJsonObject toRef(QV4DataCollector::Ref ref) { QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int frameNr) { - QV4DataCollector::Ref ref; - QJsonObject frame; frame[QLatin1String("index")] = frameNr; frame[QLatin1String("debuggerFrame")] = false; - ref = addFunctionRef(stackFrame.function); - frame[QLatin1String("func")] = toRef(ref); - ref = addScriptRef(stackFrame.source); - frame[QLatin1String("script")] = toRef(ref); + if (m_namesAsObjects) { + frame[QLatin1String("func")] = toRef(addFunctionRef(stackFrame.function)); + frame[QLatin1String("script")] = toRef(addScriptRef(stackFrame.source)); + } else { + frame[QLatin1String("func")] = stackFrame.function; + frame[QLatin1String("script")] = stackFrame.source; + } frame[QLatin1String("line")] = stackFrame.line - 1; if (stackFrame.column >= 0) frame[QLatin1String("column")] = stackFrame.column; @@ -338,15 +359,17 @@ QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int return frame; } +// TODO: Drop this method once we don't need to support redundantRefs anymore QJsonArray QV4DataCollector::flushCollectedRefs() { + Q_ASSERT(m_redundantRefs); QJsonArray refs; std::sort(m_collectedRefs.begin(), m_collectedRefs.end()); for (int i = 0, ei = m_collectedRefs.size(); i != ei; ++i) { QV4DataCollector::Ref ref = m_collectedRefs.at(i); if (i > 0 && ref == m_collectedRefs.at(i - 1)) continue; - refs.append(lookupRef(ref)); + refs.append(lookupRef(ref, true)); } m_collectedRefs.clear(); @@ -358,6 +381,8 @@ void QV4DataCollector::clear() m_values.set(engine(), engine()->newArrayObject()); m_collectedRefs.clear(); m_specialRefs.clear(); + m_namesAsObjects = true; + m_redundantRefs = true; } QV4DataCollector::Ref QV4DataCollector::addRef(QV4::Value value, bool deduplicate) @@ -401,8 +426,10 @@ QV4::ReturnedValue QV4DataCollector::getValue(Ref ref) return array->getIndexed(ref, Q_NULLPTR); } +// TODO: Drop this method once we don't need to support namesAsObjects anymore bool QV4DataCollector::lookupSpecialRef(Ref ref, QJsonObject *dict) { + Q_ASSERT(m_namesAsObjects); SpecialRefs::const_iterator it = m_specialRefs.constFind(ref); if (it == m_specialRefs.cend()) return false; @@ -440,7 +467,8 @@ QJsonObject QV4DataCollector::collectAsJson(const QString &name, const QV4::Scop if (value->isManaged() && !value->isString()) { Ref ref = addRef(value); dict.insert(QStringLiteral("ref"), qint64(ref)); - m_collectedRefs.append(ref); + if (m_redundantRefs) + m_collectedRefs.append(ref); } collectProperty(value, engine(), dict); diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h index fd6356f22e..2c2514a1b3 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h @@ -66,34 +66,42 @@ public: QV4DataCollector(QV4::ExecutionEngine *engine); - Ref collect(const QV4::ScopedValue &value); - Ref addFunctionRef(const QString &functionName); - Ref addScriptRef(const QString &scriptName); + Ref collect(const QV4::ScopedValue &value); // only for redundantRefs + Ref addFunctionRef(const QString &functionName); // only for namesAsObjects + Ref addScriptRef(const QString &scriptName); // only for namesAsObjects + + void setNamesAsObjects(bool namesAsObjects) { m_namesAsObjects = namesAsObjects; } + bool namesAsObjects() const { return m_namesAsObjects; } + + void setRedundantRefs(bool redundantRefs) { m_redundantRefs = redundantRefs; } + bool redundantRefs() const { return m_redundantRefs; } bool isValidRef(Ref ref) const; - QJsonObject lookupRef(Ref ref); + QJsonObject lookupRef(Ref ref, bool deep); bool collectScope(QJsonObject *dict, int frameNr, int scopeNr); QJsonObject buildFrame(const QV4::StackFrame &stackFrame, int frameNr); QV4::ExecutionEngine *engine() const { return m_engine; } - QJsonArray flushCollectedRefs(); + QJsonArray flushCollectedRefs(); // only for redundantRefs void clear(); private: Ref addRef(QV4::Value value, bool deduplicate = true); QV4::ReturnedValue getValue(Ref ref); - bool lookupSpecialRef(Ref ref, QJsonObject *dict); + bool lookupSpecialRef(Ref ref, QJsonObject *dict); // only for namesAsObjects QJsonArray collectProperties(const QV4::Object *object); QJsonObject collectAsJson(const QString &name, const QV4::ScopedValue &value); void collectArgumentsInContext(); QV4::ExecutionEngine *m_engine; - Refs m_collectedRefs; + Refs m_collectedRefs; // only for redundantRefs QV4::PersistentValue m_values; - typedef QHash SpecialRefs; - SpecialRefs m_specialRefs; + typedef QHash SpecialRefs; // only for namesAsObjects + SpecialRefs m_specialRefs; // only for namesAsObjects + bool m_namesAsObjects; + bool m_redundantRefs; }; QT_END_NAMESPACE diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp index df316c1ae6..a624cf22a4 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp @@ -148,7 +148,7 @@ void BacktraceJob::run() result.insert(QStringLiteral("toFrame"), fromFrame + frameArray.size()); result.insert(QStringLiteral("frames"), frameArray); } - collectedRefs = collector->flushCollectedRefs(); + flushRedundantRefs(); } FrameJob::FrameJob(QV4DataCollector *collector, int frameNr) : @@ -163,7 +163,7 @@ void FrameJob::run() success = false; } else { result = collector->buildFrame(frames[frameNr], frameNr); - collectedRefs = collector->flushCollectedRefs(); + flushRedundantRefs(); success = true; } } @@ -193,7 +193,7 @@ void ScopeJob::run() result[QLatin1String("index")] = scopeNr; result[QLatin1String("frameIndex")] = frameNr; result[QLatin1String("object")] = object; - collectedRefs = collector->flushCollectedRefs(); + flushRedundantRefs(); } bool ScopeJob::wasSuccessful() const @@ -223,9 +223,9 @@ void ValueLookupJob::run() exception = QString::fromLatin1("Invalid Ref: %1").arg(ref); break; } - result[QString::number(ref)] = collector->lookupRef(ref); + result[QString::number(ref)] = collector->lookupRef(ref, true); } - collectedRefs = collector->flushCollectedRefs(); + flushRedundantRefs(); if (scopeObject) engine->popContext(); } @@ -246,8 +246,9 @@ void ExpressionEvalJob::handleResult(QV4::ScopedValue &value) { if (hasExeption()) exception = value->toQStringNoThrow(); - result = collector->lookupRef(collector->collect(value)); - collectedRefs = collector->flushCollectedRefs(); + result = collector->lookupRef(collector->collect(value), true); + if (collector->redundantRefs()) + collectedRefs = collector->flushCollectedRefs(); } const QString &ExpressionEvalJob::exceptionMessage() const @@ -260,8 +261,10 @@ const QJsonObject &ExpressionEvalJob::returnValue() const return result; } +// TODO: Drop this method once we don't need to support redundantRefs anymore const QJsonArray &ExpressionEvalJob::refs() const { + Q_ASSERT(collector->redundantRefs()); return collectedRefs; } diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.h b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.h index 00d3e6206a..eca8710e15 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.h @@ -78,11 +78,24 @@ class CollectJob : public QV4DebugJob protected: QV4DataCollector *collector; QJsonObject result; - QJsonArray collectedRefs; + QJsonArray collectedRefs; // only for redundantRefs + + void flushRedundantRefs() + { + if (collector->redundantRefs()) + collectedRefs = collector->flushCollectedRefs(); + } + public: CollectJob(QV4DataCollector *collector) : collector(collector) {} const QJsonObject &returnValue() const { return result; } - const QJsonArray &refs() const { return collectedRefs; } + + // TODO: Drop this method once we don't need to support redundantRefs anymore + const QJsonArray &refs() const + { + Q_ASSERT(collector->redundantRefs()); + return collectedRefs; + } }; class BacktraceJob: public CollectJob @@ -133,7 +146,7 @@ class ExpressionEvalJob: public JavaScriptJob QV4DataCollector *collector; QString exception; QJsonObject result; - QJsonArray collectedRefs; + QJsonArray collectedRefs; // only for redundantRefs public: ExpressionEvalJob(QV4::ExecutionEngine *engine, int frameNr, int context, @@ -141,7 +154,7 @@ public: void handleResult(QV4::ScopedValue &value) override; const QString &exceptionMessage() const; const QJsonObject &returnValue() const; - const QJsonArray &refs() const; + const QJsonArray &refs() const; // only for redundantRefs }; class GatherSourcesJob: public QV4DebugJob diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp index 1d2cc092dc..fbf6397a18 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp @@ -121,8 +121,18 @@ protected: response.insert(QStringLiteral("running"), debugService->debuggerAgent.isRunning()); } + QV4DataCollector *saneCollector(QV4Debugger *debugger) + { + QV4DataCollector *collector = debugger->collector(); + collector->setNamesAsObjects(debugService->clientRequiresNamesAsObjects()); + collector->setRedundantRefs(debugService->clientRequiresRedundantRefs()); + return collector; + } + + // TODO: drop this method once we don't need to support redundantRefs anymore. void addRefs(const QJsonArray &refs) { + Q_ASSERT(debugService->clientRequiresRedundantRefs()); response.insert(QStringLiteral("refs"), refs); } @@ -286,7 +296,7 @@ public: return; } - BacktraceJob job(debugger->collector(), fromFrame, toFrame); + BacktraceJob job(saneCollector(debugger), fromFrame, toFrame); debugger->runInEngine(&job); // response: @@ -295,7 +305,8 @@ public: addSuccess(true); addRunning(); addBody(job.returnValue()); - addRefs(job.refs()); + if (debugService->clientRequiresRedundantRefs()) + addRefs(job.refs()); } }; @@ -322,7 +333,7 @@ public: return; } - FrameJob job(debugger->collector(), frameNr); + FrameJob job(saneCollector(debugger), frameNr); debugger->runInEngine(&job); if (!job.wasSuccessful()) { createErrorResponse(QStringLiteral("frame retrieval failed")); @@ -337,7 +348,8 @@ public: addSuccess(true); addRunning(); addBody(job.returnValue()); - addRefs(job.refs()); + if (debugService->clientRequiresRedundantRefs()) + addRefs(job.refs()); } }; @@ -369,7 +381,7 @@ public: return; } - ScopeJob job(debugger->collector(), frameNr, scopeNr); + ScopeJob job(saneCollector(debugger), frameNr, scopeNr); debugger->runInEngine(&job); if (!job.wasSuccessful()) { createErrorResponse(QStringLiteral("scope retrieval failed")); @@ -382,7 +394,8 @@ public: addSuccess(true); addRunning(); addBody(job.returnValue()); - addRefs(job.refs()); + if (debugService->clientRequiresRedundantRefs()) + addRefs(job.refs()); } }; @@ -410,7 +423,7 @@ public: debugger = debuggers.first(); } - ValueLookupJob job(handles, debugger->collector()); + ValueLookupJob job(handles, saneCollector(debugger)); debugger->runInEngine(&job); if (!job.exceptionMessage().isEmpty()) { createErrorResponse(job.exceptionMessage()); @@ -421,7 +434,8 @@ public: addSuccess(true); addRunning(); addBody(job.returnValue()); - addRefs(job.refs()); + if (debugService->clientRequiresRedundantRefs()) + addRefs(job.refs()); } } }; @@ -630,7 +644,7 @@ public: } ExpressionEvalJob job(debugger->engine(), frame, context, expression, - debugger->collector()); + saneCollector(debugger)); debugger->runInEngine(&job); if (job.hasExeption()) { createErrorResponse(job.exceptionMessage()); @@ -640,7 +654,8 @@ public: addSuccess(true); addRunning(); addBody(job.returnValue()); - addRefs(job.refs()); + if (debugService->clientRequiresRedundantRefs()) + addRefs(job.refs()); } } }; @@ -662,7 +677,7 @@ V8CommandHandler *QV4DebugServiceImpl::v8CommandHandler(const QString &command) QV4DebugServiceImpl::QV4DebugServiceImpl(QObject *parent) : QQmlConfigurableDebugService(1, parent), - debuggerAgent(this), theSelectedFrame(0), + debuggerAgent(this), theSelectedFrame(0), redundantRefs(true), namesAsObjects(true), unknownV8CommandHandler(new UnknownV8CommandHandler) { addHandler(new V8VersionRequest); @@ -766,6 +781,14 @@ void QV4DebugServiceImpl::messageReceived(const QByteArray &message) TRACE_PROTOCOL(qDebug() << "... type:" << type); if (type == V4_CONNECT) { + QJsonObject parameters = QJsonDocument::fromJson(payload).object(); + namesAsObjects = true; + redundantRefs = true; + if (parameters.contains("namesAsObjects")) + namesAsObjects = parameters.value("namesAsObjects").toBool(); + if (parameters.contains("redundantRefs")) + namesAsObjects = parameters.value("redundantRefs").toBool(); + emit messageToClient(name(), packMessage(type)); stopWaiting(); } else if (type == V4_PAUSE) { diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h index 69e32189b8..bb13890ae4 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h @@ -86,6 +86,9 @@ public: int selectedFrame() const; void selectFrame(int frameNr); + bool clientRequiresRedundantRefs() const { return redundantRefs; } + bool clientRequiresNamesAsObjects() const { return namesAsObjects; } + QV4DebuggerAgent debuggerAgent; protected: @@ -105,6 +108,9 @@ private: static int sequence; int theSelectedFrame; + bool redundantRefs; + bool namesAsObjects; + void addHandler(V8CommandHandler* handler); QHash handlers; QScopedPointer unknownV8CommandHandler; diff --git a/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/tst_qqmldebugjs.cpp b/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/tst_qqmldebugjs.cpp index 31b8d63ec2..d248cf9708 100644 --- a/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/tst_qqmldebugjs.cpp +++ b/tests/auto/qml/debugger/qqmldebugjs/qqmldebugjs/tst_qqmldebugjs.cpp @@ -257,7 +257,7 @@ public: stringify = jsEngine.evaluate(QLatin1String("JSON.stringify")); } - void connect(); + void connect(bool redundantRefs = false, bool namesAsObjects = false); void interrupt(); void continueDebugging(StepAction stepAction); @@ -304,9 +304,13 @@ public: }; -void QJSDebugClient::connect() +void QJSDebugClient::connect(bool redundantRefs, bool namesAsObjects) { - sendMessage(packMessage(CONNECT)); + QJSValue jsonVal = parser.call(QJSValueList() << QLatin1String("{}")); + jsonVal.setProperty("redundantRefs", QJSValue(redundantRefs)); + jsonVal.setProperty("namesAsObjects", QJSValue(namesAsObjects)); + sendMessage(packMessage(CONNECT, + stringify.call(QJSValueList() << jsonVal).toString().toUtf8())); } void QJSDebugClient::interrupt() @@ -870,8 +874,10 @@ void tst_QQmlDebugJS::interrupt() //void connect() QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene); - client->connect(); + client->connect(redundantRefs, namesAsObjects); client->interrupt(); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(interruptRequested()))); @@ -882,8 +888,10 @@ void tst_QQmlDebugJS::getVersion() //void version() QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(connected()))); client->version(); @@ -894,9 +902,11 @@ void tst_QQmlDebugJS::getVersionWhenAttaching() { //void version() QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene, QLatin1String(TIMER_QMLFILE), false); - client->connect(); + client->connect(redundantRefs, namesAsObjects); client->version(); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(result()))); @@ -907,8 +917,10 @@ void tst_QQmlDebugJS::disconnect() //void disconnect() QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene); - client->connect(); + client->connect(redundantRefs, namesAsObjects); client->disconnect(); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(result()))); @@ -918,12 +930,14 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnCompleted() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, ONCOMPLETED_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); QString jsonString(client->response); @@ -939,12 +953,14 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnComponentCreated() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, CREATECOMPONENT_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); QString jsonString(client->response); @@ -959,10 +975,12 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnComponentCreated() void tst_QQmlDebugJS::setBreakpointInScriptOnTimerCallback() { QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 35; init(qmlscene, TIMER_QMLFILE); - client->connect(); + client->connect(redundantRefs, namesAsObjects); //We can set the breakpoint after connect() here because the timer is repeating and if we miss //its first iteration we can still catch the second one. client->setBreakpoint(QLatin1String(TIMER_QMLFILE), sourceLine, -1, true); @@ -981,12 +999,14 @@ void tst_QQmlDebugJS::setBreakpointInScriptInDifferentFile() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 31; init(qmlscene, LOADJSFILE_QMLFILE); client->setBreakpoint(QLatin1String(TEST_JSFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); QString jsonString(client->response); @@ -1002,13 +1022,15 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnComment() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; int actualLine = 36; init(qmlscene, BREAKPOINTRELOCATION_QMLFILE); client->setBreakpoint(QLatin1String(BREAKPOINTRELOCATION_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QEXPECT_FAIL("", "Relocation of breakpoints is disabled right now", Abort); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()), 1)); @@ -1025,13 +1047,15 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnEmptyLine() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 35; int actualLine = 36; init(qmlscene, BREAKPOINTRELOCATION_QMLFILE); client->setBreakpoint(QLatin1String(BREAKPOINTRELOCATION_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QEXPECT_FAIL("", "Relocation of breakpoints is disabled right now", Abort); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()), 1)); @@ -1048,12 +1072,14 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnOptimizedBinding() { //void setBreakpoint(QString type, QString target, int line = -1, int column = -1, bool enabled = false, QString condition = QString(), int ignoreCount = -1) QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 39; init(qmlscene, BREAKPOINTRELOCATION_QMLFILE); client->setBreakpoint(QLatin1String(BREAKPOINTRELOCATION_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); QString jsonString(client->response); @@ -1068,11 +1094,13 @@ void tst_QQmlDebugJS::setBreakpointInScriptOnOptimizedBinding() void tst_QQmlDebugJS::setBreakpointInScriptWithCondition() { QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int out = 10; int sourceLine = 37; init(qmlscene, CONDITION_QMLFILE); - client->connect(); + client->connect(redundantRefs, namesAsObjects); //The breakpoint is in a timer loop so we can set it after connect(). client->setBreakpoint(QLatin1String(CONDITION_QMLFILE), sourceLine, 1, true, QLatin1String("a > 10")); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); @@ -1105,12 +1133,14 @@ void tst_QQmlDebugJS::setBreakpointInScriptWithCondition() void tst_QQmlDebugJS::setBreakpointInScriptThatQuits() { QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene, QUIT_QMLFILE); int sourceLine = 36; client->setBreakpoint(QLatin1String(QUIT_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); QString jsonString(client->response); @@ -1147,12 +1177,14 @@ void tst_QQmlDebugJS::clearBreakpoint() { //void clearBreakpoint(int breakpoint); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine1 = 37; int sourceLine2 = 38; init(qmlscene, CHANGEBREAKPOINT_QMLFILE); - client->connect(); + client->connect(redundantRefs, namesAsObjects); //The breakpoints are in a timer loop so we can set them after connect(). //Furthermore the breakpoints should be hit in the right order because setting of breakpoints //can only occur in the QML event loop. (see QCOMPARE for sourceLine2 below) @@ -1195,10 +1227,12 @@ void tst_QQmlDebugJS::setExceptionBreak() { //void setExceptionBreak(QString type, bool enabled = false); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene, EXCEPTION_QMLFILE); client->setExceptionBreak(QJSDebugClient::All,true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); } @@ -1206,12 +1240,14 @@ void tst_QQmlDebugJS::stepNext() { //void continueDebugging(StepAction stepAction, int stepCount = 1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 37; init(qmlscene, STEPACTION_QMLFILE); client->setBreakpoint(QLatin1String(STEPACTION_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->continueDebugging(QJSDebugClient::Next); @@ -1230,13 +1266,15 @@ void tst_QQmlDebugJS::stepIn() { //void continueDebugging(StepAction stepAction, int stepCount = 1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 41; int actualLine = 37; init(qmlscene, STEPACTION_QMLFILE); client->setBreakpoint(QLatin1String(STEPACTION_QMLFILE), sourceLine, 1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->continueDebugging(QJSDebugClient::In); @@ -1255,13 +1293,15 @@ void tst_QQmlDebugJS::stepOut() { //void continueDebugging(StepAction stepAction, int stepCount = 1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 37; int actualLine = 41; init(qmlscene, STEPACTION_QMLFILE); client->setBreakpoint(QLatin1String(STEPACTION_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->continueDebugging(QJSDebugClient::Out); @@ -1280,6 +1320,8 @@ void tst_QQmlDebugJS::continueDebugging() { //void continueDebugging(StepAction stepAction, int stepCount = 1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine1 = 41; int sourceLine2 = 38; @@ -1287,7 +1329,7 @@ void tst_QQmlDebugJS::continueDebugging() client->setBreakpoint(QLatin1String(STEPACTION_QMLFILE), sourceLine1, -1, true); client->setBreakpoint(QLatin1String(STEPACTION_QMLFILE), sourceLine2, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->continueDebugging(QJSDebugClient::Continue); @@ -1306,12 +1348,14 @@ void tst_QQmlDebugJS::backtrace() { //void backtrace(int fromFrame = -1, int toFrame = -1, bool bottom = false); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, ONCOMPLETED_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->backtrace(); @@ -1322,12 +1366,14 @@ void tst_QQmlDebugJS::getFrameDetails() { //void frame(int number = -1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, ONCOMPLETED_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->frame(); @@ -1338,12 +1384,14 @@ void tst_QQmlDebugJS::getScopeDetails() { //void scope(int number = -1, int frameNumber = -1); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, ONCOMPLETED_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->scope(); @@ -1374,11 +1422,13 @@ void tst_QQmlDebugJS::evaluateInLocalScope() //void evaluate(QString expr, bool global = false, bool disableBreak = false, int frame = -1, const QVariantMap &addContext = QVariantMap()); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); int sourceLine = 34; init(qmlscene, ONCOMPLETED_QMLFILE); client->setBreakpoint(QLatin1String(ONCOMPLETED_QMLFILE), sourceLine, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->frame(); @@ -1461,10 +1511,12 @@ void tst_QQmlDebugJS::getScripts() //void scripts(int types = -1, QList ids = QList(), bool includeSource = false, QVariant filter = QVariant()); QFETCH(bool, qmlscene); + QFETCH(bool, redundantRefs); + QFETCH(bool, namesAsObjects); init(qmlscene); client->setBreakpoint(QString(TEST_QMLFILE), 35, -1, true); - client->connect(); + client->connect(redundantRefs, namesAsObjects); QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); client->scripts(); @@ -1482,8 +1534,16 @@ void tst_QQmlDebugJS::getScripts() void tst_QQmlDebugJS::targetData() { QTest::addColumn("qmlscene"); - QTest::newRow("custom") << false; - QTest::newRow("qmlscene") << true; + QTest::addColumn("redundantRefs"); + QTest::addColumn("namesAsObjects"); + QTest::newRow("custom / redundant / objects") << false << true << true; + QTest::newRow("qmlscene / redundant / objects") << true << true << true; + QTest::newRow("custom / redundant / strings") << false << true << false; + QTest::newRow("qmlscene / redundant / strings") << true << true << false; + QTest::newRow("custom / sparse / objects") << false << false << true; + QTest::newRow("qmlscene / sparse / objects") << true << false << true; + QTest::newRow("custom / sparse / strings") << false << false << false; + QTest::newRow("qmlscene / sparse / strings") << true << false << false; } QTEST_MAIN(tst_QQmlDebugJS) diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp index 56320b8365..6d0d884ed7 100644 --- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp @@ -120,7 +120,6 @@ public: typedef QV4DataCollector::Refs Refs; typedef QV4DataCollector::Ref Ref; struct NamedRefs { - QJsonArray refs; QJsonObject scope; int size() const { @@ -131,15 +130,6 @@ public: return scope.contains(name); } - QJsonObject resolveRef(int ref) const { - foreach (const QJsonValue &val, refs) { - QJsonObject obj = val.toObject(); - if (obj.value(QLatin1String("handle")).toInt() == ref) - return obj; - } - return QJsonObject(); - } - #define DUMP_JSON(x) {\ QJsonDocument doc(x);\ qDebug() << #x << "=" << doc.toJson(QJsonDocument::Indented);\ @@ -209,7 +199,6 @@ public slots: request.expression, &collector); debugger->runInEngine(&job); m_expressionResults << job.returnValue(); - m_expressionRefs << job.refs(); } if (m_captureContextInfo) @@ -235,24 +224,17 @@ public: ScopeJob job(&collector, i, 0); debugger->runInEngine(&job); NamedRefs &refs = m_capturedScope.last(); - refs.refs = job.refs(); QJsonObject object = job.returnValue(); object = object.value(QLatin1String("object")).toObject(); - int ref = object.value(QLatin1String("ref")).toInt(); - object = refs.resolveRef(ref); + if (object.contains("ref") && !object.contains("properties")) { + QVERIFY(collector.redundantRefs()); + object = collector.lookupRef(object.value("ref").toInt(), true); + QVERIFY(object.contains("properties")); + } foreach (const QJsonValue &value, object.value(QLatin1String("properties")).toArray()) { QJsonObject property = value.toObject(); QString name = property.value(QLatin1String("name")).toString(); property.remove(QLatin1String("name")); - if (property.contains(QLatin1String("ref"))) { - int childRef = property.value(QLatin1String("ref")).toInt(); - if (childRef >= 0 && refs.refs.size() > childRef) { - property.remove(QLatin1String("ref")); - property.insert(QLatin1String("properties"), - refs.resolveRef(childRef).value( - QLatin1String("properties")).toArray()); - } - } refs.scope.insert(name, property); } } @@ -283,7 +265,6 @@ public: QVector m_expressionRequests; QV4Debugger::Speed m_resumeSpeed; QList m_expressionResults; - QList m_expressionRefs; QV4Debugger *m_debugger; // Utility methods: @@ -315,9 +296,13 @@ private slots: void conditionalBreakPointInQml(); // context access: + void readArguments_data() { redundancy_data(); } void readArguments(); + void readLocals_data() { redundancy_data(); } void readLocals(); + void readObject_data() { redundancy_data(); } void readObject(); + void readContextInAllFrames_data() { redundancy_data(); } void readContextInAllFrames(); // exceptions: @@ -325,7 +310,9 @@ private slots: void breakInCatch(); void breakInWith(); + void evaluateExpression_data() { redundancy_data(); } void evaluateExpression(); + void stepToEndOfScript_data() { redundancy_data(); } void stepToEndOfScript(); void lastLineOfLoop_data(); @@ -343,6 +330,8 @@ private: waitForSignal(m_engine, SIGNAL(evaluateFinished()), /*timeout*/0); } + void redundancy_data(); + TestEngine *m_engine; QV4::ExecutionEngine *m_v4; TestAgent *m_debuggerAgent; @@ -537,6 +526,9 @@ void tst_qv4debugger::conditionalBreakPointInQml() void tst_qv4debugger::readArguments() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + m_debuggerAgent->m_captureContextInfo = true; QString script = "function f(a, b, c, d) {\n" @@ -560,6 +552,9 @@ void tst_qv4debugger::readArguments() void tst_qv4debugger::readLocals() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + m_debuggerAgent->m_captureContextInfo = true; QString script = "function f(a, b) {\n" @@ -583,6 +578,9 @@ void tst_qv4debugger::readLocals() void tst_qv4debugger::readObject() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + m_debuggerAgent->m_captureContextInfo = true; QString script = "function f(a) {\n" @@ -599,6 +597,12 @@ void tst_qv4debugger::readObject() QVERIFY(frame0.contains("b")); QCOMPARE(frame0.type("b"), QStringLiteral("object")); QJsonObject b = frame0.rawValue("b"); + QVERIFY(b.contains(QStringLiteral("ref"))); + QVERIFY(b.contains(QStringLiteral("value"))); + QVERIFY(!b.contains(QStringLiteral("properties"))); + QVERIFY(b.value("value").isDouble()); + QCOMPARE(b.value("value").toInt(), 2); + b = m_debuggerAgent->collector.lookupRef(b.value("ref").toInt(), true); QVERIFY(b.contains(QStringLiteral("properties"))); QVERIFY(b.value("properties").isArray()); QJsonArray b_props = b.value("properties").toArray(); @@ -614,7 +618,8 @@ void tst_qv4debugger::readObject() QCOMPARE(b_tail.value("name").toString(), QStringLiteral("tail")); QVERIFY(b_tail.contains("ref")); - QJsonObject b_tail_value = m_debuggerAgent->collector.lookupRef(b_tail.value("ref").toInt()); + QJsonObject b_tail_value = m_debuggerAgent->collector.lookupRef(b_tail.value("ref").toInt(), + true); QCOMPARE(b_tail_value.value("type").toString(), QStringLiteral("object")); QVERIFY(b_tail_value.contains("properties")); QJsonArray b_tail_props = b_tail_value.value("properties").toArray(); @@ -631,6 +636,9 @@ void tst_qv4debugger::readObject() void tst_qv4debugger::readContextInAllFrames() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + m_debuggerAgent->m_captureContextInfo = true; QString script = "function fact(n) {\n" @@ -678,7 +686,8 @@ void tst_qv4debugger::pauseOnThrow() QCOMPARE(m_debuggerAgent->m_pauseReason, QV4Debugger::Throwing); QCOMPARE(m_debuggerAgent->m_stackTrace.size(), 2); QVERIFY(m_debuggerAgent->m_thrownValue >= qint64(0)); - QJsonObject exception = m_debuggerAgent->collector.lookupRef(m_debuggerAgent->m_thrownValue); + QJsonObject exception = m_debuggerAgent->collector.lookupRef(m_debuggerAgent->m_thrownValue, + true); // DUMP_JSON(exception); QCOMPARE(exception.value("type").toString(), QStringLiteral("string")); QCOMPARE(exception.value("value").toString(), QStringLiteral("hard")); @@ -722,6 +731,9 @@ void tst_qv4debugger::breakInWith() void tst_qv4debugger::evaluateExpression() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + QString script = "function testFunction() {\n" " var x = 10\n" @@ -750,14 +762,12 @@ void tst_qv4debugger::evaluateExpression() evaluateJavaScript(script, "evaluateExpression"); - QCOMPARE(m_debuggerAgent->m_expressionRefs.count(), 4); - QCOMPARE(m_debuggerAgent->m_expressionRefs[0].size(), 1); - QJsonObject result0 = m_debuggerAgent->m_expressionRefs[0].first().toObject(); + QCOMPARE(m_debuggerAgent->m_expressionResults.count(), 4); + QJsonObject result0 = m_debuggerAgent->m_expressionResults[0]; QCOMPARE(result0.value("type").toString(), QStringLiteral("number")); QCOMPARE(result0.value("value").toInt(), 10); for (int i = 1; i < 4; ++i) { - QCOMPARE(m_debuggerAgent->m_expressionRefs[i].size(), 1); - QJsonObject result1 = m_debuggerAgent->m_expressionRefs[1].first().toObject(); + QJsonObject result1 = m_debuggerAgent->m_expressionResults[i]; QCOMPARE(result1.value("type").toString(), QStringLiteral("number")); QCOMPARE(result1.value("value").toInt(), 20); } @@ -765,6 +775,9 @@ void tst_qv4debugger::evaluateExpression() void tst_qv4debugger::stepToEndOfScript() { + QFETCH(bool, redundantRefs); + m_debuggerAgent->collector.setRedundantRefs(redundantRefs); + QString script = "var ret = 0;\n" "ret += 4;\n" @@ -827,6 +840,13 @@ void tst_qv4debugger::lastLineOfLoop() QCOMPARE(secondState.lineNumber, 7); } +void tst_qv4debugger::redundancy_data() +{ + QTest::addColumn("redundantRefs"); + QTest::addRow("redundant") << true; + QTest::addRow("sparse") << false; +} + QTEST_MAIN(tst_qv4debugger) #include "tst_qv4debugger.moc" -- cgit v1.2.3 From 8469f0501d9c581a6b2fd2e380187a00b47c6f8d Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 14 Mar 2017 17:32:08 +0100 Subject: V4 Debugger: Fix typo We want to set redundantRefs if the client states "redundantRefs". Change-Id: I277120e3feedec14492679ad827845732dc36495 Reviewed-by: Simon Hausmann --- src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp index fbf6397a18..68cdb57a44 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp @@ -787,7 +787,7 @@ void QV4DebugServiceImpl::messageReceived(const QByteArray &message) if (parameters.contains("namesAsObjects")) namesAsObjects = parameters.value("namesAsObjects").toBool(); if (parameters.contains("redundantRefs")) - namesAsObjects = parameters.value("redundantRefs").toBool(); + redundantRefs = parameters.value("redundantRefs").toBool(); emit messageToClient(name(), packMessage(type)); stopWaiting(); -- cgit v1.2.3 From 8675bb6b5a4721aa4d94dcb3cb98dbed061c164f Mon Sep 17 00:00:00 2001 From: Christoph Sterz Date: Fri, 18 Dec 2015 13:18:46 +0100 Subject: Doc: Removed non-working reimplementation suggestions QSGSimpleMaterialShader::uniformMatrixName() and QSGSimpleMaterialShader::uniformOpacityName() cannot be reimplemented since they are non-virtual. Removed the suggestion, so nobody is tempted to do so. Added a Remark in the header to fix towards intended behavior in Qt6. Change-Id: Id23c8d54728095f143f1d0e0520590303cff91a0 Reviewed-by: Giuseppe D'Angelo Reviewed-by: Leena Miettinen Reviewed-by: Jan Arne Petersen Reviewed-by: Gunnar Sletta --- src/quick/scenegraph/util/qsgsimplematerial.cpp | 12 ++++-------- src/quick/scenegraph/util/qsgsimplematerial.h | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/quick/scenegraph/util/qsgsimplematerial.cpp b/src/quick/scenegraph/util/qsgsimplematerial.cpp index 7214a255df..f29c58ad9e 100644 --- a/src/quick/scenegraph/util/qsgsimplematerial.cpp +++ b/src/quick/scenegraph/util/qsgsimplematerial.cpp @@ -194,19 +194,15 @@ /*! \fn const char *QSGSimpleMaterialShader::uniformMatrixName() const - Reimplement this function to give a different name to the uniform for - item transformation. The default value is \c qt_Matrix. - + Returns the name for the transform matrix uniform of this item. + The default value is \c qt_Matrix. */ /*! \fn const char *QSGSimpleMaterialShader::uniformOpacityName() const - Reimplement this function to give a different name to the uniform for - item opacity. The default value is \c qt_Opacity. - - If the shader program does not implement the item opacity, the - implemented function should return a null pointer. + Returns the name for the opacity uniform of this item. + The default value is \c qt_Opacity. */ /*! diff --git a/src/quick/scenegraph/util/qsgsimplematerial.h b/src/quick/scenegraph/util/qsgsimplematerial.h index 8f42599832..80593c755b 100644 --- a/src/quick/scenegraph/util/qsgsimplematerial.h +++ b/src/quick/scenegraph/util/qsgsimplematerial.h @@ -71,6 +71,7 @@ public: resolveUniforms(); } + // ### Qt 6: make both virtual and fix docs const char *uniformMatrixName() const { return "qt_Matrix"; } const char *uniformOpacityName() const { return "qt_Opacity"; } -- cgit v1.2.3 From d88164fdbcc5af073f6f3c9b067d0edb5fa0e6d2 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Wed, 15 Mar 2017 11:16:20 +0100 Subject: qml runtime: don't assume http by default Avoid doing network operations unless a network-specific scheme is given. Task-number: QTBUG-57870 Change-Id: I1387603da5b8325232bef27b0ed45483a0ae30a4 Reviewed-by: David Faure --- tools/qml/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index e8a506264c..8af9a1de41 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -567,7 +567,7 @@ int main(int argc, char *argv[]) loadDummyDataFiles(e, dummyDir); for (const QString &path : qAsConst(files)) { - QUrl url = QUrl::fromUserInput(path, QDir::currentPath()); + QUrl url = QUrl::fromUserInput(path, QDir::currentPath(), QUrl::AssumeLocalFile); if (verboseMode) printf("qml: loading %s\n", qPrintable(url.toString())); QByteArray strippedFile; -- cgit v1.2.3 From 212ccd59627deb8c06227dbf0f3f3329006c326e Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Mon, 13 Mar 2017 16:33:18 +0100 Subject: QSGDistanceFieldGlyphNode: Remove per-node QLinkedList of nodes to delete We avoided deleting these nodes directly due to preprocess, but this is a bit of a hack. QSGRenderer::preprocess already contains some work to allow for modification of nodes at preprocess time, but it didn't allow for detecting dead nodes. By marking a pointer as not to be touched if it is removed during preprocess, we can remove the per-node QLinkedList and delete directly, while at the same time, still not touching deleted nodes later on in preprocess. Change-Id: I99a1ea65d3fe0b73db73e4a1d10d999d56edcdc4 Reviewed-by: Gunnar Sletta --- src/quick/scenegraph/coreapi/qsgrenderer.cpp | 20 +++++++++++++++++++- src/quick/scenegraph/coreapi/qsgrenderer_p.h | 2 ++ src/quick/scenegraph/qsgdistancefieldglyphnode.cpp | 15 ++++----------- src/quick/scenegraph/qsgdistancefieldglyphnode_p.h | 1 - 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/quick/scenegraph/coreapi/qsgrenderer.cpp b/src/quick/scenegraph/coreapi/qsgrenderer.cpp index 9207fdbc55..bb2671f6c3 100644 --- a/src/quick/scenegraph/coreapi/qsgrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgrenderer.cpp @@ -134,6 +134,7 @@ QSGRenderer::QSGRenderer(QSGRenderContext *context) , m_bindable(0) , m_changed_emitted(false) , m_is_rendering(false) + , m_is_preprocessing(false) { } @@ -287,6 +288,8 @@ void QSGRenderer::nodeChanged(QSGNode *node, QSGNode::DirtyState state) void QSGRenderer::preprocess() { + m_is_preprocessing = true; + QSGRootNode *root = rootNode(); Q_ASSERT(root); @@ -298,6 +301,11 @@ void QSGRenderer::preprocess() for (QSet::const_iterator it = items.constBegin(); it != items.constEnd(); ++it) { QSGNode *n = *it; + + // If we are currently preprocessing, check this node hasn't been + // deleted or something. we don't want a use-after-free! + if (m_nodes_dont_preprocess.contains(n)) // skip + continue; if (!nodeUpdater()->isNodeBlocked(n, root)) { n->preprocess(); } @@ -315,8 +323,13 @@ void QSGRenderer::preprocess() updatePassTime = frameTimer.nsecsElapsed(); Q_QUICK_SG_PROFILE_RECORD(QQuickProfiler::SceneGraphRendererFrame, QQuickProfiler::SceneGraphRendererUpdate); + + m_is_preprocessing = false; + m_nodes_dont_preprocess.clear(); } + + void QSGRenderer::addNodesToPreprocess(QSGNode *node) { for (QSGNode *c = node->firstChild(); c; c = c->nextSibling()) @@ -329,8 +342,13 @@ void QSGRenderer::removeNodesToPreprocess(QSGNode *node) { for (QSGNode *c = node->firstChild(); c; c = c->nextSibling()) removeNodesToPreprocess(c); - if (node->flags() & QSGNode::UsePreprocess) + if (node->flags() & QSGNode::UsePreprocess) { m_nodes_to_preprocess.remove(node); + + // If preprocessing *now*, mark the node as gone. + if (m_is_preprocessing) + m_nodes_dont_preprocess.insert(node); + } } diff --git a/src/quick/scenegraph/coreapi/qsgrenderer_p.h b/src/quick/scenegraph/coreapi/qsgrenderer_p.h index 4589685765..1ea2775e6f 100644 --- a/src/quick/scenegraph/coreapi/qsgrenderer_p.h +++ b/src/quick/scenegraph/coreapi/qsgrenderer_p.h @@ -118,11 +118,13 @@ private: QSGNodeUpdater *m_node_updater; QSet m_nodes_to_preprocess; + QSet m_nodes_dont_preprocess; const QSGBindable *m_bindable; uint m_changed_emitted : 1; uint m_is_rendering : 1; + uint m_is_preprocessing : 1; }; class Q_QUICK_PRIVATE_EXPORT QSGBindable diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp index 456a197ba1..11c5444cd2 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp @@ -76,9 +76,6 @@ QSGDistanceFieldGlyphNode::~QSGDistanceFieldGlyphNode() m_glyph_cache->unregisterGlyphNode(this); m_glyph_cache->unregisterOwnerElement(ownerElement()); } - - while (m_nodesToDelete.count()) - delete m_nodesToDelete.takeLast(); } void QSGDistanceFieldGlyphNode::setColor(const QColor &color) @@ -158,9 +155,6 @@ void QSGDistanceFieldGlyphNode::preprocess() { Q_ASSERT(m_glyph_cache); - while (m_nodesToDelete.count()) - delete m_nodesToDelete.takeLast(); - m_glyph_cache->processPendingGlyphs(); m_glyph_cache->update(); @@ -188,13 +182,12 @@ void QSGDistanceFieldGlyphNode::updateGeometry() // Remove previously created sub glyph nodes // We assume all the children are sub glyph nodes QSGNode *subnode = firstChild(); + QSGNode *nextNode = 0; while (subnode) { - // We can't delete the node now as it might be in the preprocess list - // It will be deleted in the next preprocess - m_nodesToDelete.append(subnode); - subnode = subnode->nextSibling(); + nextNode = subnode->nextSibling(); + delete subnode; + subnode = nextNode; } - removeAllChildNodes(); QSGGeometry *g = geometry(); diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h index c0c6bda718..04446c7b2c 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h @@ -107,7 +107,6 @@ private: AntialiasingMode m_antialiasingMode; QRectF m_boundingRect; const QSGDistanceFieldGlyphCache::Texture *m_texture; - QLinkedList m_nodesToDelete; struct GlyphInfo { QVector indexes; -- cgit v1.2.3 From af9536deeaf1123aaae5ce78cee7b4014a01d595 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 15 Mar 2017 13:29:24 +0100 Subject: Fix QQmlMetaType::prettyTypeName to deal with malformed type names We can have QML type names that are empty or end in '/'. In those cases use the QMetaObject to retrieve a more meaningful type name. Change-Id: I4dd0841de13d4e7524a104f0bbc08cb854484cfe Reviewed-by: Simon Hausmann --- src/qml/qml/qqmlmetatype.cpp | 12 ++++++---- tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp | 28 +++++++++++++++++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index bd6b9a1599..bb9b69c479 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -1971,7 +1971,9 @@ QString QQmlMetaType::prettyTypeName(const QObject *object) const int lastSlash = typeName.lastIndexOf(QLatin1Char('/')); if (lastSlash != -1) typeName = typeName.mid(lastSlash + 1); - } else { + } + + if (typeName.isEmpty()) { typeName = QString::fromUtf8(object->metaObject()->className()); int marker = typeName.indexOf(QLatin1String("_QMLTYPE_")); if (marker != -1) @@ -1982,10 +1984,12 @@ QString QQmlMetaType::prettyTypeName(const QObject *object) typeName = typeName.leftRef(marker) + QLatin1Char('*'); type = QQmlMetaType::qmlType(QMetaType::type(typeName.toLatin1())); if (type) { - typeName = type->qmlTypeName(); - const int lastSlash = typeName.lastIndexOf(QLatin1Char('/')); + QString qmlTypeName = type->qmlTypeName(); + const int lastSlash = qmlTypeName.lastIndexOf(QLatin1Char('/')); if (lastSlash != -1) - typeName = typeName.mid(lastSlash + 1); + qmlTypeName = qmlTypeName.mid(lastSlash + 1); + if (!qmlTypeName.isEmpty()) + typeName = qmlTypeName; } } } diff --git a/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp b/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp index 9fbd719d7b..30e517c8f9 100644 --- a/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp +++ b/tests/auto/qml/qqmlmetatype/tst_qqmlmetatype.cpp @@ -52,6 +52,7 @@ private slots: void qmlPropertyValueInterceptorCast(); void qmlType(); void invalidQmlTypeName(); + void prettyTypeName(); void registrationType(); void compositeType(); void externalEnums(); @@ -72,6 +73,16 @@ public: }; QML_DECLARE_TYPE(TestType); +class TestType2 : public QObject +{ + Q_OBJECT +}; + +class TestType3 : public QObject +{ + Q_OBJECT +}; + class ExternalEnums : public QObject { Q_OBJECT @@ -214,13 +225,28 @@ void tst_qqmlmetatype::invalidQmlTypeName() { QStringList currFailures = QQmlMetaType::typeRegistrationFailures(); QCOMPARE(qmlRegisterType("TestNamespace", 1, 0, "Test$Type"), -1); // should fail due to invalid QML type name. + QCOMPARE(qmlRegisterType("Test", 1, 0, "EndingInSlash/"), -1); QStringList nowFailures = QQmlMetaType::typeRegistrationFailures(); foreach (const QString &f, currFailures) nowFailures.removeOne(f); - QCOMPARE(nowFailures.size(), 1); + QCOMPARE(nowFailures.size(), 2); QCOMPARE(nowFailures.at(0), QStringLiteral("Invalid QML element name \"Test$Type\"")); + QCOMPARE(nowFailures.at(1), QStringLiteral("Invalid QML element name \"EndingInSlash/\"")); +} + +void tst_qqmlmetatype::prettyTypeName() +{ + TestType2 obj2; + QCOMPARE(QQmlMetaType::prettyTypeName(&obj2), QString("TestType2")); + QVERIFY(qmlRegisterType("Test", 1, 0, "") >= 0); + QCOMPARE(QQmlMetaType::prettyTypeName(&obj2), QString("TestType2")); + + TestType3 obj3; + QCOMPARE(QQmlMetaType::prettyTypeName(&obj3), QString("TestType3")); + QVERIFY(qmlRegisterType("Test", 1, 0, "OtherName") >= 0); + QCOMPARE(QQmlMetaType::prettyTypeName(&obj3), QString("OtherName")); } void tst_qqmlmetatype::isList() -- cgit v1.2.3 From 34ff6c40c1a03f51bc259e57cffb02ad69c7663b Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Wed, 18 Jan 2017 16:26:43 +0100 Subject: qml: Override the new Object::instanceOf hook to allow QML type checking [ChangeLog][QtQml] The instanceof keyword in JavaScript has been extended to work on QML types and instances. This means that you are now able to use it to verify that a var is indeed the type you expect (e.g. someVar instanceof Rectangle). Note that one of the added tests revealed a slight shortcoming in the QML type system (QTBUG-58477). For now, we should keep consistency and work to address the problem universally in the future. Change-Id: I7d9bf9b64cfd037908de1ae51b01065eacb95abe Task-number: QTBUG-24799 Reviewed-by: Simon Hausmann --- src/qml/doc/src/javascript/hostenvironment.qdoc | 13 ++ src/qml/qml/qqmltypewrapper.cpp | 40 +++++ src/qml/qml/qqmltypewrapper_p.h | 2 +- .../auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 2 + .../data/instanceOf/CustomMouseArea.qml | 6 + .../data/instanceOf/CustomRectangle.qml | 4 + .../data/instanceOf/CustomRectangleWithProp.qml | 6 + tests/auto/qml/qqmllanguage/data/instanceOf/qmldir | 2 + .../qml/qqmllanguage/data/instanceof_qtqml.qml | 13 ++ .../data/instanceof_qtqml_qualified.qml | 13 ++ .../qml/qqmllanguage/data/instanceof_qtquick.qml | 14 ++ .../data/instanceof_qtquick_composite.qml | 26 +++ .../instanceof_qtquick_composite_qualified.qml | 27 +++ tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 199 ++++++++++++++++++++- 14 files changed, 365 insertions(+), 2 deletions(-) create mode 100644 tests/auto/qml/qqmllanguage/data/instanceOf/CustomMouseArea.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangle.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangleWithProp.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceOf/qmldir create mode 100644 tests/auto/qml/qqmllanguage/data/instanceof_qtqml.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceof_qtqml_qualified.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceof_qtquick.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite.qml create mode 100644 tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite_qualified.qml diff --git a/src/qml/doc/src/javascript/hostenvironment.qdoc b/src/qml/doc/src/javascript/hostenvironment.qdoc index 1e33f2f641..7e9a22f5d3 100644 --- a/src/qml/doc/src/javascript/hostenvironment.qdoc +++ b/src/qml/doc/src/javascript/hostenvironment.qdoc @@ -74,6 +74,19 @@ Note that QML makes the following modifications to native objects: \li Locale-aware conversion functions are added to the \l Date and \l Number prototypes. \endlist +In addition, QML also extends the behavior of the instanceof function to +allow for type checking against QML types. This means that you may use it to +verify that a variable is indeed the type you expect, for example: + +\qml + var v = something(); + if (!v instanceof Item) { + throw new TypeError("I need an Item type!"); + } + + ... +\endqml + \section1 JavaScript Environment Restrictions diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp index 49103ed653..7b98096a7f 100644 --- a/src/qml/qml/qqmltypewrapper.cpp +++ b/src/qml/qml/qqmltypewrapper.cpp @@ -342,4 +342,44 @@ bool QmlTypeWrapper::isEqualTo(Managed *a, Managed *b) return false; } +ReturnedValue QmlTypeWrapper::instanceOf(const Object *typeObject, const Value &var) +{ + Q_ASSERT(typeObject->as()); + const QV4::QmlTypeWrapper *typeWrapper = static_cast(typeObject); + QV4::ExecutionEngine *engine = typeObject->internalClass()->engine; + QQmlEnginePrivate *qenginepriv = QQmlEnginePrivate::get(engine->qmlEngine()); + + // can only compare a QObject* against a QML type + const QObjectWrapper *wrapper = var.as(); + if (!wrapper) + return engine->throwTypeError(); + + // in case the wrapper outlived the QObject* + const QObject *wrapperObject = wrapper->object(); + if (!wrapperObject) + return engine->throwTypeError(); + + const int myTypeId = typeWrapper->d()->type->typeId(); + QQmlMetaObject myQmlType; + if (myTypeId == 0) { + // we're a composite type; a composite type cannot be equal to a + // non-composite object instance (Rectangle{} is never an instance of + // CustomRectangle) + QQmlData *theirDData = QQmlData::get(wrapperObject, /*create=*/false); + Q_ASSERT(theirDData); // must exist, otherwise how do we have a QObjectWrapper for it?! + if (!theirDData->compilationUnit) + return Encode(false); + + QQmlTypeData *td = qenginepriv->typeLoader.getType(typeWrapper->d()->type->sourceUrl()); + CompiledData::CompilationUnit *cu = td->compilationUnit(); + myQmlType = qenginepriv->metaObjectForType(cu->metaTypeId); + } else { + myQmlType = qenginepriv->metaObjectForType(myTypeId); + } + + const QMetaObject *theirType = wrapperObject->metaObject(); + + return QV4::Encode(QQmlMetaObject::canConvert(theirType, myQmlType)); +} + QT_END_NAMESPACE diff --git a/src/qml/qml/qqmltypewrapper_p.h b/src/qml/qml/qqmltypewrapper_p.h index cfb6cb0ec9..c584458ed4 100644 --- a/src/qml/qml/qqmltypewrapper_p.h +++ b/src/qml/qml/qqmltypewrapper_p.h @@ -103,7 +103,7 @@ struct Q_QML_EXPORT QmlTypeWrapper : Object static bool put(Managed *m, String *name, const Value &value); static PropertyAttributes query(const Managed *, String *name); static bool isEqualTo(Managed *that, Managed *o); - + static ReturnedValue instanceOf(const Object *typeObject, const Value &var); }; } diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 91ceed7697..6c9cb331a2 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -8170,6 +8170,8 @@ void tst_qqmlecmascript::stringify_qtbug_50592() QCOMPARE(obj->property("source").toString(), QString::fromLatin1("http://example.org/some_nonexistant_image.png")); } +// Tests for the JS-only instanceof. Tests for the QML extensions for +// instanceof belong in tst_qqmllanguage! void tst_qqmlecmascript::instanceof_data() { QTest::addColumn("setupCode"); diff --git a/tests/auto/qml/qqmllanguage/data/instanceOf/CustomMouseArea.qml b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomMouseArea.qml new file mode 100644 index 0000000000..f6ec5848c1 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomMouseArea.qml @@ -0,0 +1,6 @@ +import QtQuick 2.6 + +MouseArea { + +} + diff --git a/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangle.qml b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangle.qml new file mode 100644 index 0000000000..b3fa43a671 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangle.qml @@ -0,0 +1,4 @@ +import QtQuick 2.6 + +Rectangle { +} diff --git a/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangleWithProp.qml b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangleWithProp.qml new file mode 100644 index 0000000000..cf566b9315 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceOf/CustomRectangleWithProp.qml @@ -0,0 +1,6 @@ +import QtQuick 2.6 + +Rectangle { + property int somethingCustom: 0 +} + diff --git a/tests/auto/qml/qqmllanguage/data/instanceOf/qmldir b/tests/auto/qml/qqmllanguage/data/instanceOf/qmldir new file mode 100644 index 0000000000..144c93d8e3 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceOf/qmldir @@ -0,0 +1,2 @@ +CustomRectangle 1.0 CustomRectangle.qml +CustomMouseArea 1.0 CustomMouseArea.qml diff --git a/tests/auto/qml/qqmllanguage/data/instanceof_qtqml.qml b/tests/auto/qml/qqmllanguage/data/instanceof_qtqml.qml new file mode 100644 index 0000000000..d74b172cf8 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceof_qtqml.qml @@ -0,0 +1,13 @@ +import QtQml 2.0 + +QtObject { + id: qtobjectInstance + + property Timer aTimer: Timer { + id: timerInstance + } + + property Connections aConnections: Connections { + id: connectionsInstance + } +} diff --git a/tests/auto/qml/qqmllanguage/data/instanceof_qtqml_qualified.qml b/tests/auto/qml/qqmllanguage/data/instanceof_qtqml_qualified.qml new file mode 100644 index 0000000000..a8e303363e --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceof_qtqml_qualified.qml @@ -0,0 +1,13 @@ +import QtQml 2.0 as QmlImport + +QmlImport.QtObject { + id: qtobjectInstance + + property QmlImport.Timer aTimer: QmlImport.Timer { + id: timerInstance + } + + property QmlImport.Connections aConnections: QmlImport.Connections { + id: connectionsInstance + } +} diff --git a/tests/auto/qml/qqmllanguage/data/instanceof_qtquick.qml b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick.qml new file mode 100644 index 0000000000..9c1808d515 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick.qml @@ -0,0 +1,14 @@ +import QtQuick 2.0 + +Item { + id: itemInstance + + Rectangle { + id: rectangleInstance + } + + MouseArea { + id: mouseAreaInstance + } +} + diff --git a/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite.qml b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite.qml new file mode 100644 index 0000000000..78fc112805 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite.qml @@ -0,0 +1,26 @@ +import QtQuick 2.0 +import "instanceOf" + +Item { + id: itemInstance + + Rectangle { + id: rectangleInstance + } + + MouseArea { + id: mouseAreaInstance + } + + CustomRectangle { + id: customRectangleInstance + } + CustomRectangleWithProp { + id: customRectangleWithPropInstance + } + CustomMouseArea { + id: customMouseAreaInstance + } +} + + diff --git a/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite_qualified.qml b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite_qualified.qml new file mode 100644 index 0000000000..97361b7334 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/instanceof_qtquick_composite_qualified.qml @@ -0,0 +1,27 @@ +import QtQuick 2.0 as QuickImport +import "instanceOf" as CustomImport + +QuickImport.Item { + id: itemInstance + + QuickImport.Rectangle { + id: rectangleInstance + } + + QuickImport.MouseArea { + id: mouseAreaInstance + } + + CustomImport.CustomRectangle { + id: customRectangleInstance + } + CustomImport.CustomRectangleWithProp { + id: customRectangleWithPropInstance + } + CustomImport.CustomMouseArea { + id: customMouseAreaInstance + } +} + + + diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index 750c32cc3c..e67fa18309 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -263,6 +263,9 @@ private slots: void qmlTypeCanBeResolvedByName_data(); void qmlTypeCanBeResolvedByName(); + void instanceof_data(); + void instanceof(); + private: QQmlEngine engine; QStringList defaultImportPathList; @@ -309,7 +312,7 @@ private: if (!errorfile) { \ if (qgetenv("DEBUG") != "" && !component.errors().isEmpty()) \ qWarning() << "Unexpected Errors:" << component.errors(); \ - QVERIFY(!component.isError()); \ + QVERIFY2(!component.isError(), qPrintable(component.errorString())); \ QVERIFY(component.errors().isEmpty()); \ } else { \ DETERMINE_ERRORS(errorfile,expected,actual);\ @@ -4338,6 +4341,200 @@ void tst_qqmllanguage::qmlTypeCanBeResolvedByName() QVERIFY(!o.isNull()); } +// Tests for the QML-only extensions of instanceof. Tests for the regular JS +// instanceof belong in tst_qqmlecmascript! +void tst_qqmllanguage::instanceof_data() +{ + QTest::addColumn("documentToTestIn"); + QTest::addColumn("expectedValue"); + + // so the way this works is that the name of the test tag defines the test + // to run. + // + // the expectedValue is either a boolean true or false for whether the two + // operands are indeed an instanceof each other, or a string for the + // expected error message. + + // assert that basic types don't convert to QObject + QTest::newRow("1 instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + QTest::newRow("true instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + QTest::newRow("\"foobar\" instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + + // assert that Managed don't either + QTest::newRow("new String(\"foobar\") instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + QTest::newRow("new Object() instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + QTest::newRow("new Date() instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant("TypeError: Type error"); + + // test that simple QtQml comparisons work + QTest::newRow("qtobjectInstance instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(true); + QTest::newRow("qtobjectInstance instanceof Timer") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(false); + QTest::newRow("timerInstance instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(true); + QTest::newRow("timerInstance instanceof Timer") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(true); + QTest::newRow("connectionsInstance instanceof QtObject") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(true); + QTest::newRow("connectionsInstance instanceof Timer") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(false); + QTest::newRow("connectionsInstance instanceof Connections") + << testFileUrl("instanceof_qtqml.qml") + << QVariant(true); + + // make sure they still work when imported with a qualifier + QTest::newRow("qtobjectInstance instanceof QmlImport.QtObject") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(true); + QTest::newRow("qtobjectInstance instanceof QmlImport.Timer") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(false); + QTest::newRow("timerInstance instanceof QmlImport.QtObject") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(true); + QTest::newRow("timerInstance instanceof QmlImport.Timer") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(true); + QTest::newRow("connectionsInstance instanceof QmlImport.QtObject") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(true); + QTest::newRow("connectionsInstance instanceof QmlImport.Timer") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(false); + QTest::newRow("connectionsInstance instanceof QmlImport.Connections") + << testFileUrl("instanceof_qtqml_qualified.qml") + << QVariant(true); + + // test that Quick C++ types work ok + QTest::newRow("itemInstance instanceof QtObject") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(true); + QTest::newRow("itemInstance instanceof Timer") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(false); + QTest::newRow("itemInstance instanceof Rectangle") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(false); + QTest::newRow("rectangleInstance instanceof Item") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(true); + QTest::newRow("rectangleInstance instanceof Rectangle") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(true); + QTest::newRow("rectangleInstance instanceof MouseArea") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(false); + QTest::newRow("mouseAreaInstance instanceof Item") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(true); + QTest::newRow("mouseAreaInstance instanceof Rectangle") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(false); + QTest::newRow("mouseAreaInstance instanceof MouseArea") + << testFileUrl("instanceof_qtquick.qml") + << QVariant(true); + + // test that unqualified quick composite types work ok + QTest::newRow("rectangleInstance instanceof CustomRectangle") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(false); + QTest::newRow("customRectangleInstance instanceof Rectangle") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(true); + QTest::newRow("customRectangleInstance instanceof Item") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(true); + QTest::newRow("customRectangleWithPropInstance instanceof CustomRectangleWithProp") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(true); + QTest::newRow("customRectangleWithPropInstance instanceof CustomRectangle") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(false); // ### XXX: QTBUG-58477 + QTest::newRow("customRectangleWithPropInstance instanceof Rectangle") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(true); + QTest::newRow("customRectangleInstance instanceof MouseArea") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(false); + QTest::newRow("customMouseAreaInstance instanceof MouseArea") + << testFileUrl("instanceof_qtquick_composite.qml") + << QVariant(true); + + // test that they still work when qualified + QTest::newRow("rectangleInstance instanceof CustomImport.CustomRectangle") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(false); + QTest::newRow("customRectangleInstance instanceof QuickImport.Rectangle") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(true); + QTest::newRow("customRectangleInstance instanceof QuickImport.Item") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(true); + QTest::newRow("customRectangleWithPropInstance instanceof CustomImport.CustomRectangleWithProp") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(true); + QTest::newRow("customRectangleWithPropInstance instanceof CustomImport.CustomRectangle") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(false); // ### XXX: QTBUG-58477 + QTest::newRow("customRectangleWithPropInstance instanceof QuickImport.Rectangle") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(true); + QTest::newRow("customRectangleInstance instanceof QuickImport.MouseArea") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(false); + QTest::newRow("customMouseAreaInstance instanceof QuickImport.MouseArea") + << testFileUrl("instanceof_qtquick_composite_qualified.qml") + << QVariant(true); +} + +void tst_qqmllanguage::instanceof() +{ + QFETCH(QUrl, documentToTestIn); + QFETCH(QVariant, expectedValue); + + QQmlEngine engine; + QQmlComponent component(&engine, documentToTestIn); + VERIFY_ERRORS(0); + + QScopedPointer o(component.create()); + QVERIFY(o != 0); + + QQmlExpression expr(engine.contextForObject(o.data()), 0, QString::fromLatin1(QTest::currentDataTag())); + QVariant ret = expr.evaluate(); + + if (expectedValue.type() == QVariant::Bool) { + // no error expected + QVERIFY2(!expr.hasError(), qPrintable(expr.error().description())); + bool returnValue = ret.toBool(); + + if (QTest::currentDataTag() == QLatin1String("customRectangleWithPropInstance instanceof CustomRectangle") || + QTest::currentDataTag() == QLatin1String("customRectangleWithPropInstance instanceof CustomImport.CustomRectangle")) + QEXPECT_FAIL("", "QTBUG-58477: QML type rules are a little lax", Continue); + QCOMPARE(returnValue, expectedValue.toBool()); + } else { + QVERIFY(expr.hasError()); + QCOMPARE(expr.error().description(), expectedValue.toString()); + } +} + QTEST_MAIN(tst_qqmllanguage) #include "tst_qqmllanguage.moc" -- cgit v1.2.3 From 755250f2f991e81fe092db203f072968c0c8f396 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 14 Mar 2017 11:26:14 -0700 Subject: QHash: use the public functions to set the global hash seed Task-number: QTBUG-47566 Change-Id: I4a7dc1fe14154695b968fffd14abd2e3189c6ad2 Reviewed-by: Simon Hausmann --- tests/auto/qml/v4misc/tst_v4misc.cpp | 10 +++------- tests/manual/scenegraph_lancelot/scenegrabber/main.cpp | 5 ++--- tools/qmlcachegen/qmlcachegen.cpp | 4 ++-- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/tests/auto/qml/v4misc/tst_v4misc.cpp b/tests/auto/qml/v4misc/tst_v4misc.cpp index 88b6ae92a8..55a1f65608 100644 --- a/tests/auto/qml/v4misc/tst_v4misc.cpp +++ b/tests/auto/qml/v4misc/tst_v4misc.cpp @@ -26,6 +26,7 @@ ** ****************************************************************************/ +#include #include #define V4_AUTOTEST @@ -46,17 +47,12 @@ private slots: void moveMapping_2(); }; -QT_BEGIN_NAMESPACE -// Avoid QHash randomization so that the temp numbering is stable. -extern Q_CORE_EXPORT QBasicAtomicInt qt_qhash_seed; // from qhash.cpp -QT_END_NAMESPACE - using namespace QT_PREPEND_NAMESPACE(QV4::IR); void tst_v4misc::initTestCase() { - qt_qhash_seed.store(0); - QCOMPARE(qt_qhash_seed.load(), 0); + qSetGlobalQHashSeed(0); + QCOMPARE(qGlobalQHashSeed(), 0); } // split between two ranges diff --git a/tests/manual/scenegraph_lancelot/scenegrabber/main.cpp b/tests/manual/scenegraph_lancelot/scenegrabber/main.cpp index 886cfc6599..6da0799bbc 100644 --- a/tests/manual/scenegraph_lancelot/scenegrabber/main.cpp +++ b/tests/manual/scenegraph_lancelot/scenegrabber/main.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -134,11 +135,9 @@ private: }; -Q_CORE_EXPORT extern QBasicAtomicInt qt_qhash_seed; - int main(int argc, char *argv[]) { - qt_qhash_seed = 0; + qSetGlobalQHashSeed(0); QGuiApplication a(argc, argv); diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index 9a68e2ac97..657b1e8501 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -32,13 +32,13 @@ #include #include #include +#include #include #include #include QT_BEGIN_NAMESPACE -extern Q_CORE_EXPORT QBasicAtomicInt qt_qhash_seed; namespace QV4 { namespace JIT { Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &architecture); @@ -291,7 +291,7 @@ static bool compileJSFile(const QString &inputFileName, const QString &outputFil int main(int argc, char **argv) { // Produce reliably the same output for the same input by disabling QHash's random seeding. - qt_qhash_seed.testAndSetRelaxed(-1, 0); + qSetGlobalQHashSeed(0); QCoreApplication app(argc, argv); QCoreApplication::setApplicationName(QStringLiteral("qmlcachegen")); -- cgit v1.2.3 From e7a6544225a5ab3749230fc6783a5145e02dbe32 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 23 Feb 2017 16:26:53 +0100 Subject: Use qRadiansToDegrees() more widely It documents the meaning of the computation more clearly. Task-number: QTBUG-58083 Change-Id: Ie2d486d1e1919569de5a1565e783703b9b3bc813 Reviewed-by: Robin Burchell --- src/quick/items/context2d/qquickcontext2d.cpp | 12 +++++------- src/quick/items/qquickitemanimation.cpp | 2 +- src/quick/items/qquickstateoperations.cpp | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index cf34523693..66afd3828b 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -128,8 +128,6 @@ QT_BEGIN_NAMESPACE Q_CORE_EXPORT double qstrtod(const char *s00, char const **se, bool *ok); -#define DEGREES(t) ((t) * 180.0 / M_PI) - #define CHECK_CONTEXT(r) if (!r || !r->d()->context || !r->d()->context->bufferValid()) \ THROW_GENERIC_ERROR("Not a Context2D object"); @@ -1641,7 +1639,7 @@ void QQuickJSContext2DPrototype::method_createConicalGradient(const QV4::Builtin if (callData->argc >= 3) { qreal x = callData->args[0].toNumber(); qreal y = callData->args[1].toNumber(); - qreal angle = DEGREES(callData->args[2].toNumber()); + qreal angle = qRadiansToDegrees(callData->args[2].toNumber()); if (!qt_is_finite(x) || !qt_is_finite(y)) { THROW_DOM(DOMEXCEPTION_NOT_SUPPORTED_ERR, "createConicalGradient(): Incorrect arguments"); } @@ -3366,7 +3364,7 @@ void QQuickContext2D::rotate(qreal angle) return; QTransform newTransform =state.matrix; - newTransform.rotate(DEGREES(angle)); + newTransform.rotate(qRadiansToDegrees(angle)); if (!newTransform.isInvertible()) { state.invertibleCTM = false; @@ -3375,7 +3373,7 @@ void QQuickContext2D::rotate(qreal angle) state.matrix = newTransform; buffer()->updateMatrix(state.matrix); - m_path = QTransform().rotate(-DEGREES(angle)).map(m_path); + m_path = QTransform().rotate(-qRadiansToDegrees(angle)).map(m_path); } void QQuickContext2D::shear(qreal h, qreal v) @@ -3772,8 +3770,8 @@ void QQuickContext2D::arc(qreal xc, qreal yc, qreal radius, qreal sar, qreal ear antiClockWise = !antiClockWise; //end hack - float sa = DEGREES(sar); - float ea = DEGREES(ear); + float sa = qRadiansToDegrees(sar); + float ea = qRadiansToDegrees(ear); double span = 0; diff --git a/src/quick/items/qquickitemanimation.cpp b/src/quick/items/qquickitemanimation.cpp index 9873622f41..874130b137 100644 --- a/src/quick/items/qquickitemanimation.cpp +++ b/src/quick/items/qquickitemanimation.cpp @@ -327,7 +327,7 @@ QAbstractAnimationJob* QQuickParentAnimation::transition(QQuickStateActions &act } if (scale != 0) - rotation = qAtan2(transform.m12()/scale, transform.m11()/scale) * 180/M_PI; + rotation = qRadiansToDegrees(qAtan2(transform.m12() / scale, transform.m11() / scale)); else { qmlWarning(this) << QQuickParentAnimation::tr("Unable to preserve appearance under scale of 0"); ok = false; diff --git a/src/quick/items/qquickstateoperations.cpp b/src/quick/items/qquickstateoperations.cpp index b40a9e2843..a4ce13a199 100644 --- a/src/quick/items/qquickstateoperations.cpp +++ b/src/quick/items/qquickstateoperations.cpp @@ -101,7 +101,7 @@ void QQuickParentChangePrivate::doChange(QQuickItem *targetParent, QQuickItem *s } if (scale != 0) - rotation = qAtan2(transform.m12()/scale, transform.m11()/scale) * 180/M_PI; + rotation = qRadiansToDegrees(qAtan2(transform.m12() / scale, transform.m11() / scale)); else { qmlWarning(q) << QQuickParentChange::tr("Unable to preserve appearance under scale of 0"); ok = false; -- cgit v1.2.3 From aa570a7720dc508f83c32aee81ac1d6ea21d6757 Mon Sep 17 00:00:00 2001 From: Nikita Krupenko Date: Sat, 11 Jun 2016 20:03:45 +0300 Subject: Flickable: fix doc statement about content anchoring Task-number: QTBUG-54101 Change-Id: I3b0a0225efb77003c1c80c1d5b94ab572f3cc785 Reviewed-by: Shawn Rutledge --- src/quick/items/qquickflickable.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index d97c731157..6a2946bdcc 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -642,8 +642,10 @@ is finished. \section1 Limitations - \note Due to an implementation detail, items placed inside a Flickable cannot anchor to it by - \c id. Use \c parent instead. + \note Due to an implementation detail, items placed inside a Flickable + cannot anchor to the Flickable. Instead, use \l {Item::}{parent}, which + refers to the Flickable's \l contentItem. The size of the content item is + determined by \l contentWidth and \l contentHeight. */ /*! -- cgit v1.2.3 From 4b445c487d00cc85b01ff92b554e3c1cce2de32d Mon Sep 17 00:00:00 2001 From: Samuel Gaist Date: Fri, 17 Feb 2017 23:57:40 +0100 Subject: QRegExp include cleanup This patch adds missing include statement where the QRegExp class is used. Change-Id: I02d2995dd380f1e4db3777ae9759098c0e7757bd Reviewed-by: Robin Burchell --- tests/benchmarks/qml/holistic/testtypes.h | 1 + tools/qmlprofiler/qmlprofilerdata.cpp | 1 + tools/qmlscene/main.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/tests/benchmarks/qml/holistic/testtypes.h b/tests/benchmarks/qml/holistic/testtypes.h index 0736982373..a752a8585b 100644 --- a/tests/benchmarks/qml/holistic/testtypes.h +++ b/tests/benchmarks/qml/holistic/testtypes.h @@ -43,6 +43,7 @@ #include #include #include +#include class MyQmlAttachedObject : public QObject { diff --git a/tools/qmlprofiler/qmlprofilerdata.cpp b/tools/qmlprofiler/qmlprofilerdata.cpp index 668cb3ce2d..596ad8d47f 100644 --- a/tools/qmlprofiler/qmlprofilerdata.cpp +++ b/tools/qmlprofiler/qmlprofilerdata.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include diff --git a/tools/qmlscene/main.cpp b/tools/qmlscene/main.cpp index 1e8d91a95b..7741c4c45b 100644 --- a/tools/qmlscene/main.cpp +++ b/tools/qmlscene/main.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include -- cgit v1.2.3 From 7efa1e60d24fee9b1745c30965949af78f3fb0f3 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 13 Mar 2017 14:26:07 +0100 Subject: Fix running of 32-bit JIT code generated on 64-bit hosts The offsets of members encoded in JIT generated code differ between 32-bit and 64-bit architectures. This patch moves some of the ExecutionEngine members into a separate standard-layout EngineBase class (in line with the same class in commit 2a554434a571dcefd26cf10ef8c5ae8b3b7d66db and subject to merging). By ensuring that the members are stored at pointer intervals, we can translate from host pointer size to target when generating the code. Task-number: QTBUG-58666 Change-Id: I1c38a7da059826848b80fd9972ed073214501386 Reviewed-by: Qt CI Bot Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler.cpp | 10 +++++----- src/qml/jit/qv4assembler_p.h | 14 ++++++++++---- src/qml/jit/qv4isel_masm.cpp | 4 ++-- src/qml/jsruntime/qv4engine.cpp | 4 +--- src/qml/jsruntime/qv4engine_p.h | 6 +----- src/qml/memory/qv4mmdefs_p.h | 20 ++++++++++++++++++++ 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index ad8a5823e2..263f332f33 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -269,7 +269,7 @@ typename Assembler::Pointer Assembler: { int32_t offset = 0; int scope = al->scope; - loadPtr(Address(EngineRegister, qOffsetOf(ExecutionEngine, current)), baseReg); + loadPtr(Address(EngineRegister, targetStructureOffset(offsetof(EngineBase, current))), baseReg); if (scope) { loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, outer)), baseReg); --scope; @@ -298,7 +298,7 @@ typename Assembler::Pointer Assembler: template typename Assembler::Pointer Assembler::loadStringAddress(RegisterID reg, const QString &string) { - loadPtr(Address(Assembler::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), Assembler::ScratchRegister); + loadPtr(Address(Assembler::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), Assembler::ScratchRegister); loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::Heap::ExecutionContext, compilationUnit)), Assembler::ScratchRegister); loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::CompiledData::CompilationUnit, runtimeStrings)), reg); const int id = _jsGenerator->registerString(string); @@ -314,7 +314,7 @@ typename Assembler::Address Assembler: template typename Assembler::Address Assembler::loadConstant(const Primitive &v, RegisterID baseReg) { - loadPtr(Address(Assembler::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), baseReg); + loadPtr(Address(Assembler::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), baseReg); loadPtr(Address(baseReg, qOffsetOf(QV4::Heap::ExecutionContext, constantTable)), baseReg); const int index = _jsGenerator->registerConstant(v.asReturnedValue()); return Address(baseReg, index * sizeof(QV4::Value)); @@ -518,9 +518,9 @@ void Assembler::returnFromFunction(IR::Ret *s, RegisterInfo const int locals = stackLayout().calculateJSStackFrameSize(); subPtr(TrustedImm32(sizeof(QV4::Value)*locals), JITTargetPlatform::LocalsRegister); - loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), JITTargetPlatform::ScratchRegister); + loadPtr(Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, engine)), JITTargetPlatform::ScratchRegister); - storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionEngine, jsStackTop))); + storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); leaveStandardStackFrame(regularRegistersToSave, fpRegistersToSave); ret(); diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 720c522e1d..0a27ab02cf 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -713,6 +713,12 @@ public: using JITTargetPlatform::platformFinishEnteringStandardStackFrame; using JITTargetPlatform::platformLeaveStandardStackFrame; + static qint32 targetStructureOffset(qint32 hostOffset) + { + Q_ASSERT(hostOffset % QT_POINTER_SIZE == 0); + return (hostOffset * RegisterSize) / QT_POINTER_SIZE; + } + using RegisterSizeDependentOps = RegisterSizeDependentAssembler, MacroAssembler, JITTargetPlatform, RegisterSize>; struct LookupCall { @@ -1249,7 +1255,7 @@ public: const RegisterInformation &fpRegistersToSave); void checkException() { - load32(Address(EngineRegister, qOffsetOf(QV4::ExecutionEngine, hasException)), ScratchRegister); + load32(Address(EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, hasException))), ScratchRegister); Jump exceptionThrown = branch32(RelationalCondition::NotEqual, ScratchRegister, TrustedImm32(0)); if (catchBlock) addPatch(catchBlock, exceptionThrown); @@ -1317,7 +1323,7 @@ public: // IMPORTANT! See generateLookupCall in qv4isel_masm_p.h for details! // load the table from the context - loadPtr(Address(EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), ScratchRegister); + loadPtr(Address(EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), ScratchRegister); loadPtr(Address(ScratchRegister, qOffsetOf(QV4::Heap::ExecutionContext, lookups)), lookupCall.addr.base); // pre-calculate the indirect address for the lookupCall table: @@ -1616,9 +1622,9 @@ public: const int locals = _stackLayout->calculateJSStackFrameSize(); if (locals <= 0) return; - loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(ExecutionEngine, jsStackTop)), JITTargetPlatform::LocalsRegister); + loadPtr(Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop))), JITTargetPlatform::LocalsRegister); RegisterSizeDependentOps::initializeLocalVariables(this, locals); - storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::EngineRegister, qOffsetOf(ExecutionEngine, jsStackTop))); + storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); } Label exceptionReturnLabel; diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 69d6951bb9..3cbed3ce56 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -132,7 +132,7 @@ void InstructionSelection::run(int functionIndex) for (IR::Stmt *s : _block->statements()) { if (s->location.isValid()) { if (int(s->location.startLine) != lastLine) { - _as->loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), JITTargetPlatform::ScratchRegister); + _as->loadPtr(Address(JITTargetPlatform::EngineRegister, JITAssembler::targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); Address lineAddr(JITTargetPlatform::ScratchRegister, qOffsetOf(QV4::ExecutionContext::Data, lineNumber)); _as->store32(TrustedImm32(s->location.startLine), lineAddr); lastLine = s->location.startLine; @@ -447,7 +447,7 @@ void InstructionSelection::callValue(IR::Expr *value, IR::ExprList template void InstructionSelection::loadThisObject(IR::Expr *temp) { - _as->loadPtr(Address(JITTargetPlatform::EngineRegister, qOffsetOf(QV4::ExecutionEngine, current)), JITTargetPlatform::ScratchRegister); + _as->loadPtr(Address(JITTargetPlatform::EngineRegister, JITAssembler::targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); _as->loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, callData)), JITTargetPlatform::ScratchRegister); _as->copyValue(temp, Address(JITTargetPlatform::ScratchRegister, qOffsetOf(CallData, thisObject))); } diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index f925c9184c..3f11e51799 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -130,9 +130,7 @@ QQmlEngine *ExecutionEngine::qmlEngine() const qint32 ExecutionEngine::maxCallDepth = -1; ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) - : current(0) - , hasException(false) - , callDepth(0) + : callDepth(0) , memoryManager(new QV4::MemoryManager(this)) , executableAllocator(new QV4::ExecutableAllocator) , regExpAllocator(new QV4::ExecutableAllocator) diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 69aa389c44..6de087a4e2 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -88,7 +88,7 @@ struct CompilationUnit; struct InternalClass; struct InternalClassPool; -struct Q_QML_EXPORT ExecutionEngine +struct Q_QML_EXPORT ExecutionEngine : public EngineBase { private: static qint32 maxCallDepth; @@ -97,10 +97,6 @@ private: friend struct ExecutionContext; friend struct Heap::ExecutionContext; public: - Heap::ExecutionContext *current; - - Value *jsStackTop; - quint32 hasException; qint32 callDepth; MemoryManager *memoryManager; diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index 588ae21ee0..edae7293ce 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -255,6 +255,26 @@ Q_STATIC_ASSERT(sizeof(HeapItem) == Chunk::SlotSize); Q_STATIC_ASSERT(QT_POINTER_SIZE*8 == Chunk::Bits); Q_STATIC_ASSERT((1 << Chunk::BitShift) == Chunk::Bits); +// Base class for the execution engine + +#if defined(Q_CC_MSVC) || defined(Q_CC_GNU) +#pragma pack(push, 1) +#endif +struct EngineBase { + Heap::ExecutionContext *current = 0; + + Value *jsStackTop = 0; + quint32 hasException = false; +}; +#if defined(Q_CC_MSVC) || defined(Q_CC_GNU) +#pragma pack(pop) +#endif + +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(EngineBase, current) == 0); +Q_STATIC_ASSERT(offsetof(EngineBase, jsStackTop) == offsetof(EngineBase, current) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(EngineBase, hasException) == offsetof(EngineBase, jsStackTop) + QT_POINTER_SIZE); + } QT_END_NAMESPACE -- cgit v1.2.3 From 8e64fdf246a9076d4044e6c78af29e499f48905c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 9 Feb 2017 15:53:13 +0100 Subject: Prepare run-time method calling mechanism for cross-compilation The current way of encoding the offsetof() of the method_ members in QV4::Runtime is not portable when cross-compiling from a 64-bit host (where the offsetof would be calculated on) to a 32-bit target (where the offset would be different), or vice versa. In preparation for making this work, this patch first replaces the direct use of the run-time members with use through a void * and an enum for indexing. This gives us some type-safety in some places and will also allow for a translation of the pointer offset from host pointer indexing to target pointer indexes. As a bonus we can avoid going through the engine->runtime indirection in the interpreter altogether and call the static methods right away. Task-number: QTBUG-58666 Change-Id: I3cd6459523923a9719408317fa729bca19c2bf3c Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata_p.h | 2 +- src/qml/compiler/qv4instr_moth_p.h | 2 +- src/qml/compiler/qv4isel_moth.cpp | 75 +++---- src/qml/jit/qv4assembler_p.h | 9 +- src/qml/jit/qv4binop.cpp | 10 +- src/qml/jit/qv4binop_p.h | 4 +- src/qml/jit/qv4isel_masm.cpp | 4 +- src/qml/jit/qv4unop.cpp | 2 +- src/qml/jsruntime/qv4arraydata.cpp | 2 +- src/qml/jsruntime/qv4engine_p.h | 6 +- src/qml/jsruntime/qv4runtimeapi_p.h | 392 ++++++++++++++--------------------- src/qml/jsruntime/qv4vme_moth.cpp | 132 ++++++------ 12 files changed, 282 insertions(+), 358 deletions(-) diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 23139d6c8e..110baafabe 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -71,7 +71,7 @@ QT_BEGIN_NAMESPACE // Bump this whenever the compiler data structures change in an incompatible way. -#define QV4_DATA_STRUCTURE_VERSION 0x09 +#define QV4_DATA_STRUCTURE_VERSION 0x10 class QIODevice; class QQmlPropertyCache; diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h index 53d9956315..fbd6ac8f99 100644 --- a/src/qml/compiler/qv4instr_moth_p.h +++ b/src/qml/compiler/qv4instr_moth_p.h @@ -690,7 +690,7 @@ union Instr }; struct instr_binop { MOTH_INSTR_HEADER - uint alu; // offset inside the runtime methods + int alu; // QV4::Runtime::RuntimeMethods enum value Param lhs; Param rhs; Param result; diff --git a/src/qml/compiler/qv4isel_moth.cpp b/src/qml/compiler/qv4isel_moth.cpp index 04844302d9..aefb084971 100644 --- a/src/qml/compiler/qv4isel_moth.cpp +++ b/src/qml/compiler/qv4isel_moth.cpp @@ -55,70 +55,70 @@ using namespace QV4::Moth; namespace { -inline uint aluOpFunction(IR::AluOp op) +inline QV4::Runtime::RuntimeMethods aluOpFunction(IR::AluOp op) { switch (op) { case IR::OpInvalid: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpIfTrue: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpNot: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpUMinus: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpUPlus: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpCompl: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpBitAnd: - return offsetof(QV4::Runtime, bitAnd); + return QV4::Runtime::bitAnd; case IR::OpBitOr: - return offsetof(QV4::Runtime, bitOr); + return QV4::Runtime::bitOr; case IR::OpBitXor: - return offsetof(QV4::Runtime, bitXor); + return QV4::Runtime::bitXor; case IR::OpAdd: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpSub: - return offsetof(QV4::Runtime, sub); + return QV4::Runtime::sub; case IR::OpMul: - return offsetof(QV4::Runtime, mul); + return QV4::Runtime::mul; case IR::OpDiv: - return offsetof(QV4::Runtime, div); + return QV4::Runtime::div; case IR::OpMod: - return offsetof(QV4::Runtime, mod); + return QV4::Runtime::mod; case IR::OpLShift: - return offsetof(QV4::Runtime, shl); + return QV4::Runtime::shl; case IR::OpRShift: - return offsetof(QV4::Runtime, shr); + return QV4::Runtime::shr; case IR::OpURShift: - return offsetof(QV4::Runtime, ushr); + return QV4::Runtime::ushr; case IR::OpGt: - return offsetof(QV4::Runtime, greaterThan); + return QV4::Runtime::greaterThan; case IR::OpLt: - return offsetof(QV4::Runtime, lessThan); + return QV4::Runtime::lessThan; case IR::OpGe: - return offsetof(QV4::Runtime, greaterEqual); + return QV4::Runtime::greaterEqual; case IR::OpLe: - return offsetof(QV4::Runtime, lessEqual); + return QV4::Runtime::lessEqual; case IR::OpEqual: - return offsetof(QV4::Runtime, equal); + return QV4::Runtime::equal; case IR::OpNotEqual: - return offsetof(QV4::Runtime, notEqual); + return QV4::Runtime::notEqual; case IR::OpStrictEqual: - return offsetof(QV4::Runtime, strictEqual); + return QV4::Runtime::strictEqual; case IR::OpStrictNotEqual: - return offsetof(QV4::Runtime, strictNotEqual); + return QV4::Runtime::strictNotEqual; case IR::OpInstanceof: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpIn: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpAnd: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; case IR::OpOr: - return 0; + return QV4::Runtime::InvalidRuntimeMethod; default: Q_ASSERT(!"Unknown AluOp"); - return 0; + return QV4::Runtime::InvalidRuntimeMethod; } }; @@ -889,24 +889,25 @@ Param InstructionSelection::binopHelper(IR::AluOp oper, IR::Expr *leftSource, IR if (oper == IR::OpInstanceof || oper == IR::OpIn || oper == IR::OpAdd) { Instruction::BinopContext binop; if (oper == IR::OpInstanceof) - binop.alu = offsetof(QV4::Runtime, instanceof); + binop.alu = QV4::Runtime::instanceof; else if (oper == IR::OpIn) - binop.alu = offsetof(QV4::Runtime, in); + binop.alu = QV4::Runtime::in; else - binop.alu = offsetof(QV4::Runtime, add); + binop.alu = QV4::Runtime::add; binop.lhs = getParam(leftSource); binop.rhs = getParam(rightSource); binop.result = getResultParam(target); - Q_ASSERT(binop.alu); + Q_ASSERT(binop.alu != QV4::Runtime::InvalidRuntimeMethod); addInstruction(binop); return binop.result; } else { + auto binopFunc = aluOpFunction(oper); + Q_ASSERT(binopFunc != QV4::Runtime::InvalidRuntimeMethod); Instruction::Binop binop; - binop.alu = aluOpFunction(oper); + binop.alu = binopFunc; binop.lhs = getParam(leftSource); binop.rhs = getParam(rightSource); binop.result = getResultParam(target); - Q_ASSERT(binop.alu); addInstruction(binop); return binop.result; } diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 0a27ab02cf..3cd33e91e7 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -131,7 +131,7 @@ typedef AssemblerTargetConfigurationgenerateFunctionCallImp(Runtime::Method_##function##_NeedsExceptionCheck, t, "Runtime::" isel_stringIfy(function), typename JITAssembler::RuntimeCall(qOffsetOf(QV4::Runtime, function)), __VA_ARGS__) + as->generateFunctionCallImp(Runtime::Method_##function##_NeedsExceptionCheck, t, "Runtime::" isel_stringIfy(function), typename JITAssembler::RuntimeCall(QV4::Runtime::function), __VA_ARGS__) template @@ -734,7 +734,7 @@ public: struct RuntimeCall { Address addr; - inline RuntimeCall(uint offset = uint(INT_MIN)); + inline RuntimeCall(Runtime::RuntimeMethods method = Runtime::InvalidRuntimeMethod); bool isValid() const { return addr.offset >= 0; } }; @@ -1685,8 +1685,9 @@ void Assembler::copyValue(Result result, IR::Expr* source) } template -inline Assembler::RuntimeCall::RuntimeCall(uint offset) - : addr(Assembler::EngineRegister, offset + qOffsetOf(QV4::ExecutionEngine, runtime)) +inline Assembler::RuntimeCall::RuntimeCall(Runtime::RuntimeMethods method) + : addr(Assembler::EngineRegister, + method == Runtime::InvalidRuntimeMethod ? -1 : (Assembler::targetStructureOffset(qOffsetOf(QV4::ExecutionEngine, runtime) + Runtime::runtimeMethodOffset(method)))) { } diff --git a/src/qml/jit/qv4binop.cpp b/src/qml/jit/qv4binop.cpp index 22067bbb13..feb30ee298 100644 --- a/src/qml/jit/qv4binop.cpp +++ b/src/qml/jit/qv4binop.cpp @@ -165,17 +165,17 @@ struct ArchitectureSpecificBinaryOperation const typename Binop::OpInfo Binop::operations[IR::LastAluOp + 1] = { diff --git a/src/qml/jit/qv4binop_p.h b/src/qml/jit/qv4binop_p.h index d2d9ba7753..1b1ab7f24d 100644 --- a/src/qml/jit/qv4binop_p.h +++ b/src/qml/jit/qv4binop_p.h @@ -88,8 +88,8 @@ struct Binop { struct OpInfo { const char *name; - int fallbackImplementation; // offsetOf(Runtime,...) - int contextImplementation; // offsetOf(Runtime,...) + Runtime::RuntimeMethods fallbackImplementation; + Runtime::RuntimeMethods contextImplementation; MemRegOp inlineMemRegOp; ImmRegOp inlineImmRegOp; bool needsExceptionCheck; diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 3cbed3ce56..3803a5e119 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -791,12 +791,12 @@ void InstructionSelection::swapValues(IR::Expr *source, IR::Expr * #define setOp(op, opName, operation) \ do { \ - op = typename JITAssembler::RuntimeCall(qOffsetOf(QV4::Runtime, operation)); opName = "Runtime::" isel_stringIfy(operation); \ + op = typename JITAssembler::RuntimeCall(QV4::Runtime::operation); opName = "Runtime::" isel_stringIfy(operation); \ needsExceptionCheck = QV4::Runtime::Method_##operation##_NeedsExceptionCheck; \ } while (0) #define setOpContext(op, opName, operation) \ do { \ - opContext = typename JITAssembler::RuntimeCall(qOffsetOf(QV4::Runtime, operation)); opName = "Runtime::" isel_stringIfy(operation); \ + opContext = typename JITAssembler::RuntimeCall(QV4::Runtime::operation); opName = "Runtime::" isel_stringIfy(operation); \ needsExceptionCheck = QV4::Runtime::Method_##operation##_NeedsExceptionCheck; \ } while (0) diff --git a/src/qml/jit/qv4unop.cpp b/src/qml/jit/qv4unop.cpp index 76c6457d67..896be07ed5 100644 --- a/src/qml/jit/qv4unop.cpp +++ b/src/qml/jit/qv4unop.cpp @@ -48,7 +48,7 @@ using namespace JIT; #define stringIfy(s) stringIfyx(s) #define setOp(operation) \ do { \ - call = typename JITAssembler::RuntimeCall(qOffsetOf(QV4::Runtime, operation)); name = "Runtime::" stringIfy(operation); \ + call = typename JITAssembler::RuntimeCall(QV4::Runtime::operation); name = "Runtime::" stringIfy(operation); \ needsExceptionCheck = Runtime::Method_##operation##_NeedsExceptionCheck; \ } while (0) diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index d8a7de5466..c29cedaa9b 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -697,7 +697,7 @@ bool ArrayElementLessThan::operator()(Value v1, Value v2) const callData->thisObject = Primitive::undefinedValue(); callData->args[0] = v1; callData->args[1] = v2; - result = scope.engine->runtime.callValue(scope.engine, m_comparefn, callData); + result = QV4::Runtime::method_callValue(scope.engine, m_comparefn, callData); return result->toNumber() < 0; } diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 6de087a4e2..0492191747 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -97,6 +97,10 @@ private: friend struct ExecutionContext; friend struct Heap::ExecutionContext; public: + // This must be the first member, so that its offset is a multiple of QT_POINTER_SIZE + // as the base class's size is. + Runtime runtime; + qint32 callDepth; MemoryManager *memoryManager; @@ -108,8 +112,6 @@ public: Value *jsStackLimit; - Runtime runtime; - WTF::BumpPointerAllocator *bumperPointerAllocator; // Used by Yarr Regex engine. enum { JSStackLimit = 4*1024*1024 }; diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 355b7890b6..2c898a1880 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -90,256 +90,176 @@ struct ExceptionCheck { }; } // anonymous namespace -#define RUNTIME_METHOD(returnvalue, name, args) \ - typedef returnvalue (*Method_##name)args; \ - enum { Method_##name##_NeedsExceptionCheck = ExceptionCheck::NeedsCheck }; \ - static returnvalue method_##name args; \ - const Method_##name name - -#define INIT_RUNTIME_METHOD(name) \ - name(method_##name) +#define FOR_EACH_RUNTIME_METHOD(F) \ + /* call */ \ + F(ReturnedValue, callGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ + F(ReturnedValue, callActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ + F(ReturnedValue, callQmlScopeObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)) \ + F(ReturnedValue, callQmlContextObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)) \ + F(ReturnedValue, callProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ + F(ReturnedValue, callPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ + F(ReturnedValue, callElement, (ExecutionEngine *engine, const Value &index, CallData *callData)) \ + F(ReturnedValue, callValue, (ExecutionEngine *engine, const Value &func, CallData *callData)) \ + \ + /* construct */ \ + F(ReturnedValue, constructGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ + F(ReturnedValue, constructActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ + F(ReturnedValue, constructProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ + F(ReturnedValue, constructPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ + F(ReturnedValue, constructValue, (ExecutionEngine *engine, const Value &func, CallData *callData)) \ + \ + /* set & get */ \ + F(void, setActivationProperty, (ExecutionEngine *engine, int nameIndex, const Value &value)) \ + F(void, setProperty, (ExecutionEngine *engine, const Value &object, int nameIndex, const Value &value)) \ + F(void, setElement, (ExecutionEngine *engine, const Value &object, const Value &index, const Value &value)) \ + F(ReturnedValue, getProperty, (ExecutionEngine *engine, const Value &object, int nameIndex)) \ + F(ReturnedValue, getActivationProperty, (ExecutionEngine *engine, int nameIndex)) \ + F(ReturnedValue, getElement, (ExecutionEngine *engine, const Value &object, const Value &index)) \ + \ + /* typeof */ \ + F(ReturnedValue, typeofValue, (ExecutionEngine *engine, const Value &val)) \ + F(ReturnedValue, typeofName, (ExecutionEngine *engine, int nameIndex)) \ + F(ReturnedValue, typeofScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)) \ + F(ReturnedValue, typeofContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)) \ + F(ReturnedValue, typeofMember, (ExecutionEngine *engine, const Value &base, int nameIndex)) \ + F(ReturnedValue, typeofElement, (ExecutionEngine *engine, const Value &base, const Value &index)) \ + \ + /* delete */ \ + F(ReturnedValue, deleteElement, (ExecutionEngine *engine, const Value &base, const Value &index)) \ + F(ReturnedValue, deleteMember, (ExecutionEngine *engine, const Value &base, int nameIndex)) \ + F(ReturnedValue, deleteMemberString, (ExecutionEngine *engine, const Value &base, String *name)) \ + F(ReturnedValue, deleteName, (ExecutionEngine *engine, int nameIndex)) \ + \ + /* exceptions & scopes */ \ + F(void, throwException, (ExecutionEngine *engine, const Value &value)) \ + F(ReturnedValue, unwindException, (ExecutionEngine *engine)) \ + F(void, pushWithScope, (const Value &o, NoThrowEngine *engine)) \ + F(void, pushCatchScope, (NoThrowEngine *engine, int exceptionVarNameIndex)) \ + F(void, popScope, (NoThrowEngine *engine)) \ + \ + /* closures */ \ + F(ReturnedValue, closure, (ExecutionEngine *engine, int functionId)) \ + \ + /* function header */ \ + F(void, declareVar, (ExecutionEngine *engine, bool deletable, int nameIndex)) \ + F(ReturnedValue, setupArgumentsObject, (ExecutionEngine *engine)) \ + F(void, convertThisToObject, (ExecutionEngine *engine)) \ + \ + /* literals */ \ + F(ReturnedValue, arrayLiteral, (ExecutionEngine *engine, Value *values, uint length)) \ + F(ReturnedValue, objectLiteral, (ExecutionEngine *engine, const Value *args, int classId, int arrayValueCount, int arrayGetterSetterCountAndFlags)) \ + F(ReturnedValue, regexpLiteral, (ExecutionEngine *engine, int id)) \ + \ + /* foreach */ \ + F(ReturnedValue, foreachIterator, (ExecutionEngine *engine, const Value &in)) \ + F(ReturnedValue, foreachNextPropertyName, (const Value &foreach_iterator)) \ + \ + /* unary operators */ \ + F(ReturnedValue, uPlus, (const Value &value)) \ + F(ReturnedValue, uMinus, (const Value &value)) \ + F(ReturnedValue, uNot, (const Value &value)) \ + F(ReturnedValue, complement, (const Value &value)) \ + F(ReturnedValue, increment, (const Value &value)) \ + F(ReturnedValue, decrement, (const Value &value)) \ + \ + /* binary operators */ \ + F(ReturnedValue, instanceof, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + F(ReturnedValue, in, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + F(ReturnedValue, add, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + F(ReturnedValue, addString, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + F(ReturnedValue, bitOr, (const Value &left, const Value &right)) \ + F(ReturnedValue, bitXor, (const Value &left, const Value &right)) \ + F(ReturnedValue, bitAnd, (const Value &left, const Value &right)) \ + F(ReturnedValue, sub, (const Value &left, const Value &right)) \ + F(ReturnedValue, mul, (const Value &left, const Value &right)) \ + F(ReturnedValue, div, (const Value &left, const Value &right)) \ + F(ReturnedValue, mod, (const Value &left, const Value &right)) \ + F(ReturnedValue, shl, (const Value &left, const Value &right)) \ + F(ReturnedValue, shr, (const Value &left, const Value &right)) \ + F(ReturnedValue, ushr, (const Value &left, const Value &right)) \ + F(ReturnedValue, greaterThan, (const Value &left, const Value &right)) \ + F(ReturnedValue, lessThan, (const Value &left, const Value &right)) \ + F(ReturnedValue, greaterEqual, (const Value &left, const Value &right)) \ + F(ReturnedValue, lessEqual, (const Value &left, const Value &right)) \ + F(ReturnedValue, equal, (const Value &left, const Value &right)) \ + F(ReturnedValue, notEqual, (const Value &left, const Value &right)) \ + F(ReturnedValue, strictEqual, (const Value &left, const Value &right)) \ + F(ReturnedValue, strictNotEqual, (const Value &left, const Value &right)) \ + \ + /* comparisons */ \ + F(Bool, compareGreaterThan, (const Value &l, const Value &r)) \ + F(Bool, compareLessThan, (const Value &l, const Value &r)) \ + F(Bool, compareGreaterEqual, (const Value &l, const Value &r)) \ + F(Bool, compareLessEqual, (const Value &l, const Value &r)) \ + F(Bool, compareEqual, (const Value &left, const Value &right)) \ + F(Bool, compareNotEqual, (const Value &left, const Value &right)) \ + F(Bool, compareStrictEqual, (const Value &left, const Value &right)) \ + F(Bool, compareStrictNotEqual, (const Value &left, const Value &right)) \ + \ + F(Bool, compareInstanceof, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + F(Bool, compareIn, (ExecutionEngine *engine, const Value &left, const Value &right)) \ + \ + /* conversions */ \ + F(Bool, toBoolean, (const Value &value)) \ + F(ReturnedValue, toDouble, (const Value &value)) \ + F(int, toInt, (const Value &value)) \ + F(int, doubleToInt, (const double &d)) \ + F(unsigned, toUInt, (const Value &value)) \ + F(unsigned, doubleToUInt, (const double &d)) \ + \ + /* qml */ \ + F(ReturnedValue, getQmlContext, (NoThrowEngine *engine)) \ + F(ReturnedValue, getQmlImportedScripts, (NoThrowEngine *engine)) \ + F(ReturnedValue, getQmlSingleton, (NoThrowEngine *engine, int nameIndex)) \ + F(ReturnedValue, getQmlAttachedProperty, (ExecutionEngine *engine, int attachedPropertiesId, int propertyIndex)) \ + F(ReturnedValue, getQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, getQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, getQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, getQmlSingletonQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, getQmlIdObject, (ExecutionEngine *engine, const Value &context, uint index)) \ + \ + F(void, setQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ + F(void, setQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ + F(void, setQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, const Value &value)) struct Q_QML_PRIVATE_EXPORT Runtime { Runtime() - : INIT_RUNTIME_METHOD(callGlobalLookup) - , INIT_RUNTIME_METHOD(callActivationProperty) - , INIT_RUNTIME_METHOD(callQmlScopeObjectProperty) - , INIT_RUNTIME_METHOD(callQmlContextObjectProperty) - , INIT_RUNTIME_METHOD(callProperty) - , INIT_RUNTIME_METHOD(callPropertyLookup) - , INIT_RUNTIME_METHOD(callElement) - , INIT_RUNTIME_METHOD(callValue) - , INIT_RUNTIME_METHOD(constructGlobalLookup) - , INIT_RUNTIME_METHOD(constructActivationProperty) - , INIT_RUNTIME_METHOD(constructProperty) - , INIT_RUNTIME_METHOD(constructPropertyLookup) - , INIT_RUNTIME_METHOD(constructValue) - , INIT_RUNTIME_METHOD(setActivationProperty) - , INIT_RUNTIME_METHOD(setProperty) - , INIT_RUNTIME_METHOD(setElement) - , INIT_RUNTIME_METHOD(getProperty) - , INIT_RUNTIME_METHOD(getActivationProperty) - , INIT_RUNTIME_METHOD(getElement) - , INIT_RUNTIME_METHOD(typeofValue) - , INIT_RUNTIME_METHOD(typeofName) - , INIT_RUNTIME_METHOD(typeofScopeObjectProperty) - , INIT_RUNTIME_METHOD(typeofContextObjectProperty) - , INIT_RUNTIME_METHOD(typeofMember) - , INIT_RUNTIME_METHOD(typeofElement) - , INIT_RUNTIME_METHOD(deleteElement) - , INIT_RUNTIME_METHOD(deleteMember) - , INIT_RUNTIME_METHOD(deleteMemberString) - , INIT_RUNTIME_METHOD(deleteName) - , INIT_RUNTIME_METHOD(throwException) - , INIT_RUNTIME_METHOD(unwindException) - , INIT_RUNTIME_METHOD(pushWithScope) - , INIT_RUNTIME_METHOD(pushCatchScope) - , INIT_RUNTIME_METHOD(popScope) - , INIT_RUNTIME_METHOD(closure) - , INIT_RUNTIME_METHOD(declareVar) - , INIT_RUNTIME_METHOD(setupArgumentsObject) - , INIT_RUNTIME_METHOD(convertThisToObject) - , INIT_RUNTIME_METHOD(arrayLiteral) - , INIT_RUNTIME_METHOD(objectLiteral) - , INIT_RUNTIME_METHOD(regexpLiteral) - , INIT_RUNTIME_METHOD(foreachIterator) - , INIT_RUNTIME_METHOD(foreachNextPropertyName) - , INIT_RUNTIME_METHOD(uPlus) - , INIT_RUNTIME_METHOD(uMinus) - , INIT_RUNTIME_METHOD(uNot) - , INIT_RUNTIME_METHOD(complement) - , INIT_RUNTIME_METHOD(increment) - , INIT_RUNTIME_METHOD(decrement) - , INIT_RUNTIME_METHOD(instanceof) - , INIT_RUNTIME_METHOD(in) - , INIT_RUNTIME_METHOD(add) - , INIT_RUNTIME_METHOD(addString) - , INIT_RUNTIME_METHOD(bitOr) - , INIT_RUNTIME_METHOD(bitXor) - , INIT_RUNTIME_METHOD(bitAnd) - , INIT_RUNTIME_METHOD(sub) - , INIT_RUNTIME_METHOD(mul) - , INIT_RUNTIME_METHOD(div) - , INIT_RUNTIME_METHOD(mod) - , INIT_RUNTIME_METHOD(shl) - , INIT_RUNTIME_METHOD(shr) - , INIT_RUNTIME_METHOD(ushr) - , INIT_RUNTIME_METHOD(greaterThan) - , INIT_RUNTIME_METHOD(lessThan) - , INIT_RUNTIME_METHOD(greaterEqual) - , INIT_RUNTIME_METHOD(lessEqual) - , INIT_RUNTIME_METHOD(equal) - , INIT_RUNTIME_METHOD(notEqual) - , INIT_RUNTIME_METHOD(strictEqual) - , INIT_RUNTIME_METHOD(strictNotEqual) - , INIT_RUNTIME_METHOD(compareGreaterThan) - , INIT_RUNTIME_METHOD(compareLessThan) - , INIT_RUNTIME_METHOD(compareGreaterEqual) - , INIT_RUNTIME_METHOD(compareLessEqual) - , INIT_RUNTIME_METHOD(compareEqual) - , INIT_RUNTIME_METHOD(compareNotEqual) - , INIT_RUNTIME_METHOD(compareStrictEqual) - , INIT_RUNTIME_METHOD(compareStrictNotEqual) - , INIT_RUNTIME_METHOD(compareInstanceof) - , INIT_RUNTIME_METHOD(compareIn) - , INIT_RUNTIME_METHOD(toBoolean) - , INIT_RUNTIME_METHOD(toDouble) - , INIT_RUNTIME_METHOD(toInt) - , INIT_RUNTIME_METHOD(doubleToInt) - , INIT_RUNTIME_METHOD(toUInt) - , INIT_RUNTIME_METHOD(doubleToUInt) - , INIT_RUNTIME_METHOD(getQmlContext) - , INIT_RUNTIME_METHOD(getQmlImportedScripts) - , INIT_RUNTIME_METHOD(getQmlSingleton) - , INIT_RUNTIME_METHOD(getQmlAttachedProperty) - , INIT_RUNTIME_METHOD(getQmlScopeObjectProperty) - , INIT_RUNTIME_METHOD(getQmlContextObjectProperty) - , INIT_RUNTIME_METHOD(getQmlQObjectProperty) - , INIT_RUNTIME_METHOD(getQmlSingletonQObjectProperty) - , INIT_RUNTIME_METHOD(getQmlIdObject) - , INIT_RUNTIME_METHOD(setQmlScopeObjectProperty) - , INIT_RUNTIME_METHOD(setQmlContextObjectProperty) - , INIT_RUNTIME_METHOD(setQmlQObjectProperty) - { } - - // call - RUNTIME_METHOD(ReturnedValue, callGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callQmlScopeObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callQmlContextObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callElement, (ExecutionEngine *engine, const Value &index, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, callValue, (ExecutionEngine *engine, const Value &func, CallData *callData)); - - // construct - RUNTIME_METHOD(ReturnedValue, constructGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, constructActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, constructProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, constructPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)); - RUNTIME_METHOD(ReturnedValue, constructValue, (ExecutionEngine *engine, const Value &func, CallData *callData)); - - // set & get - RUNTIME_METHOD(void, setActivationProperty, (ExecutionEngine *engine, int nameIndex, const Value &value)); - RUNTIME_METHOD(void, setProperty, (ExecutionEngine *engine, const Value &object, int nameIndex, const Value &value)); - RUNTIME_METHOD(void, setElement, (ExecutionEngine *engine, const Value &object, const Value &index, const Value &value)); - RUNTIME_METHOD(ReturnedValue, getProperty, (ExecutionEngine *engine, const Value &object, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, getActivationProperty, (ExecutionEngine *engine, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, getElement, (ExecutionEngine *engine, const Value &object, const Value &index)); - - // typeof - RUNTIME_METHOD(ReturnedValue, typeofValue, (ExecutionEngine *engine, const Value &val)); - RUNTIME_METHOD(ReturnedValue, typeofName, (ExecutionEngine *engine, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, typeofScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)); - RUNTIME_METHOD(ReturnedValue, typeofContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)); - RUNTIME_METHOD(ReturnedValue, typeofMember, (ExecutionEngine *engine, const Value &base, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, typeofElement, (ExecutionEngine *engine, const Value &base, const Value &index)); - - // delete - RUNTIME_METHOD(ReturnedValue, deleteElement, (ExecutionEngine *engine, const Value &base, const Value &index)); - RUNTIME_METHOD(ReturnedValue, deleteMember, (ExecutionEngine *engine, const Value &base, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, deleteMemberString, (ExecutionEngine *engine, const Value &base, String *name)); - RUNTIME_METHOD(ReturnedValue, deleteName, (ExecutionEngine *engine, int nameIndex)); - - // exceptions & scopes - RUNTIME_METHOD(void, throwException, (ExecutionEngine *engine, const Value &value)); - RUNTIME_METHOD(ReturnedValue, unwindException, (ExecutionEngine *engine)); - RUNTIME_METHOD(void, pushWithScope, (const Value &o, NoThrowEngine *engine)); - RUNTIME_METHOD(void, pushCatchScope, (NoThrowEngine *engine, int exceptionVarNameIndex)); - RUNTIME_METHOD(void, popScope, (NoThrowEngine *engine)); - - // closures - RUNTIME_METHOD(ReturnedValue, closure, (ExecutionEngine *engine, int functionId)); + { +#define INIT_METHOD(returnvalue, name, args) runtimeMethods[name] = reinterpret_cast(&method_##name); +FOR_EACH_RUNTIME_METHOD(INIT_METHOD) +#undef INIT_METHOD + } - // function header - RUNTIME_METHOD(void, declareVar, (ExecutionEngine *engine, bool deletable, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, setupArgumentsObject, (ExecutionEngine *engine)); - RUNTIME_METHOD(void, convertThisToObject, (ExecutionEngine *engine)); - - // literals - RUNTIME_METHOD(ReturnedValue, arrayLiteral, (ExecutionEngine *engine, Value *values, uint length)); - RUNTIME_METHOD(ReturnedValue, objectLiteral, (ExecutionEngine *engine, const Value *args, int classId, int arrayValueCount, int arrayGetterSetterCountAndFlags)); - RUNTIME_METHOD(ReturnedValue, regexpLiteral, (ExecutionEngine *engine, int id)); - - // foreach - RUNTIME_METHOD(ReturnedValue, foreachIterator, (ExecutionEngine *engine, const Value &in)); - RUNTIME_METHOD(ReturnedValue, foreachNextPropertyName, (const Value &foreach_iterator)); - - // unary operators typedef ReturnedValue (*UnaryOperation)(const Value &value); - RUNTIME_METHOD(ReturnedValue, uPlus, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, uMinus, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, uNot, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, complement, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, increment, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, decrement, (const Value &value)); - - // binary operators typedef ReturnedValue (*BinaryOperation)(const Value &left, const Value &right); typedef ReturnedValue (*BinaryOperationContext)(ExecutionEngine *engine, const Value &left, const Value &right); - RUNTIME_METHOD(ReturnedValue, instanceof, (ExecutionEngine *engine, const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, in, (ExecutionEngine *engine, const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, add, (ExecutionEngine *engine, const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, addString, (ExecutionEngine *engine, const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, bitOr, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, bitXor, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, bitAnd, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, sub, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, mul, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, div, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, mod, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, shl, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, shr, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, ushr, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, greaterThan, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, lessThan, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, greaterEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, lessEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, equal, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, notEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, strictEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(ReturnedValue, strictNotEqual, (const Value &left, const Value &right)); - - // comparisons - RUNTIME_METHOD(Bool, compareGreaterThan, (const Value &l, const Value &r)); - RUNTIME_METHOD(Bool, compareLessThan, (const Value &l, const Value &r)); - RUNTIME_METHOD(Bool, compareGreaterEqual, (const Value &l, const Value &r)); - RUNTIME_METHOD(Bool, compareLessEqual, (const Value &l, const Value &r)); - RUNTIME_METHOD(Bool, compareEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(Bool, compareNotEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(Bool, compareStrictEqual, (const Value &left, const Value &right)); - RUNTIME_METHOD(Bool, compareStrictNotEqual, (const Value &left, const Value &right)); +#define DEFINE_RUNTIME_METHOD_ENUM(returnvalue, name, args) name, + enum RuntimeMethods { + FOR_EACH_RUNTIME_METHOD(DEFINE_RUNTIME_METHOD_ENUM) + RuntimeMethodCount, + InvalidRuntimeMethod = RuntimeMethodCount + }; +#undef DEFINE_RUNTIME_METHOD_ENUM - RUNTIME_METHOD(Bool, compareInstanceof, (ExecutionEngine *engine, const Value &left, const Value &right)); - RUNTIME_METHOD(Bool, compareIn, (ExecutionEngine *engine, const Value &left, const Value &right)); + void *runtimeMethods[RuntimeMethodCount]; - // conversions - RUNTIME_METHOD(Bool, toBoolean, (const Value &value)); - RUNTIME_METHOD(ReturnedValue, toDouble, (const Value &value)); - RUNTIME_METHOD(int, toInt, (const Value &value)); - RUNTIME_METHOD(int, doubleToInt, (const double &d)); - RUNTIME_METHOD(unsigned, toUInt, (const Value &value)); - RUNTIME_METHOD(unsigned, doubleToUInt, (const double &d)); + static uint runtimeMethodOffset(RuntimeMethods method) { return method*QT_POINTER_SIZE; } - // qml - RUNTIME_METHOD(ReturnedValue, getQmlContext, (NoThrowEngine *engine)); - RUNTIME_METHOD(ReturnedValue, getQmlImportedScripts, (NoThrowEngine *engine)); - RUNTIME_METHOD(ReturnedValue, getQmlSingleton, (NoThrowEngine *engine, int nameIndex)); - RUNTIME_METHOD(ReturnedValue, getQmlAttachedProperty, (ExecutionEngine *engine, int attachedPropertiesId, int propertyIndex)); - RUNTIME_METHOD(ReturnedValue, getQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)); - RUNTIME_METHOD(ReturnedValue, getQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)); - RUNTIME_METHOD(ReturnedValue, getQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)); - RUNTIME_METHOD(ReturnedValue, getQmlSingletonQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)); - RUNTIME_METHOD(ReturnedValue, getQmlIdObject, (ExecutionEngine *engine, const Value &context, uint index)); +#define RUNTIME_METHOD(returnvalue, name, args) \ + typedef returnvalue (*Method_##name)args; \ + enum { Method_##name##_NeedsExceptionCheck = ExceptionCheck::NeedsCheck }; \ + static returnvalue method_##name args; + FOR_EACH_RUNTIME_METHOD(RUNTIME_METHOD) +#undef RUNTIME_METHOD - RUNTIME_METHOD(void, setQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)); - RUNTIME_METHOD(void, setQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)); - RUNTIME_METHOD(void, setQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, const Value &value)); }; -#undef RUNTIME_METHOD -#undef INIT_RUNTIME_METHOD +static_assert(std::is_standard_layout::value, "Runtime needs to be standard layout in order for us to be able to use offsetof"); +static_assert(offsetof(Runtime, runtimeMethods) == 0, "JIT expects this to be the first member"); +static_assert(sizeof(Runtime::BinaryOperation) == sizeof(void*), "JIT expects a function pointer to fit into a regular pointer, for cross-compilation offset translation"); + +#undef FOR_EACH_RUNTIME_METHOD } // namespace QV4 diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index be2772c23f..988b0a03b2 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -455,12 +455,12 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(LoadRegExp) MOTH_BEGIN_INSTR(LoadClosure) - STOREVALUE(instr.result, engine->runtime.closure(engine, instr.value)); + STOREVALUE(instr.result, Runtime::method_closure(engine, instr.value)); MOTH_END_INSTR(LoadClosure) MOTH_BEGIN_INSTR(LoadName) TRACE(inline, "property name = %s", runtimeStrings[instr.name]->toQString().toUtf8().constData()); - STOREVALUE(instr.result, engine->runtime.getActivationProperty(engine, instr.name)); + STOREVALUE(instr.result, Runtime::method_getActivationProperty(engine, instr.name)); MOTH_END_INSTR(LoadName) MOTH_BEGIN_INSTR(GetGlobalLookup) @@ -470,12 +470,12 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(StoreName) TRACE(inline, "property name = %s", runtimeStrings[instr.name]->toQString().toUtf8().constData()); - engine->runtime.setActivationProperty(engine, instr.name, VALUE(instr.source)); + Runtime::method_setActivationProperty(engine, instr.name, VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreName) MOTH_BEGIN_INSTR(LoadElement) - STOREVALUE(instr.result, engine->runtime.getElement(engine, VALUE(instr.base), VALUE(instr.index))); + STOREVALUE(instr.result, Runtime::method_getElement(engine, VALUE(instr.base), VALUE(instr.index))); MOTH_END_INSTR(LoadElement) MOTH_BEGIN_INSTR(LoadElementLookup) @@ -484,7 +484,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(LoadElementLookup) MOTH_BEGIN_INSTR(StoreElement) - engine->runtime.setElement(engine, VALUE(instr.base), VALUE(instr.index), VALUE(instr.source)); + Runtime::method_setElement(engine, VALUE(instr.base), VALUE(instr.index), VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreElement) @@ -495,7 +495,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(StoreElementLookup) MOTH_BEGIN_INSTR(LoadProperty) - STOREVALUE(instr.result, engine->runtime.getProperty(engine, VALUE(instr.base), instr.name)); + STOREVALUE(instr.result, Runtime::method_getProperty(engine, VALUE(instr.base), instr.name)); MOTH_END_INSTR(LoadProperty) MOTH_BEGIN_INSTR(GetLookup) @@ -504,7 +504,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(GetLookup) MOTH_BEGIN_INSTR(StoreProperty) - engine->runtime.setProperty(engine, VALUE(instr.base), instr.name, VALUE(instr.source)); + Runtime::method_setProperty(engine, VALUE(instr.base), instr.name, VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreProperty) @@ -515,42 +515,42 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(SetLookup) MOTH_BEGIN_INSTR(StoreQObjectProperty) - engine->runtime.setQmlQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); + Runtime::method_setQmlQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreQObjectProperty) MOTH_BEGIN_INSTR(LoadQObjectProperty) - STOREVALUE(instr.result, engine->runtime.getQmlQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); + STOREVALUE(instr.result, Runtime::method_getQmlQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); MOTH_END_INSTR(LoadQObjectProperty) MOTH_BEGIN_INSTR(StoreScopeObjectProperty) - engine->runtime.setQmlScopeObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); + Runtime::method_setQmlScopeObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreScopeObjectProperty) MOTH_BEGIN_INSTR(LoadScopeObjectProperty) - STOREVALUE(instr.result, engine->runtime.getQmlScopeObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); + STOREVALUE(instr.result, Runtime::method_getQmlScopeObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); MOTH_END_INSTR(LoadScopeObjectProperty) MOTH_BEGIN_INSTR(StoreContextObjectProperty) - engine->runtime.setQmlContextObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); + Runtime::method_setQmlContextObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, VALUE(instr.source)); CHECK_EXCEPTION; MOTH_END_INSTR(StoreContextObjectProperty) MOTH_BEGIN_INSTR(LoadContextObjectProperty) - STOREVALUE(instr.result, engine->runtime.getQmlContextObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); + STOREVALUE(instr.result, Runtime::method_getQmlContextObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); MOTH_END_INSTR(LoadContextObjectProperty) MOTH_BEGIN_INSTR(LoadIdObject) - STOREVALUE(instr.result, engine->runtime.getQmlIdObject(engine, VALUE(instr.base), instr.index)); + STOREVALUE(instr.result, Runtime::method_getQmlIdObject(engine, VALUE(instr.base), instr.index)); MOTH_END_INSTR(LoadIdObject) MOTH_BEGIN_INSTR(LoadAttachedQObjectProperty) - STOREVALUE(instr.result, engine->runtime.getQmlAttachedProperty(engine, instr.attachedPropertiesId, instr.propertyIndex)); + STOREVALUE(instr.result, Runtime::method_getQmlAttachedProperty(engine, instr.attachedPropertiesId, instr.propertyIndex)); MOTH_END_INSTR(LoadAttachedQObjectProperty) MOTH_BEGIN_INSTR(LoadSingletonQObjectProperty) - STOREVALUE(instr.result, engine->runtime.getQmlSingletonQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); + STOREVALUE(instr.result, Runtime::method_getQmlSingletonQObjectProperty(engine, VALUE(instr.base), instr.propertyIndex, instr.captureRequired)); MOTH_END_INSTR(LoadSingletonQObjectProperty) MOTH_BEGIN_INSTR(Push) @@ -576,7 +576,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = QV4::Primitive::undefinedValue(); - STOREVALUE(instr.result, engine->runtime.callValue(engine, VALUE(instr.dest), callData)); + STOREVALUE(instr.result, Runtime::method_callValue(engine, VALUE(instr.dest), callData)); MOTH_END_INSTR(CallValue) MOTH_BEGIN_INSTR(CallProperty) @@ -586,7 +586,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.callProperty(engine, instr.name, callData)); + STOREVALUE(instr.result, Runtime::method_callProperty(engine, instr.name, callData)); MOTH_END_INSTR(CallProperty) MOTH_BEGIN_INSTR(CallPropertyLookup) @@ -595,7 +595,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.callPropertyLookup(engine, instr.lookupIndex, callData)); + STOREVALUE(instr.result, Runtime::method_callPropertyLookup(engine, instr.lookupIndex, callData)); MOTH_END_INSTR(CallPropertyLookup) MOTH_BEGIN_INSTR(CallScopeObjectProperty) @@ -605,7 +605,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.callQmlScopeObjectProperty(engine, instr.index, callData)); + STOREVALUE(instr.result, Runtime::method_callQmlScopeObjectProperty(engine, instr.index, callData)); MOTH_END_INSTR(CallScopeObjectProperty) MOTH_BEGIN_INSTR(CallContextObjectProperty) @@ -615,7 +615,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.callQmlContextObjectProperty(engine, instr.index, callData)); + STOREVALUE(instr.result, Runtime::method_callQmlContextObjectProperty(engine, instr.index, callData)); MOTH_END_INSTR(CallContextObjectProperty) MOTH_BEGIN_INSTR(CallElement) @@ -624,7 +624,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.callElement(engine, VALUE(instr.index), callData)); + STOREVALUE(instr.result, Runtime::method_callElement(engine, VALUE(instr.index), callData)); MOTH_END_INSTR(CallElement) MOTH_BEGIN_INSTR(CallActivationProperty) @@ -633,7 +633,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = QV4::Primitive::undefinedValue(); - STOREVALUE(instr.result, engine->runtime.callActivationProperty(engine, instr.name, callData)); + STOREVALUE(instr.result, Runtime::method_callActivationProperty(engine, instr.name, callData)); MOTH_END_INSTR(CallActivationProperty) MOTH_BEGIN_INSTR(CallGlobalLookup) @@ -650,95 +650,95 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(SetExceptionHandler) MOTH_BEGIN_INSTR(CallBuiltinThrow) - engine->runtime.throwException(engine, VALUE(instr.arg)); + Runtime::method_throwException(engine, VALUE(instr.arg)); CHECK_EXCEPTION; MOTH_END_INSTR(CallBuiltinThrow) MOTH_BEGIN_INSTR(CallBuiltinUnwindException) - STOREVALUE(instr.result, engine->runtime.unwindException(engine)); + STOREVALUE(instr.result, Runtime::method_unwindException(engine)); MOTH_END_INSTR(CallBuiltinUnwindException) MOTH_BEGIN_INSTR(CallBuiltinPushCatchScope) - engine->runtime.pushCatchScope(static_cast(engine), instr.name); + Runtime::method_pushCatchScope(static_cast(engine), instr.name); context = engine->currentContext; MOTH_END_INSTR(CallBuiltinPushCatchScope) MOTH_BEGIN_INSTR(CallBuiltinPushScope) - engine->runtime.pushWithScope(VALUE(instr.arg), static_cast(engine)); + Runtime::method_pushWithScope(VALUE(instr.arg), static_cast(engine)); context = engine->currentContext; CHECK_EXCEPTION; MOTH_END_INSTR(CallBuiltinPushScope) MOTH_BEGIN_INSTR(CallBuiltinPopScope) - engine->runtime.popScope(static_cast(engine)); + Runtime::method_popScope(static_cast(engine)); context = engine->currentContext; MOTH_END_INSTR(CallBuiltinPopScope) MOTH_BEGIN_INSTR(CallBuiltinForeachIteratorObject) - STOREVALUE(instr.result, engine->runtime.foreachIterator(engine, VALUE(instr.arg))); + STOREVALUE(instr.result, Runtime::method_foreachIterator(engine, VALUE(instr.arg))); MOTH_END_INSTR(CallBuiltinForeachIteratorObject) MOTH_BEGIN_INSTR(CallBuiltinForeachNextPropertyName) - STOREVALUE(instr.result, engine->runtime.foreachNextPropertyName(VALUE(instr.arg))); + STOREVALUE(instr.result, Runtime::method_foreachNextPropertyName(VALUE(instr.arg))); MOTH_END_INSTR(CallBuiltinForeachNextPropertyName) MOTH_BEGIN_INSTR(CallBuiltinDeleteMember) - STOREVALUE(instr.result, engine->runtime.deleteMember(engine, VALUE(instr.base), instr.member)); + STOREVALUE(instr.result, Runtime::method_deleteMember(engine, VALUE(instr.base), instr.member)); MOTH_END_INSTR(CallBuiltinDeleteMember) MOTH_BEGIN_INSTR(CallBuiltinDeleteSubscript) - STOREVALUE(instr.result, engine->runtime.deleteElement(engine, VALUE(instr.base), VALUE(instr.index))); + STOREVALUE(instr.result, Runtime::method_deleteElement(engine, VALUE(instr.base), VALUE(instr.index))); MOTH_END_INSTR(CallBuiltinDeleteSubscript) MOTH_BEGIN_INSTR(CallBuiltinDeleteName) - STOREVALUE(instr.result, engine->runtime.deleteName(engine, instr.name)); + STOREVALUE(instr.result, Runtime::method_deleteName(engine, instr.name)); MOTH_END_INSTR(CallBuiltinDeleteName) MOTH_BEGIN_INSTR(CallBuiltinTypeofScopeObjectProperty) - STOREVALUE(instr.result, engine->runtime.typeofScopeObjectProperty(engine, VALUE(instr.base), instr.index)); + STOREVALUE(instr.result, Runtime::method_typeofScopeObjectProperty(engine, VALUE(instr.base), instr.index)); MOTH_END_INSTR(CallBuiltinTypeofMember) MOTH_BEGIN_INSTR(CallBuiltinTypeofContextObjectProperty) - STOREVALUE(instr.result, engine->runtime.typeofContextObjectProperty(engine, VALUE(instr.base), instr.index)); + STOREVALUE(instr.result, Runtime::method_typeofContextObjectProperty(engine, VALUE(instr.base), instr.index)); MOTH_END_INSTR(CallBuiltinTypeofMember) MOTH_BEGIN_INSTR(CallBuiltinTypeofMember) - STOREVALUE(instr.result, engine->runtime.typeofMember(engine, VALUE(instr.base), instr.member)); + STOREVALUE(instr.result, Runtime::method_typeofMember(engine, VALUE(instr.base), instr.member)); MOTH_END_INSTR(CallBuiltinTypeofMember) MOTH_BEGIN_INSTR(CallBuiltinTypeofSubscript) - STOREVALUE(instr.result, engine->runtime.typeofElement(engine, VALUE(instr.base), VALUE(instr.index))); + STOREVALUE(instr.result, Runtime::method_typeofElement(engine, VALUE(instr.base), VALUE(instr.index))); MOTH_END_INSTR(CallBuiltinTypeofSubscript) MOTH_BEGIN_INSTR(CallBuiltinTypeofName) - STOREVALUE(instr.result, engine->runtime.typeofName(engine, instr.name)); + STOREVALUE(instr.result, Runtime::method_typeofName(engine, instr.name)); MOTH_END_INSTR(CallBuiltinTypeofName) MOTH_BEGIN_INSTR(CallBuiltinTypeofValue) - STOREVALUE(instr.result, engine->runtime.typeofValue(engine, VALUE(instr.value))); + STOREVALUE(instr.result, Runtime::method_typeofValue(engine, VALUE(instr.value))); MOTH_END_INSTR(CallBuiltinTypeofValue) MOTH_BEGIN_INSTR(CallBuiltinDeclareVar) - engine->runtime.declareVar(engine, instr.isDeletable, instr.varName); + Runtime::method_declareVar(engine, instr.isDeletable, instr.varName); MOTH_END_INSTR(CallBuiltinDeclareVar) MOTH_BEGIN_INSTR(CallBuiltinDefineArray) Q_ASSERT(instr.args + instr.argc <= stackSize); QV4::Value *args = stack + instr.args; - STOREVALUE(instr.result, engine->runtime.arrayLiteral(engine, args, instr.argc)); + STOREVALUE(instr.result, Runtime::method_arrayLiteral(engine, args, instr.argc)); MOTH_END_INSTR(CallBuiltinDefineArray) MOTH_BEGIN_INSTR(CallBuiltinDefineObjectLiteral) QV4::Value *args = stack + instr.args; - STOREVALUE(instr.result, engine->runtime.objectLiteral(engine, args, instr.internalClassId, instr.arrayValueCount, instr.arrayGetterSetterCountAndFlags)); + STOREVALUE(instr.result, Runtime::method_objectLiteral(engine, args, instr.internalClassId, instr.arrayValueCount, instr.arrayGetterSetterCountAndFlags)); MOTH_END_INSTR(CallBuiltinDefineObjectLiteral) MOTH_BEGIN_INSTR(CallBuiltinSetupArgumentsObject) - STOREVALUE(instr.result, engine->runtime.setupArgumentsObject(engine)); + STOREVALUE(instr.result, Runtime::method_setupArgumentsObject(engine)); MOTH_END_INSTR(CallBuiltinSetupArgumentsObject) MOTH_BEGIN_INSTR(CallBuiltinConvertThisToObject) - engine->runtime.convertThisToObject(engine); + Runtime::method_convertThisToObject(engine); CHECK_EXCEPTION; MOTH_END_INSTR(CallBuiltinConvertThisToObject) @@ -748,7 +748,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = QV4::Primitive::undefinedValue(); - STOREVALUE(instr.result, engine->runtime.constructValue(engine, VALUE(instr.func), callData)); + STOREVALUE(instr.result, Runtime::method_constructValue(engine, VALUE(instr.func), callData)); MOTH_END_INSTR(CreateValue) MOTH_BEGIN_INSTR(CreateProperty) @@ -757,7 +757,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.constructProperty(engine, instr.name, callData)); + STOREVALUE(instr.result, Runtime::method_constructProperty(engine, instr.name, callData)); MOTH_END_INSTR(CreateProperty) MOTH_BEGIN_INSTR(ConstructPropertyLookup) @@ -766,7 +766,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = VALUE(instr.base); - STOREVALUE(instr.result, engine->runtime.constructPropertyLookup(engine, instr.index, callData)); + STOREVALUE(instr.result, Runtime::method_constructPropertyLookup(engine, instr.index, callData)); MOTH_END_INSTR(ConstructPropertyLookup) MOTH_BEGIN_INSTR(CreateActivationProperty) @@ -775,7 +775,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = QV4::Primitive::undefinedValue(); - STOREVALUE(instr.result, engine->runtime.constructActivationProperty(engine, instr.name, callData)); + STOREVALUE(instr.result, Runtime::method_constructActivationProperty(engine, instr.name, callData)); MOTH_END_INSTR(CreateActivationProperty) MOTH_BEGIN_INSTR(ConstructGlobalLookup) @@ -784,7 +784,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; callData->thisObject = QV4::Primitive::undefinedValue(); - STOREVALUE(instr.result, engine->runtime.constructGlobalLookup(engine, instr.index, callData)); + STOREVALUE(instr.result, Runtime::method_constructGlobalLookup(engine, instr.index, callData)); MOTH_END_INSTR(ConstructGlobalLookup) MOTH_BEGIN_INSTR(Jump) @@ -806,7 +806,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(JumpNe) MOTH_BEGIN_INSTR(UNot) - STOREVALUE(instr.result, engine->runtime.uNot(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_uNot(VALUE(instr.source))); MOTH_END_INSTR(UNot) MOTH_BEGIN_INSTR(UNotBool) @@ -815,15 +815,15 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(UNotBool) MOTH_BEGIN_INSTR(UPlus) - STOREVALUE(instr.result, engine->runtime.uPlus(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_uPlus(VALUE(instr.source))); MOTH_END_INSTR(UPlus) MOTH_BEGIN_INSTR(UMinus) - STOREVALUE(instr.result, engine->runtime.uMinus(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_uMinus(VALUE(instr.source))); MOTH_END_INSTR(UMinus) MOTH_BEGIN_INSTR(UCompl) - STOREVALUE(instr.result, engine->runtime.complement(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_complement(VALUE(instr.source))); MOTH_END_INSTR(UCompl) MOTH_BEGIN_INSTR(UComplInt) @@ -831,32 +831,32 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(UComplInt) MOTH_BEGIN_INSTR(Increment) - STOREVALUE(instr.result, engine->runtime.increment(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_increment(VALUE(instr.source))); MOTH_END_INSTR(Increment) MOTH_BEGIN_INSTR(Decrement) - STOREVALUE(instr.result, engine->runtime.decrement(VALUE(instr.source))); + STOREVALUE(instr.result, Runtime::method_decrement(VALUE(instr.source))); MOTH_END_INSTR(Decrement) MOTH_BEGIN_INSTR(Binop) - QV4::Runtime::BinaryOperation op = *reinterpret_cast(reinterpret_cast(&engine->runtime) + instr.alu); + QV4::Runtime::BinaryOperation op = *reinterpret_cast(reinterpret_cast(&engine->runtime.runtimeMethods[instr.alu])); STOREVALUE(instr.result, op(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(Binop) MOTH_BEGIN_INSTR(Add) - STOREVALUE(instr.result, engine->runtime.add(engine, VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_add(engine, VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(Add) MOTH_BEGIN_INSTR(BitAnd) - STOREVALUE(instr.result, engine->runtime.bitAnd(VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_bitAnd(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(BitAnd) MOTH_BEGIN_INSTR(BitOr) - STOREVALUE(instr.result, engine->runtime.bitOr(VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_bitOr(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(BitOr) MOTH_BEGIN_INSTR(BitXor) - STOREVALUE(instr.result, engine->runtime.bitXor(VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_bitXor(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(BitXor) MOTH_BEGIN_INSTR(Shr) @@ -891,15 +891,15 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(ShlConst) MOTH_BEGIN_INSTR(Mul) - STOREVALUE(instr.result, engine->runtime.mul(VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_mul(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(Mul) MOTH_BEGIN_INSTR(Sub) - STOREVALUE(instr.result, engine->runtime.sub(VALUE(instr.lhs), VALUE(instr.rhs))); + STOREVALUE(instr.result, Runtime::method_sub(VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(Sub) MOTH_BEGIN_INSTR(BinopContext) - QV4::Runtime::BinaryOperationContext op = *reinterpret_cast(reinterpret_cast(&engine->runtime) + instr.alu); + QV4::Runtime::BinaryOperationContext op = *reinterpret_cast(reinterpret_cast(&engine->runtime.runtimeMethods[instr.alu])); STOREVALUE(instr.result, op(engine, VALUE(instr.lhs), VALUE(instr.rhs))); MOTH_END_INSTR(BinopContext) @@ -930,15 +930,15 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(LoadThis) MOTH_BEGIN_INSTR(LoadQmlContext) - VALUE(instr.result) = engine->runtime.getQmlContext(static_cast(engine)); + VALUE(instr.result) = Runtime::method_getQmlContext(static_cast(engine)); MOTH_END_INSTR(LoadQmlContext) MOTH_BEGIN_INSTR(LoadQmlImportedScripts) - VALUE(instr.result) = engine->runtime.getQmlImportedScripts(static_cast(engine)); + VALUE(instr.result) = Runtime::method_getQmlImportedScripts(static_cast(engine)); MOTH_END_INSTR(LoadQmlImportedScripts) MOTH_BEGIN_INSTR(LoadQmlSingleton) - VALUE(instr.result) = engine->runtime.getQmlSingleton(static_cast(engine), instr.name); + VALUE(instr.result) = Runtime::method_getQmlSingleton(static_cast(engine), instr.name); MOTH_END_INSTR(LoadQmlSingleton) #ifdef MOTH_THREADED_INTERPRETER -- cgit v1.2.3 From 25e40b18d5348064e1b31d491a22c50a2ffb89c3 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 14 Mar 2017 13:32:42 +0100 Subject: Protect CallData usage against cross-compilation word size differences Ensure via static asserts that the members always have the same offsets. Since the class has standard layout, we can also use the C++11 offsetof macro instead of qOffsetOf. Task-number: QTBUG-58666 Change-Id: I7dcecf517c771c7081334cd9d0b7ae133b23b23a Reviewed-by: Lars Knoll --- src/qml/compiler/qv4isel_moth_p.h | 2 +- src/qml/jit/qv4isel_masm.cpp | 8 ++++---- src/qml/jsruntime/qv4context_p.h | 6 ++++++ src/qml/jsruntime/qv4scopedvalue_p.h | 2 +- src/qml/jsruntime/qv4vme_moth.cpp | 26 +++++++++++++------------- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/qml/compiler/qv4isel_moth_p.h b/src/qml/compiler/qv4isel_moth_p.h index 41469f1985..4b84bd2831 100644 --- a/src/qml/compiler/qv4isel_moth_p.h +++ b/src/qml/compiler/qv4isel_moth_p.h @@ -179,7 +179,7 @@ private: int scratchTempIndex() const { return _function->tempCount; } int callDataStart() const { return scratchTempIndex() + 1; } - int outgoingArgumentTempStart() const { return callDataStart() + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value); } + int outgoingArgumentTempStart() const { return callDataStart() + offsetof(QV4::CallData, args)/sizeof(QV4::Value); } int frameSize() const { return outgoingArgumentTempStart() + _function->maxNumberOfArguments; } template diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 3803a5e119..cf7205661d 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -449,7 +449,7 @@ void InstructionSelection::loadThisObject(IR::Expr *temp) { _as->loadPtr(Address(JITTargetPlatform::EngineRegister, JITAssembler::targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); _as->loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, callData)), JITTargetPlatform::ScratchRegister); - _as->copyValue(temp, Address(JITTargetPlatform::ScratchRegister, qOffsetOf(CallData, thisObject))); + _as->copyValue(temp, Address(JITTargetPlatform::ScratchRegister, offsetof(CallData, thisObject))); } template @@ -1313,11 +1313,11 @@ int InstructionSelection::prepareCallData(IR::ExprList* args, IR:: ++argc; } - Pointer p = _as->stackLayout().callDataAddress(qOffsetOf(CallData, tag)); + Pointer p = _as->stackLayout().callDataAddress(offsetof(CallData, tag)); _as->store32(TrustedImm32(QV4::Value::Integer_Type_Internal), p); - p = _as->stackLayout().callDataAddress(qOffsetOf(CallData, argc)); + p = _as->stackLayout().callDataAddress(offsetof(CallData, argc)); _as->store32(TrustedImm32(argc), p); - p = _as->stackLayout().callDataAddress(qOffsetOf(CallData, thisObject)); + p = _as->stackLayout().callDataAddress(offsetof(CallData, thisObject)); if (!thisObject) _as->storeValue(QV4::Primitive::undefinedValue(), p); else diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index bcfee2e1f8..3c779e52a3 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -73,6 +73,8 @@ struct WithContext; struct QmlContext; struct QmlContextWrapper; +// Attention: Make sure that this structure is the same size on 32-bit and 64-bit +// architecture or you'll have to change the JIT code. struct CallData { // below is to be compatible with Value. Initialize tag to 0 @@ -91,6 +93,10 @@ struct CallData Value args[1]; }; +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(CallData, thisObject) == 8); +Q_STATIC_ASSERT(offsetof(CallData, args) == 16); + namespace Heap { struct QmlContext; diff --git a/src/qml/jsruntime/qv4scopedvalue_p.h b/src/qml/jsruntime/qv4scopedvalue_p.h index 6775028272..894434be16 100644 --- a/src/qml/jsruntime/qv4scopedvalue_p.h +++ b/src/qml/jsruntime/qv4scopedvalue_p.h @@ -366,7 +366,7 @@ struct Scoped struct ScopedCallData { ScopedCallData(const Scope &scope, int argc = 0) { - int size = qMax(argc, (int)QV4::Global::ReservedArgumentCount) + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value); + int size = qMax(argc, QV4::Global::ReservedArgumentCount + int(offsetof(QV4::CallData, args)/sizeof(QV4::Value))); ptr = reinterpret_cast(scope.alloc(size)); ptr->tag = QV4::Value::Integer_Type_Internal; ptr->argc = argc; diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 988b0a03b2..17091819ee 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -571,7 +571,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code } } #endif // DO_TRACE_INSTR - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -581,7 +581,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(CallProperty) TRACE(property name, "%s, args=%u, argc=%u, this=%s", qPrintable(runtimeStrings[instr.name]->toQString()), instr.callData, instr.argc, (VALUE(instr.base)).toString(context)->toQString().toUtf8().constData()); - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -590,7 +590,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallProperty) MOTH_BEGIN_INSTR(CallPropertyLookup) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -600,7 +600,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(CallScopeObjectProperty) TRACE(property name, "%s, args=%u, argc=%u, this=%s", qPrintable(runtimeStrings[instr.name]->toQString()), instr.callData, instr.argc, (VALUE(instr.base)).toString(context)->toQString().toUtf8().constData()); - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -610,7 +610,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(CallContextObjectProperty) TRACE(property name, "%s, args=%u, argc=%u, this=%s", qPrintable(runtimeStrings[instr.name]->toQString()), instr.callData, instr.argc, (VALUE(instr.base)).toString(context)->toQString().toUtf8().constData()); - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -619,7 +619,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallContextObjectProperty) MOTH_BEGIN_INSTR(CallElement) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -628,7 +628,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallElement) MOTH_BEGIN_INSTR(CallActivationProperty) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -637,7 +637,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallActivationProperty) MOTH_BEGIN_INSTR(CallGlobalLookup) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -743,7 +743,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallBuiltinConvertThisToObject) MOTH_BEGIN_INSTR(CreateValue) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -752,7 +752,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CreateValue) MOTH_BEGIN_INSTR(CreateProperty) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -761,7 +761,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CreateProperty) MOTH_BEGIN_INSTR(ConstructPropertyLookup) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -770,7 +770,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(ConstructPropertyLookup) MOTH_BEGIN_INSTR(CreateActivationProperty) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; @@ -779,7 +779,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CreateActivationProperty) MOTH_BEGIN_INSTR(ConstructGlobalLookup) - Q_ASSERT(instr.callData + instr.argc + qOffsetOf(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); + Q_ASSERT(instr.callData + instr.argc + offsetof(QV4::CallData, args)/sizeof(QV4::Value) <= stackSize); QV4::CallData *callData = reinterpret_cast(stack + instr.callData); callData->tag = QV4::Value::Integer_Type_Internal; callData->argc = instr.argc; -- cgit v1.2.3 From 720dab7ad0f77b739a12f0e3e7e7178ea16c2e64 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 14 Mar 2017 13:51:27 +0100 Subject: Protect Lookup usage against cross-compilation word size differences The offsets we're taking from Lookup in the code generator are always zero, but with static assertions we can ensure that they stay that way. Task-number: QTBUG-58666 Change-Id: I91e047d2101ba33e36aaada4a5adc75e20fea7d8 Reviewed-by: Lars Knoll --- src/qml/jit/qv4isel_masm.cpp | 10 +++++----- src/qml/jsruntime/qv4lookup_p.h | 7 +++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index cf7205661d..d23380ed87 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -519,7 +519,7 @@ void InstructionSelection::getActivationProperty(const IR::Name *n { if (useFastLookups && name->global) { uint index = registerGlobalGetterLookup(*name->id); - generateLookupCall(target, index, qOffsetOf(QV4::Lookup, globalGetter), JITTargetPlatform::EngineRegister, JITAssembler::Void); + generateLookupCall(target, index, offsetof(QV4::Lookup, globalGetter), JITTargetPlatform::EngineRegister, JITAssembler::Void); return; } generateRuntimeCall(_as, target, getActivationProperty, JITTargetPlatform::EngineRegister, StringToIndex(*name->id)); @@ -545,7 +545,7 @@ void InstructionSelection::getProperty(IR::Expr *base, const QStri { if (useFastLookups) { uint index = registerGetterLookup(name); - generateLookupCall(target, index, qOffsetOf(QV4::Lookup, getter), JITTargetPlatform::EngineRegister, PointerToValue(base), JITAssembler::Void); + generateLookupCall(target, index, offsetof(QV4::Lookup, getter), JITTargetPlatform::EngineRegister, PointerToValue(base), JITAssembler::Void); } else { generateRuntimeCall(_as, target, getProperty, JITTargetPlatform::EngineRegister, PointerToValue(base), StringToIndex(name)); @@ -584,7 +584,7 @@ void InstructionSelection::setProperty(IR::Expr *source, IR::Expr { if (useFastLookups) { uint index = registerSetterLookup(targetName); - generateLookupCall(JITAssembler::Void, index, qOffsetOf(QV4::Lookup, setter), + generateLookupCall(JITAssembler::Void, index, offsetof(QV4::Lookup, setter), JITTargetPlatform::EngineRegister, PointerToValue(targetBase), PointerToValue(source)); @@ -620,7 +620,7 @@ void InstructionSelection::getElement(IR::Expr *base, IR::Expr *in { if (useFastLookups) { uint lookup = registerIndexedGetterLookup(); - generateLookupCall(target, lookup, qOffsetOf(QV4::Lookup, indexedGetter), + generateLookupCall(target, lookup, offsetof(QV4::Lookup, indexedGetter), PointerToValue(base), PointerToValue(index)); return; @@ -635,7 +635,7 @@ void InstructionSelection::setElement(IR::Expr *source, IR::Expr * { if (useFastLookups) { uint lookup = registerIndexedSetterLookup(); - generateLookupCall(JITAssembler::Void, lookup, qOffsetOf(QV4::Lookup, indexedSetter), + generateLookupCall(JITAssembler::Void, lookup, offsetof(QV4::Lookup, indexedSetter), PointerToValue(targetBase), PointerToValue(targetIndex), PointerToValue(source)); return; diff --git a/src/qml/jsruntime/qv4lookup_p.h b/src/qml/jsruntime/qv4lookup_p.h index c5ee92fedd..2ffb43cce9 100644 --- a/src/qml/jsruntime/qv4lookup_p.h +++ b/src/qml/jsruntime/qv4lookup_p.h @@ -141,6 +141,13 @@ struct Lookup { }; +Q_STATIC_ASSERT(std::is_standard_layout::value); +// Ensure that these offsets are always at this point to keep generated code compatible +// across 32-bit and 64-bit (matters when cross-compiling). +Q_STATIC_ASSERT(offsetof(Lookup, indexedGetter) == 0); +Q_STATIC_ASSERT(offsetof(Lookup, getter) == 0); +Q_STATIC_ASSERT(offsetof(Lookup, engine) == offsetof(Lookup, getter) + QT_POINTER_SIZE); + } QT_END_NAMESPACE -- cgit v1.2.3 From 94b52fd93b8ec31981b097af0b29f39b6b294ce7 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 14 Mar 2017 15:31:06 +0100 Subject: Protect CompilationUnit member usage against word size differences Currently we only use the runtimeStrings offset in JIT generated code, so move that into a standard layout base class and use that instead. Task-number: QTBUG-58666 Change-Id: Id933ba5df3a6990e89886c2b328e9e814ec5e413 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 1 - src/qml/compiler/qv4compileddata_p.h | 16 +++++++++------- src/qml/jit/qv4assembler.cpp | 2 +- src/qml/jsruntime/qv4context.cpp | 4 ++-- src/qml/jsruntime/qv4context_p.h | 4 ++-- src/qml/jsruntime/qv4runtime.cpp | 6 +++--- src/qml/jsruntime/qv4script_p.h | 2 +- src/qml/jsruntime/qv4vme_moth.cpp | 4 ++-- src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 2 +- tests/auto/toolsupport/tst_toolsupport.cpp | 4 ++-- 10 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 668f20e4f2..cddc0dd8aa 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -95,7 +95,6 @@ static QString cacheFilePath(const QUrl &url) #ifndef V4_BOOTSTRAP CompilationUnit::CompilationUnit() : data(0) - , runtimeStrings(0) , engine(0) , runtimeLookups(0) , runtimeRegularExpressions(0) diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 110baafabe..6d219b85aa 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -71,7 +71,7 @@ QT_BEGIN_NAMESPACE // Bump this whenever the compiler data structures change in an incompatible way. -#define QV4_DATA_STRUCTURE_VERSION 0x10 +#define QV4_DATA_STRUCTURE_VERSION 0x11 class QIODevice; class QQmlPropertyCache; @@ -795,11 +795,15 @@ typedef QVector BindingPropertyData; // This is how this hooks into the existing structures: -//VM::Function -// CompilationUnit * (for functions that need to clean up) -// CompiledData::Function *compiledFunction +struct Q_QML_PRIVATE_EXPORT CompilationUnitBase +{ + QV4::Heap::String **runtimeStrings = 0; // Array +}; -struct Q_QML_PRIVATE_EXPORT CompilationUnit : public QQmlRefCount +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(CompilationUnitBase, runtimeStrings) == 0); + +struct Q_QML_PRIVATE_EXPORT CompilationUnit : public CompilationUnitBase, public QQmlRefCount { #ifdef V4_BOOTSTRAP CompilationUnit() @@ -816,8 +820,6 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit : public QQmlRefCount // Called only when building QML, when we build the header for JS first and append QML data virtual QV4::CompiledData::Unit *createUnitData(QmlIR::Document *irDocument); - QV4::Heap::String **runtimeStrings; // Array - #ifndef V4_BOOTSTRAP ExecutionEngine *engine; diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 263f332f33..e941bd25cd 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -300,7 +300,7 @@ typename Assembler::Pointer Assembler: { loadPtr(Address(Assembler::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), Assembler::ScratchRegister); loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::Heap::ExecutionContext, compilationUnit)), Assembler::ScratchRegister); - loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::CompiledData::CompilationUnit, runtimeStrings)), reg); + loadPtr(Address(Assembler::ScratchRegister, offsetof(CompiledData::CompilationUnitBase, runtimeStrings)), reg); const int id = _jsGenerator->registerString(string); return Pointer(reg, id * sizeof(QV4::String*)); } diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 60b90e4bf0..c4a0539750 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -78,8 +78,8 @@ Heap::CallContext *ExecutionContext::newCallContext(Function *function, CallData c->activation = 0; c->compilationUnit = function->compilationUnit; - c->lookups = c->compilationUnit->runtimeLookups; - c->constantTable = c->compilationUnit->constants; + c->lookups = function->compilationUnit->runtimeLookups; + c->constantTable = function->compilationUnit->constants; c->locals = (Value *)((quintptr(c + 1) + 7) & ~7); const CompiledData::Function *compiledFunction = function->compiledFunction; diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 3c779e52a3..d0496d319e 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -61,7 +61,7 @@ class QQmlContextData; namespace QV4 { namespace CompiledData { -struct CompilationUnit; +struct CompilationUnitBase; struct Function; } @@ -126,7 +126,7 @@ struct ExecutionContext : Base { Pointer outer; Lookup *lookups; const QV4::Value *constantTable; - CompiledData::CompilationUnit *compilationUnit; + CompiledData::CompilationUnitBase *compilationUnit; ContextType type : 8; bool strictMode : 8; diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 6590054bf3..25748720aa 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -300,7 +300,7 @@ void RuntimeHelpers::numberToString(QString *result, double num, int radix) ReturnedValue Runtime::method_closure(ExecutionEngine *engine, int functionId) { - QV4::Function *clos = engine->current->compilationUnit->runtimeFunctions[functionId]; + QV4::Function *clos = static_cast(engine->current->compilationUnit)->runtimeFunctions[functionId]; Q_ASSERT(clos); return FunctionObject::createScriptFunction(engine->currentContext, clos)->asReturnedValue(); } @@ -1301,7 +1301,7 @@ ReturnedValue Runtime::method_arrayLiteral(ExecutionEngine *engine, Value *value ReturnedValue Runtime::method_objectLiteral(ExecutionEngine *engine, const QV4::Value *args, int classId, int arrayValueCount, int arrayGetterSetterCountAndFlags) { Scope scope(engine); - QV4::InternalClass *klass = engine->current->compilationUnit->runtimeClasses[classId]; + QV4::InternalClass *klass = static_cast(engine->current->compilationUnit)->runtimeClasses[classId]; ScopedObject o(scope, engine->newObject(klass, engine->objectPrototype())); { @@ -1413,7 +1413,7 @@ ReturnedValue Runtime::method_getQmlContext(NoThrowEngine *engine) ReturnedValue Runtime::method_regexpLiteral(ExecutionEngine *engine, int id) { - return engine->current->compilationUnit->runtimeRegularExpressions[id].asReturnedValue(); + return static_cast(engine->current->compilationUnit)->runtimeRegularExpressions[id].asReturnedValue(); } ReturnedValue Runtime::method_getQmlQObjectProperty(ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired) diff --git a/src/qml/jsruntime/qv4script_p.h b/src/qml/jsruntime/qv4script_p.h index f96f0254a5..4ebe2dd609 100644 --- a/src/qml/jsruntime/qv4script_p.h +++ b/src/qml/jsruntime/qv4script_p.h @@ -72,7 +72,7 @@ struct ContextStateSaver { bool strictMode; Lookup *lookups; const QV4::Value *constantTable; - CompiledData::CompilationUnit *compilationUnit; + CompiledData::CompilationUnitBase *compilationUnit; int lineNumber; ContextStateSaver(const Scope &scope, ExecutionContext *context) diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 17091819ee..075a9a4a5d 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -404,7 +404,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code Q_ALLOCA_VAR(QV4::Value*, scopes, sizeof(QV4::Value *)*(2 + 2*scopeDepth)); { - scopes[0] = const_cast(context->d()->compilationUnit->constants); + scopes[0] = const_cast(static_cast(context->d()->compilationUnit)->constants); // stack gets setup in push instruction scopes[1] = 0; QV4::Heap::ExecutionContext *scope = context->d(); @@ -451,7 +451,7 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_BEGIN_INSTR(LoadRegExp) // TRACE(value, "%s", instr.value.toString(context)->toQString().toUtf8().constData()); - VALUE(instr.result) = context->d()->compilationUnit->runtimeRegularExpressions[instr.regExpId]; + VALUE(instr.result) = static_cast(context->d()->compilationUnit)->runtimeRegularExpressions[instr.regExpId]; MOTH_END_INSTR(LoadRegExp) MOTH_BEGIN_INSTR(LoadClosure) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index d359a0f62f..8cc0b32168 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -1885,7 +1885,7 @@ void GlobalExtensions::method_qsTr(const BuiltinFunction *, Scope &scope, CallDa ExecutionContext *parentCtx = scope.engine->currentContext; // The first non-empty source URL in the call stack determines the translation context. while (!!parentCtx && context.isEmpty()) { - if (QV4::CompiledData::CompilationUnit *unit = parentCtx->d()->compilationUnit) { + if (CompiledData::CompilationUnit *unit = static_cast(parentCtx->d()->compilationUnit)) { QString fileName = unit->fileName(); QUrl url(unit->fileName()); if (url.isValid() && url.isRelative()) { diff --git a/tests/auto/toolsupport/tst_toolsupport.cpp b/tests/auto/toolsupport/tst_toolsupport.cpp index 526ba8f375..6ee1db805a 100644 --- a/tests/auto/toolsupport/tst_toolsupport.cpp +++ b/tests/auto/toolsupport/tst_toolsupport.cpp @@ -101,7 +101,7 @@ void tst_toolsupport::offsets_data() = QTest::newRow("CompiledData::CompilationUnit::data") << pmm_to_offsetof(&QV4::CompiledData::CompilationUnit::data); - data << 8 << 16; + data << 12 << 24; } { @@ -109,7 +109,7 @@ void tst_toolsupport::offsets_data() = QTest::newRow("CompiledData::CompilationUnit::runtimeStrings") << pmm_to_offsetof(&QV4::CompiledData::CompilationUnit::runtimeStrings); - data << 12 << 24; + data << 0 << 0; } { -- cgit v1.2.3 From 53547ee6b3a828969a3e2283a6ea5b3141f065d5 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 14 Mar 2017 15:44:16 +0100 Subject: Clean up qOffsetOf usage For offsets from CompiledData::Unit we can use C++11's offsetof macro as the class has standard layout. Change-Id: I7377294679a9cd79c35486fa34355933271f9251 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index cddc0dd8aa..4688f936cc 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -776,7 +776,7 @@ void Unit::generateChecksum() #ifndef V4_BOOTSTRAP QCryptographicHash hash(QCryptographicHash::Md5); - const int checksummableDataOffset = qOffsetOf(QV4::CompiledData::Unit, md5Checksum) + sizeof(md5Checksum); + const int checksummableDataOffset = offsetof(QV4::CompiledData::Unit, md5Checksum) + sizeof(md5Checksum); const char *dataPtr = reinterpret_cast(this) + checksummableDataOffset; hash.addData(dataPtr, unitSize - checksummableDataOffset); -- cgit v1.2.3 From cbdf28b078bbe0ce4136013ecdba1511fc926601 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 14 Mar 2017 17:02:59 +0100 Subject: Protect ExecutionContext member usage against word size differences Ensure the offsets we're taking from ExecutionContext members in the JIT code generator can be translated from host architecture sizes to target architecture, using assertions and a memory layout that we already have in the dev branch with commit 4de7e48ab160dacc7a09360e80264eac4945a8f4. Task-number: QTBUG-58666 Change-Id: I26cdbd1ddb995b116624fab16f7caba5d21c13b5 Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler.cpp | 16 ++++++++++------ src/qml/jit/qv4assembler_p.h | 2 +- src/qml/jit/qv4isel_masm.cpp | 4 ++-- src/qml/jsruntime/qv4context_p.h | 41 ++++++++++++++++++++++++++++++---------- src/qml/memory/qv4heap_p.h | 6 ++++++ 5 files changed, 50 insertions(+), 19 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index e941bd25cd..66cf502bde 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -270,18 +270,22 @@ typename Assembler::Pointer Assembler: int32_t offset = 0; int scope = al->scope; loadPtr(Address(EngineRegister, targetStructureOffset(offsetof(EngineBase, current))), baseReg); + + const qint32 outerOffset = targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, outer)); + if (scope) { - loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, outer)), baseReg); + loadPtr(Address(baseReg, outerOffset), baseReg); --scope; while (scope) { - loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, outer)), baseReg); + loadPtr(Address(baseReg, outerOffset), baseReg); --scope; } } switch (al->kind) { case IR::ArgLocal::Formal: case IR::ArgLocal::ScopedFormal: { - loadPtr(Address(baseReg, qOffsetOf(ExecutionContext::Data, callData)), baseReg); + const qint32 callDataOffset = targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, callData)); + loadPtr(Address(baseReg, callDataOffset), baseReg); offset = sizeof(CallData) + (al->index - 1) * sizeof(Value); } break; case IR::ArgLocal::Local: @@ -299,7 +303,7 @@ template typename Assembler::Pointer Assembler::loadStringAddress(RegisterID reg, const QString &string) { loadPtr(Address(Assembler::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), Assembler::ScratchRegister); - loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::Heap::ExecutionContext, compilationUnit)), Assembler::ScratchRegister); + loadPtr(Address(Assembler::ScratchRegister, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, compilationUnit))), Assembler::ScratchRegister); loadPtr(Address(Assembler::ScratchRegister, offsetof(CompiledData::CompilationUnitBase, runtimeStrings)), reg); const int id = _jsGenerator->registerString(string); return Pointer(reg, id * sizeof(QV4::String*)); @@ -315,7 +319,7 @@ template typename Assembler::Address Assembler::loadConstant(const Primitive &v, RegisterID baseReg) { loadPtr(Address(Assembler::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), baseReg); - loadPtr(Address(baseReg, qOffsetOf(QV4::Heap::ExecutionContext, constantTable)), baseReg); + loadPtr(Address(baseReg, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, constantTable))), baseReg); const int index = _jsGenerator->registerConstant(v.asReturnedValue()); return Address(baseReg, index * sizeof(QV4::Value)); } @@ -519,7 +523,7 @@ void Assembler::returnFromFunction(IR::Ret *s, RegisterInfo const int locals = stackLayout().calculateJSStackFrameSize(); subPtr(TrustedImm32(sizeof(QV4::Value)*locals), JITTargetPlatform::LocalsRegister); loadPtr(Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); - loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, engine)), JITTargetPlatform::ScratchRegister); + loadPtr(Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, engine))), JITTargetPlatform::ScratchRegister); storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); leaveStandardStackFrame(regularRegistersToSave, fpRegistersToSave); diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 3cd33e91e7..1a9aefb4bc 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1324,7 +1324,7 @@ public: // load the table from the context loadPtr(Address(EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), ScratchRegister); - loadPtr(Address(ScratchRegister, qOffsetOf(QV4::Heap::ExecutionContext, lookups)), + loadPtr(Address(ScratchRegister, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, lookups))), lookupCall.addr.base); // pre-calculate the indirect address for the lookupCall table: if (lookupCall.addr.offset) diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index d23380ed87..4a222e20f4 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -133,7 +133,7 @@ void InstructionSelection::run(int functionIndex) if (s->location.isValid()) { if (int(s->location.startLine) != lastLine) { _as->loadPtr(Address(JITTargetPlatform::EngineRegister, JITAssembler::targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); - Address lineAddr(JITTargetPlatform::ScratchRegister, qOffsetOf(QV4::ExecutionContext::Data, lineNumber)); + Address lineAddr(JITTargetPlatform::ScratchRegister, JITAssembler::targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, lineNumber))); _as->store32(TrustedImm32(s->location.startLine), lineAddr); lastLine = s->location.startLine; } @@ -448,7 +448,7 @@ template void InstructionSelection::loadThisObject(IR::Expr *temp) { _as->loadPtr(Address(JITTargetPlatform::EngineRegister, JITAssembler::targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); - _as->loadPtr(Address(JITTargetPlatform::ScratchRegister, qOffsetOf(ExecutionContext::Data, callData)), JITTargetPlatform::ScratchRegister); + _as->loadPtr(Address(JITTargetPlatform::ScratchRegister, JITAssembler::targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, callData))), JITTargetPlatform::ScratchRegister); _as->copyValue(temp, Address(JITTargetPlatform::ScratchRegister, offsetof(CallData, thisObject))); } diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index d0496d319e..968f625e5c 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -101,7 +101,37 @@ namespace Heap { struct QmlContext; -struct ExecutionContext : Base { +// ### Temporary arrangment until this code hits the dev branch and +// can use the Members macro +struct ExecutionContextData { + CallData *callData; + ExecutionEngine *engine; + ExecutionContext *outer; + Lookup *lookups; + const QV4::Value *constantTable; + CompiledData::CompilationUnitBase *compilationUnit; + // as member of non-pointer size this has to come last to preserve the ability to + // translate offsetof of it between 64-bit and 32-bit. + int lineNumber; +#if QT_POINTER_SIZE == 8 + uint padding_; +#endif +}; + +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, callData) == 0); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, engine) == offsetof(ExecutionContextData, callData) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, outer) == offsetof(ExecutionContextData, engine) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, lookups) == offsetof(ExecutionContextData, outer) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, constantTable) == offsetof(ExecutionContextData, lookups) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, compilationUnit) == offsetof(ExecutionContextData, constantTable) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(ExecutionContextData, lineNumber) == offsetof(ExecutionContextData, compilationUnit) + QT_POINTER_SIZE); + +struct ExecutionContextSizeStruct : public Base, public ExecutionContextData {}; + +struct ExecutionContext : Base, public ExecutionContextData { + static Q_CONSTEXPR size_t baseOffset = sizeof(ExecutionContextSizeStruct) - sizeof(ExecutionContextData); + enum ContextType { Type_GlobalContext = 0x1, Type_CatchContext = 0x2, @@ -120,17 +150,8 @@ struct ExecutionContext : Base { lineNumber = -1; } - CallData *callData; - - ExecutionEngine *engine; - Pointer outer; - Lookup *lookups; - const QV4::Value *constantTable; - CompiledData::CompilationUnitBase *compilationUnit; - ContextType type : 8; bool strictMode : 8; - int lineNumber; }; V4_ASSERT_IS_TRIVIAL(ExecutionContext) diff --git a/src/qml/memory/qv4heap_p.h b/src/qml/memory/qv4heap_p.h index 8285ef4de7..bdb5bef92b 100644 --- a/src/qml/memory/qv4heap_p.h +++ b/src/qml/memory/qv4heap_p.h @@ -160,6 +160,12 @@ struct Q_QML_EXPORT Base { #endif }; V4_ASSERT_IS_TRIVIAL(Base) +// This class needs to consist only of pointer sized members to allow +// for a size/offset translation when cross-compiling between 32- and +// 64-bit. +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(Base, vt) == 0); +Q_STATIC_ASSERT(sizeof(Base) == QT_POINTER_SIZE); template struct Pointer { -- cgit v1.2.3 From cb4f4028ac9fcc4d8f758899ad1eb2099ffad559 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Mar 2017 08:04:18 +0100 Subject: Remove unused macro This duplicate of qOffsetOf is not used in this file. Change-Id: I8a5ddfe18202501605a06f65c952b58e557dbfac Reviewed-by: Lars Knoll --- src/qml/qml/qqmltypeloader.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 68eb989c70..372b05eeef 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -80,10 +80,6 @@ # define NAME_MAX _POSIX_SYMLINK_MAX #endif -// LSB has a broken version of qOffsetOf that can't be used at compile time -// https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3462 -#undef qOffsetOf -#define qOffsetOf(TYPE, MEMBER) __builtin_qOffsetOf (TYPE, MEMBER) #endif // #define DATABLOB_DEBUG -- cgit v1.2.3 From 7a125135e1ef592aa20a29f7aac1a6117a6b1770 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Mar 2017 08:25:56 +0100 Subject: Protect CallContext member usage against word size differences Ensure the offsets we're taking from ExecutionContext members in the JIT code generator can be translated from host architecture sizes to target architecture, using assertions and a memory layout that we already have in the dev branch with commit 4de7e48ab160dacc7a09360e80264eac4945a8f4. Change-Id: I1b26ef265234b05a6e5c8688a8aad2f33cd28783 Task-number: QTBUG-58666 Reviewed-by: Lars Knoll --- .../qmltooling/qmldbg_debugger/qv4datacollector.cpp | 2 +- src/qml/jit/qv4assembler.cpp | 3 ++- src/qml/jsruntime/qv4context_p.h | 21 ++++++++++++++++++--- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index 5d2e754057..8075b7c067 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -95,7 +95,7 @@ QVector QV4DataCollector::getScopeType QV4::ScopedContext it(scope, sctxt); for (; it; it = it->d()->outer) - types.append(it->d()->type); + types.append(QV4::Heap::ExecutionContext::ContextType(it->d()->type)); return types; } diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 66cf502bde..5c90aba464 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -290,7 +290,8 @@ typename Assembler::Pointer Assembler: } break; case IR::ArgLocal::Local: case IR::ArgLocal::ScopedLocal: { - loadPtr(Address(baseReg, qOffsetOf(CallContext::Data, locals)), baseReg); + const qint32 localsOffset = targetStructureOffset(Heap::CallContext::baseOffset + offsetof(Heap::CallContextData, locals)); + loadPtr(Address(baseReg, localsOffset), baseReg); offset = al->index * sizeof(Value); } break; default: diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 968f625e5c..c769dcd142 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -150,12 +150,28 @@ struct ExecutionContext : Base, public ExecutionContextData { lineNumber = -1; } - ContextType type : 8; + quint8 type; bool strictMode : 8; +#if QT_POINTER_SIZE == 8 + quint8 padding_[6]; +#else + quint8 padding_[2]; +#endif }; V4_ASSERT_IS_TRIVIAL(ExecutionContext) +Q_STATIC_ASSERT(sizeof(ExecutionContext) == sizeof(Base) + sizeof(ExecutionContextData) + QT_POINTER_SIZE); + +struct CallContextData { + Value *locals; +}; + +Q_STATIC_ASSERT(std::is_standard_layout::value); +Q_STATIC_ASSERT(offsetof(CallContextData, locals) == 0); -struct CallContext : ExecutionContext { +struct CallContextSizeStruct : public ExecutionContext, public CallContextData {}; + +struct CallContext : ExecutionContext, public CallContextData { + static Q_CONSTEXPR size_t baseOffset = sizeof(CallContextSizeStruct) - sizeof(CallContextData); static CallContext *createSimpleContext(ExecutionEngine *v4); void freeSimpleCallContext(); @@ -168,7 +184,6 @@ struct CallContext : ExecutionContext { Pointer function; QV4::Function *v4Function; - Value *locals; Pointer activation; }; V4_ASSERT_IS_TRIVIAL(CallContext) -- cgit v1.2.3 From 13fc05fde8cde6a81d3cf3161fa34cf9d3652eb2 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 7 Mar 2017 19:52:34 +0100 Subject: Document and demo that fboId can be 0 ...in QQuickWindow::setRenderTarget(). The rendercontrol example is extended with a --onscreen command line argument that can be used to request rendering to the default framebuffer of the window. Change-Id: I7a500d1585dee8334b902fb1dddcb1cb21a2e038 Task-number: QTBUG-59340 Reviewed-by: Gunnar Sletta --- .../quick/rendercontrol/window_singlethreaded.cpp | 46 +++++++++++++++++----- .../quick/rendercontrol/window_singlethreaded.h | 2 + src/quick/items/qquickwindow.cpp | 5 +++ 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/examples/quick/rendercontrol/window_singlethreaded.cpp b/examples/quick/rendercontrol/window_singlethreaded.cpp index ef8f2fed43..bd4de9a7cb 100644 --- a/examples/quick/rendercontrol/window_singlethreaded.cpp +++ b/examples/quick/rendercontrol/window_singlethreaded.cpp @@ -82,6 +82,10 @@ WindowSingleThreaded::WindowSingleThreaded() { setSurfaceType(QSurface::OpenGLSurface); + // The rendercontrol does not necessarily need an FBO. Demonstrate this + // when requested. + m_onscreen = QCoreApplication::arguments().contains(QStringLiteral("--onscreen")); + QSurfaceFormat format; // Qt Quick may need a depth and stencil buffer. Always make sure these are available. format.setDepthBufferSize(16); @@ -164,8 +168,14 @@ void WindowSingleThreaded::createFbo() // The scene graph has been initialized. It is now time to create an FBO and associate // it with the QQuickWindow. m_dpr = devicePixelRatio(); - m_fbo = new QOpenGLFramebufferObject(size() * m_dpr, QOpenGLFramebufferObject::CombinedDepthStencil); - m_quickWindow->setRenderTarget(m_fbo); + if (!m_onscreen) { + m_fbo = new QOpenGLFramebufferObject(size() * m_dpr, QOpenGLFramebufferObject::CombinedDepthStencil); + m_quickWindow->setRenderTarget(m_fbo); + } else { + // Special case: No FBO. Render directly to the window's default framebuffer. + m_onscreenSize = size() * m_dpr; + m_quickWindow->setRenderTarget(0, m_onscreenSize); + } } void WindowSingleThreaded::destroyFbo() @@ -176,7 +186,10 @@ void WindowSingleThreaded::destroyFbo() void WindowSingleThreaded::render() { - if (!m_context->makeCurrent(m_offscreenSurface)) + QSurface *surface = m_offscreenSurface; + if (m_onscreen) + surface = this; + if (!m_context->makeCurrent(surface)) return; // Polish, synchronize and render the next frame (into our fbo). In this example @@ -195,7 +208,10 @@ void WindowSingleThreaded::render() m_quickReady = true; // Get something onto the screen. - m_cubeRenderer->render(this, m_context, m_quickReady ? m_fbo->texture() : 0); + if (!m_onscreen) + m_cubeRenderer->render(this, m_context, m_quickReady ? m_fbo->texture() : 0); + else + m_context->swapBuffers(this); } void WindowSingleThreaded::requestUpdate() @@ -237,7 +253,10 @@ void WindowSingleThreaded::run() updateSizes(); // Initialize the render control and our OpenGL resources. - m_context->makeCurrent(m_offscreenSurface); + QSurface *surface = m_offscreenSurface; + if (m_onscreen) + surface = this; + m_context->makeCurrent(surface); m_renderControl->initialize(m_context); m_quickInitialized = true; } @@ -266,7 +285,8 @@ void WindowSingleThreaded::exposeEvent(QExposeEvent *) { if (isExposed()) { if (!m_quickInitialized) { - m_cubeRenderer->render(this, m_context, m_quickReady ? m_fbo->texture() : 0); + if (!m_onscreen) + m_cubeRenderer->render(this, m_context, m_quickReady ? m_fbo->texture() : 0); startQuick(QStringLiteral("qrc:/rendercontrol/demo.qml")); } } @@ -274,7 +294,10 @@ void WindowSingleThreaded::exposeEvent(QExposeEvent *) void WindowSingleThreaded::resizeFbo() { - if (m_rootItem && m_context->makeCurrent(m_offscreenSurface)) { + QSurface *surface = m_offscreenSurface; + if (m_onscreen) + surface = this; + if (m_rootItem && m_context->makeCurrent(surface)) { delete m_fbo; createFbo(); m_context->doneCurrent(); @@ -287,8 +310,13 @@ void WindowSingleThreaded::resizeEvent(QResizeEvent *) { // If this is a resize after the scene is up and running, recreate the fbo and the // Quick item and scene. - if (m_fbo && m_fbo->size() != size() * devicePixelRatio()) - resizeFbo(); + if (!m_onscreen) { + if (m_fbo && m_fbo->size() != size() * devicePixelRatio()) + resizeFbo(); + } else { + if (m_onscreenSize != size() * devicePixelRatio()) + resizeFbo(); + } } void WindowSingleThreaded::handleScreenChange() diff --git a/examples/quick/rendercontrol/window_singlethreaded.h b/examples/quick/rendercontrol/window_singlethreaded.h index 534d6b9bc3..4736f036ad 100644 --- a/examples/quick/rendercontrol/window_singlethreaded.h +++ b/examples/quick/rendercontrol/window_singlethreaded.h @@ -97,6 +97,8 @@ private: QTimer m_updateTimer; CubeRenderer *m_cubeRenderer; qreal m_dpr; + bool m_onscreen; + QSize m_onscreenSize; }; #endif diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index e6245f90f3..80abf82e58 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -3399,6 +3399,11 @@ void QQuickWindow::setRenderTarget(QOpenGLFramebufferObject *fbo) The specified FBO must be created in the context of the window or one that shares with it. + \note \a fboId can also be set to 0. In this case rendering will target the + default framebuffer of whichever surface is current when the scenegraph + renders. \a size must still be valid, specifying the dimensions of the + surface. + \note This function only has an effect when using the default OpenGL scene graph adaptation. -- cgit v1.2.3 From 71cd0a58c025a1019b62bc3a6d4514ea677185b8 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 16 Mar 2017 16:11:45 +0100 Subject: stocqt Demo: Add error checks Check for corrupted records, fixing warnings: qrc:///demos/stocqt/content/StockListModel.qml:90: TypeError: Cannot call method 'split' of undefined Also check the value and prevent NaN from appearing. Change-Id: I3a9d010c61fb0f017aef37df7f54a7ad4d7d7d53 Reviewed-by: Venugopal Shivashankar --- .../quick/demos/stocqt/content/StockListModel.qml | 35 +++++++++++----------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/examples/quick/demos/stocqt/content/StockListModel.qml b/examples/quick/demos/stocqt/content/StockListModel.qml index 9b48124bda..02ece32a49 100644 --- a/examples/quick/demos/stocqt/content/StockListModel.qml +++ b/examples/quick/demos/stocqt/content/StockListModel.qml @@ -82,27 +82,28 @@ ListModel { xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.LOADING || xhr.readyState === XMLHttpRequest.DONE) { var records = xhr.responseText.split('\n'); + var unknown = "n/a"; + set(index, {"value": unknown, "change": unknown, "changePercentage": unknown}); if (records.length > 0 && xhr.status == 200) { var r = records[1].split(','); var today = parseFloat(r[4]); - setProperty(index, "value", today.toFixed(2)); + if (!isNaN(today)) + setProperty(index, "value", today.toFixed(2)); + if (records.length > 2) { + r = records[2].split(','); + var yesterday = parseFloat(r[4]); + var change = today - yesterday; + if (change >= 0.0) + setProperty(index, "change", "+" + change.toFixed(2)); + else + setProperty(index, "change", change.toFixed(2)); - r = records[2].split(','); - var yesterday = parseFloat(r[4]); - var change = today - yesterday; - if (change >= 0.0) - setProperty(index, "change", "+" + change.toFixed(2)); - else - setProperty(index, "change", change.toFixed(2)); - - var changePercentage = (change / yesterday) * 100.0; - if (changePercentage >= 0.0) - setProperty(index, "changePercentage", "+" + changePercentage.toFixed(2) + "%"); - else - setProperty(index, "changePercentage", changePercentage.toFixed(2) + "%"); - } else { - var unknown = "n/a"; - set(index, {"value": unknown, "change": unknown, "changePercentage": unknown}); + var changePercentage = (change / yesterday) * 100.0; + if (changePercentage >= 0.0) + setProperty(index, "changePercentage", "+" + changePercentage.toFixed(2) + "%"); + else + setProperty(index, "changePercentage", changePercentage.toFixed(2) + "%"); + } } } } -- cgit v1.2.3 From 09479fac4c08c9e2c159df4f87fa61dbc3836816 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Fri, 17 Mar 2017 15:39:53 +0100 Subject: QQuickImageProvider: Improve documentation about cancel() and finished() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Makes it a little more obvious how best to use this. We could do with including some snippets showing how to ideally implement cancel() I think, but this is a good start. Change-Id: I88d63a451239f91aa3619ccb74e306a2052a6e70 Task-number: QTBUG-59485 Reviewed-by: Albert Astals Cid Reviewed-by: Pasi Petäjäjärvi --- src/quick/util/qquickimageprovider.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp index a026abe762..0ceed7f681 100644 --- a/src/quick/util/qquickimageprovider.cpp +++ b/src/quick/util/qquickimageprovider.cpp @@ -183,7 +183,12 @@ QString QQuickImageResponse::errorString() const It may be reimplemented to cancel a request in the provider side, however, it is not mandatory. - A cancelled QQuickImageResponse still needs to emit finished(). + A cancelled QQuickImageResponse still needs to emit finished() so that the + engine may clean up the QQuickImageResponse. + + \note finished() should not be emitted until the response is complete, + regardless of whether or not cancel() was called. If it is called prematurely, + the engine may destroy the response while it is still active, leading to a crash. */ void QQuickImageResponse::cancel() { @@ -192,7 +197,12 @@ void QQuickImageResponse::cancel() /*! \fn void QQuickImageResponse::finished() - Signals that the job execution has finished (be it successfully, because an error happened or because it was cancelled). + Signals that the job execution has finished (be it successfully, because an + error happened or because it was cancelled). + + \note Emission of this signal must be the final action the response performs: + once the signal is received, the response will subsequently be destroyed by + the engine. */ /*! -- cgit v1.2.3 From 6825b37a48de6a69def38897b03ff7f9974226dd Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Fri, 17 Mar 2017 13:19:50 +0100 Subject: Expose QQuickItem::size() and document QQuickItem::setSize() [ChangeLog][QtQuick][QQuickItem] Add QQuickItem::size() and document QQuickItem::setSize(). Change-Id: I6f4d531e046758eb062111d656cc2e0be1624da3 Reviewed-by: Shawn Rutledge --- src/quick/items/qquickitem.cpp | 23 +++++++++++++++++++++-- src/quick/items/qquickitem.h | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index aa2662489d..539a374dd9 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -6746,8 +6746,27 @@ bool QQuickItem::heightValid() const } /*! - \internal - */ + \since 5.10 + + Returns the size of the item. + + \sa setSize, width, height + */ + +QSizeF QQuickItem::size() const +{ + Q_D(const QQuickItem); + return QSizeF(d->width, d->height); +} + + +/*! + \since 5.10 + + Sets the size of the item to \a size. + + \sa size, setWidth, setHeight + */ void QQuickItem::setSize(const QSizeF &size) { Q_D(QQuickItem); diff --git a/src/quick/items/qquickitem.h b/src/quick/items/qquickitem.h index c9494d91bd..f58946d01d 100644 --- a/src/quick/items/qquickitem.h +++ b/src/quick/items/qquickitem.h @@ -237,6 +237,7 @@ public: void setImplicitHeight(qreal); qreal implicitHeight() const; + QSizeF size() const; void setSize(const QSizeF &size); TransformOrigin transformOrigin() const; -- cgit v1.2.3 From ddb1b8f226693730e3bdb85a0fe78c7ed3c43a79 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Sun, 19 Mar 2017 18:47:31 +0100 Subject: QQuickEvents: Fix documentation of types for MouseEvent and WheelEvent x/y These types are qreal, not int. Change-Id: I26569c40825ce098ea095b3d9dc9b84eb3870c02 Reviewed-by: Mitch Curtis Reviewed-by: Shawn Rutledge --- src/quick/items/qquickevents.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp index b6c45c40a8..f1f82f9e0e 100644 --- a/src/quick/items/qquickevents.cpp +++ b/src/quick/items/qquickevents.cpp @@ -193,8 +193,8 @@ Item { */ /*! - \qmlproperty int QtQuick::MouseEvent::x - \qmlproperty int QtQuick::MouseEvent::y + \qmlproperty real QtQuick::MouseEvent::x + \qmlproperty real QtQuick::MouseEvent::y These properties hold the coordinates of the position supplied by the mouse event. */ @@ -340,8 +340,8 @@ Item { */ /*! - \qmlproperty int QtQuick::WheelEvent::x - \qmlproperty int QtQuick::WheelEvent::y + \qmlproperty real QtQuick::WheelEvent::x + \qmlproperty real QtQuick::WheelEvent::y These properties hold the coordinates of the position supplied by the wheel event. */ -- cgit v1.2.3 From 4db21fe60e9a852298e12d7fce7b5d2bbde7443e Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Mar 2017 09:25:52 +0100 Subject: Complete transition to standard layout classes for JIT access Move the Runtime function pointer array into EngineBase so that we can eliminate the last use of qOffsetOf. For improved cache locality the memory manager point is now also located in the EngineBase. Change-Id: I0b3cf44c726aa4fb8db1206cc414a56c2f522a84 Task-number: QTBUG-58666 Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler_p.h | 2 +- src/qml/jsruntime/qv4engine.cpp | 3 ++- src/qml/jsruntime/qv4engine_p.h | 6 ------ src/qml/jsruntime/qv4global_p.h | 2 -- src/qml/jsruntime/qv4runtime.cpp | 8 ++++++++ src/qml/jsruntime/qv4runtimeapi_p.h | 10 ++-------- src/qml/jsruntime/qv4value_p.h | 2 -- src/qml/memory/qv4mmdefs_p.h | 8 ++++++++ 8 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 1a9aefb4bc..e507a14f12 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1687,7 +1687,7 @@ void Assembler::copyValue(Result result, IR::Expr* source) template inline Assembler::RuntimeCall::RuntimeCall(Runtime::RuntimeMethods method) : addr(Assembler::EngineRegister, - method == Runtime::InvalidRuntimeMethod ? -1 : (Assembler::targetStructureOffset(qOffsetOf(QV4::ExecutionEngine, runtime) + Runtime::runtimeMethodOffset(method)))) + method == Runtime::InvalidRuntimeMethod ? -1 : (Assembler::targetStructureOffset(offsetof(EngineBase, runtime) + Runtime::runtimeMethodOffset(method)))) { } diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 3f11e51799..83b00f0356 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -131,7 +131,6 @@ qint32 ExecutionEngine::maxCallDepth = -1; ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) : callDepth(0) - , memoryManager(new QV4::MemoryManager(this)) , executableAllocator(new QV4::ExecutableAllocator) , regExpAllocator(new QV4::ExecutableAllocator) , currentContext(0) @@ -149,6 +148,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) , m_profiler(0) #endif { + memoryManager = new QV4::MemoryManager(this); + if (maxCallDepth == -1) { bool ok = false; maxCallDepth = qEnvironmentVariableIntValue("QV4_MAX_CALL_DEPTH", &ok); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 0492191747..5182f24235 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -54,7 +54,6 @@ #include "private/qv4isel_p.h" #include "qv4managed_p.h" #include "qv4context_p.h" -#include "qv4runtimeapi_p.h" #include #ifndef V4_BOOTSTRAP @@ -97,13 +96,8 @@ private: friend struct ExecutionContext; friend struct Heap::ExecutionContext; public: - // This must be the first member, so that its offset is a multiple of QT_POINTER_SIZE - // as the base class's size is. - Runtime runtime; - qint32 callDepth; - MemoryManager *memoryManager; ExecutableAllocator *executableAllocator; ExecutableAllocator *regExpAllocator; QScopedPointer iselFactory; diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 66861bf697..c2a5e75a1f 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -89,8 +89,6 @@ inline bool signbit(double d) { return _copysign(1.0, d) < 0; } inline double trunc(double d) { return d > 0 ? floor(d) : ceil(d); } #endif -#define qOffsetOf(s, m) ((size_t)((((char *)&(((s *)64)->m)) - 64))) - // Decide whether to enable or disable the JIT // White list architectures diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 25748720aa..97fd533af2 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -219,6 +219,14 @@ void RuntimeCounters::count(const char *func, uint tag1, uint tag2) #endif // QV4_COUNT_RUNTIME_FUNCTIONS #ifndef V4_BOOTSTRAP + +Runtime::Runtime() +{ +#define INIT_METHOD(returnvalue, name, args) runtimeMethods[name] = reinterpret_cast(&method_##name); +FOR_EACH_RUNTIME_METHOD(INIT_METHOD) +#undef INIT_METHOD +} + void RuntimeHelpers::numberToString(QString *result, double num, int radix) { Q_ASSERT(result); diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 2c898a1880..302facba06 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -56,6 +56,7 @@ QT_BEGIN_NAMESPACE namespace QV4 { +typedef uint Bool; struct NoThrowEngine; namespace { @@ -223,12 +224,7 @@ struct ExceptionCheck { F(void, setQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, const Value &value)) struct Q_QML_PRIVATE_EXPORT Runtime { - Runtime() - { -#define INIT_METHOD(returnvalue, name, args) runtimeMethods[name] = reinterpret_cast(&method_##name); -FOR_EACH_RUNTIME_METHOD(INIT_METHOD) -#undef INIT_METHOD - } + Runtime(); typedef ReturnedValue (*UnaryOperation)(const Value &value); typedef ReturnedValue (*BinaryOperation)(const Value &left, const Value &right); @@ -259,8 +255,6 @@ static_assert(std::is_standard_layout::value, "Runtime needs to be stan static_assert(offsetof(Runtime, runtimeMethods) == 0, "JIT expects this to be the first member"); static_assert(sizeof(Runtime::BinaryOperation) == sizeof(void*), "JIT expects a function pointer to fit into a regular pointer, for cross-compilation offset translation"); -#undef FOR_EACH_RUNTIME_METHOD - } // namespace QV4 QT_END_NAMESPACE diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 4ff0565f9b..5662432f0d 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -68,8 +68,6 @@ namespace Heap { struct Base; } -typedef uint Bool; - struct Q_QML_PRIVATE_EXPORT Value { private: diff --git a/src/qml/memory/qv4mmdefs_p.h b/src/qml/memory/qv4mmdefs_p.h index edae7293ce..db0ffe11a2 100644 --- a/src/qml/memory/qv4mmdefs_p.h +++ b/src/qml/memory/qv4mmdefs_p.h @@ -51,6 +51,7 @@ // #include +#include #include #include @@ -265,6 +266,11 @@ struct EngineBase { Value *jsStackTop = 0; quint32 hasException = false; +#if QT_POINTER_SIZE == 8 + quint8 padding[4]; +#endif + MemoryManager *memoryManager = 0; + Runtime runtime; }; #if defined(Q_CC_MSVC) || defined(Q_CC_GNU) #pragma pack(pop) @@ -274,6 +280,8 @@ Q_STATIC_ASSERT(std::is_standard_layout::value); Q_STATIC_ASSERT(offsetof(EngineBase, current) == 0); Q_STATIC_ASSERT(offsetof(EngineBase, jsStackTop) == offsetof(EngineBase, current) + QT_POINTER_SIZE); Q_STATIC_ASSERT(offsetof(EngineBase, hasException) == offsetof(EngineBase, jsStackTop) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(EngineBase, memoryManager) == offsetof(EngineBase, hasException) + QT_POINTER_SIZE); +Q_STATIC_ASSERT(offsetof(EngineBase, runtime) == offsetof(EngineBase, memoryManager) + QT_POINTER_SIZE); } -- cgit v1.2.3 From 1bc9e17636f5fd0a4c86cba379f0060fe894b1bb Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 17 Mar 2017 17:49:44 +0100 Subject: V4 Debugger: Encode NaN and +/-Infinity as strings JSON doesn't have numerical values for those. However, as we give the type of each item in a separate field, we can just use strings here and the result will still not clash with actual strings. Task-number: QTBUG-47880 Change-Id: I85ffa008890a8a9e6894dd3151f7dc6b527ed5e1 Reviewed-by: Simon Hausmann --- src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index 8075b7c067..b4b95f6713 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -187,10 +187,19 @@ const QV4::Object *collectProperty(const QV4::ScopedValue &value, QV4::Execution case QV4::Value::Integer_Type: dict.insert(valueKey, value->integerValue()); return 0; - default: // double - dict.insert(valueKey, value->doubleValue()); + default: {// double + const double val = value->doubleValue(); + if (qIsFinite(val)) + dict.insert(valueKey, val); + else if (qIsNaN(val)) + dict.insert(valueKey, QStringLiteral("NaN")); + else if (val < 0) + dict.insert(valueKey, QStringLiteral("-Infinity")); + else + dict.insert(valueKey, QStringLiteral("Infinity")); return 0; } + } } QJsonObject QV4DataCollector::lookupRef(Ref ref, bool deep) -- cgit v1.2.3 From b5903ba46e065b096d7bcc12b11cde32b1c0f0c7 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Mon, 13 Mar 2017 18:19:33 +0100 Subject: QSGDistanceFieldUtil: Remove a layer of indirection These mysterious setters appear to be unused (and always were, as far as I can see). How useful they are is not entirely clear (as opposed to a patch to the source for instance, and as it's private API anyway, you'd be touching internals to use this. Additionally, removing the indirection makes the code a bit cleaner and more self-contained in my opinion. This removal leaves the value of QSGDistanceFieldGlyphCacheManager in some question to me, given that it's basically a glorified wrapper around QHash. Change-Id: I6d18eb40d8cd00ebe389b4ed53448f3401962ae6 Reviewed-by: Gunnar Sletta Reviewed-by: Yoann Lopes --- .../scenegraph/qsgdistancefieldglyphnode_p.cpp | 41 ++++++++++++++++------ src/quick/scenegraph/util/qsgdistancefieldutil.cpp | 26 -------------- src/quick/scenegraph/util/qsgdistancefieldutil_p.h | 12 ------- 3 files changed, 30 insertions(+), 49 deletions(-) diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp index fc66f2f2cc..153f0a45c5 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp @@ -58,7 +58,7 @@ public: protected: void initialize() override; - void updateAlphaRange(ThresholdFunc thresholdFunc, AntialiasingSpreadFunc spreadFunc); + void updateAlphaRange(); void updateColor(const QVector4D &c); void updateTextureScale(const QVector2D &ts); @@ -98,7 +98,31 @@ QSGDistanceFieldTextMaterialShader::QSGDistanceFieldTextMaterialShader() setShaderSourceFile(QOpenGLShader::Fragment, QStringLiteral(":/qt-project.org/scenegraph/shaders/distancefieldtext.frag")); } -void QSGDistanceFieldTextMaterialShader::updateAlphaRange(ThresholdFunc thresholdFunc, AntialiasingSpreadFunc spreadFunc) +static float qt_sg_envFloat(const char *name, float defaultValue) +{ + if (Q_LIKELY(!qEnvironmentVariableIsSet(name))) + return defaultValue; + bool ok = false; + const float value = qgetenv(name).toFloat(&ok); + return ok ? value : defaultValue; +} + +static float thresholdFunc(float glyphScale) +{ + static const float base = qt_sg_envFloat("QT_DF_BASE", 0.5f); + static const float baseDev = qt_sg_envFloat("QT_DF_BASEDEVIATION", 0.065f); + static const float devScaleMin = qt_sg_envFloat("QT_DF_SCALEFORMAXDEV", 0.15f); + static const float devScaleMax = qt_sg_envFloat("QT_DF_SCALEFORNODEV", 0.3f); + return base - ((qBound(devScaleMin, glyphScale, devScaleMax) - devScaleMin) / (devScaleMax - devScaleMin) * -baseDev + baseDev); +} + +static float spreadFunc(float glyphScale) +{ + static const float range = qt_sg_envFloat("QT_DF_RANGE", 0.06f); + return range / glyphScale; +} + +void QSGDistanceFieldTextMaterialShader::updateAlphaRange() { float combinedScale = m_fontScale * m_matrixScale; float base = thresholdFunc(combinedScale); @@ -169,8 +193,7 @@ void QSGDistanceFieldTextMaterialShader::updateState(const RenderState &state, Q updateRange = true; } if (updateRange) { - updateAlphaRange(material->glyphCache()->manager()->thresholdFunc(), - material->glyphCache()->manager()->antialiasingSpreadFunc()); + updateAlphaRange(); } Q_ASSERT(material->glyphCache()); @@ -334,7 +357,7 @@ public: protected: void initialize() override; - void updateOutlineAlphaRange(ThresholdFunc thresholdFunc, AntialiasingSpreadFunc spreadFunc, int dfRadius); + void updateOutlineAlphaRange(int dfRadius); int m_outlineAlphaMax0_id; int m_outlineAlphaMax1_id; @@ -355,9 +378,7 @@ void DistanceFieldOutlineTextMaterialShader::initialize() m_outlineAlphaMax1_id = program()->uniformLocation("outlineAlphaMax1"); } -void DistanceFieldOutlineTextMaterialShader::updateOutlineAlphaRange(ThresholdFunc thresholdFunc, - AntialiasingSpreadFunc spreadFunc, - int dfRadius) +void DistanceFieldOutlineTextMaterialShader::updateOutlineAlphaRange(int dfRadius) { float combinedScale = m_fontScale * m_matrixScale; float base = thresholdFunc(combinedScale); @@ -381,9 +402,7 @@ void DistanceFieldOutlineTextMaterialShader::updateState(const RenderState &stat if (oldMaterial == 0 || material->fontScale() != oldMaterial->fontScale() || state.isMatrixDirty()) - updateOutlineAlphaRange(material->glyphCache()->manager()->thresholdFunc(), - material->glyphCache()->manager()->antialiasingSpreadFunc(), - material->glyphCache()->distanceFieldRadius()); + updateOutlineAlphaRange(material->glyphCache()->distanceFieldRadius()); } diff --git a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp b/src/quick/scenegraph/util/qsgdistancefieldutil.cpp index 9ca9cdb107..97a5853bd6 100644 --- a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp +++ b/src/quick/scenegraph/util/qsgdistancefieldutil.cpp @@ -47,33 +47,7 @@ QT_BEGIN_NAMESPACE -static float qt_sg_envFloat(const char *name, float defaultValue) -{ - if (Q_LIKELY(!qEnvironmentVariableIsSet(name))) - return defaultValue; - bool ok = false; - const float value = qgetenv(name).toFloat(&ok); - return ok ? value : defaultValue; -} - -static float defaultThresholdFunc(float glyphScale) -{ - static const float base = qt_sg_envFloat("QT_DF_BASE", 0.5f); - static const float baseDev = qt_sg_envFloat("QT_DF_BASEDEVIATION", 0.065f); - static const float devScaleMin = qt_sg_envFloat("QT_DF_SCALEFORMAXDEV", 0.15f); - static const float devScaleMax = qt_sg_envFloat("QT_DF_SCALEFORNODEV", 0.3f); - return base - ((qBound(devScaleMin, glyphScale, devScaleMax) - devScaleMin) / (devScaleMax - devScaleMin) * -baseDev + baseDev); -} - -static float defaultAntialiasingSpreadFunc(float glyphScale) -{ - static const float range = qt_sg_envFloat("QT_DF_RANGE", 0.06f); - return range / glyphScale; -} - QSGDistanceFieldGlyphCacheManager::QSGDistanceFieldGlyphCacheManager() - : m_threshold_func(defaultThresholdFunc) - , m_antialiasingSpread_func(defaultAntialiasingSpreadFunc) { } diff --git a/src/quick/scenegraph/util/qsgdistancefieldutil_p.h b/src/quick/scenegraph/util/qsgdistancefieldutil_p.h index ad366cb4d4..78e7ce15cd 100644 --- a/src/quick/scenegraph/util/qsgdistancefieldutil_p.h +++ b/src/quick/scenegraph/util/qsgdistancefieldutil_p.h @@ -57,9 +57,6 @@ QT_BEGIN_NAMESPACE -typedef float (*ThresholdFunc)(float glyphScale); -typedef float (*AntialiasingSpreadFunc)(float glyphScale); - class QOpenGLShaderProgram; class QSGDistanceFieldGlyphCache; class QSGContext; @@ -73,17 +70,8 @@ public: QSGDistanceFieldGlyphCache *cache(const QRawFont &font); void insertCache(const QRawFont &font, QSGDistanceFieldGlyphCache *cache); - ThresholdFunc thresholdFunc() const { return m_threshold_func; } - void setThresholdFunc(ThresholdFunc func) { m_threshold_func = func; } - - AntialiasingSpreadFunc antialiasingSpreadFunc() const { return m_antialiasingSpread_func; } - void setAntialiasingSpreadFunc(AntialiasingSpreadFunc func) { m_antialiasingSpread_func = func; } - private: QHash m_caches; - - ThresholdFunc m_threshold_func; - AntialiasingSpreadFunc m_antialiasingSpread_func; }; QT_END_NAMESPACE -- cgit v1.2.3 From 59d8fa914d5d72a7973b91e67235e6fdf9686d7d Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Mon, 13 Mar 2017 18:33:58 +0100 Subject: Remove QSGDistanceFieldGlyphCacheManager After the previous cleanups, it became clear that this didn't serve much of a purpose, so let's remove it and simplify the implementation as a result. Change-Id: Iae2ff9c46762f0c7bdf4225a2c4df93bc8253902 Reviewed-by: Yoann Lopes --- src/quick/scenegraph/qsgadaptationlayer.cpp | 6 +- src/quick/scenegraph/qsgadaptationlayer_p.h | 7 +- src/quick/scenegraph/qsgcontext.cpp | 1 - src/quick/scenegraph/qsgcontext_p.h | 3 +- src/quick/scenegraph/qsgdefaultcontext.cpp | 1 - .../qsgdefaultdistancefieldglyphcache.cpp | 5 +- .../qsgdefaultdistancefieldglyphcache_p.h | 2 +- src/quick/scenegraph/qsgdefaultrendercontext.cpp | 14 ++-- src/quick/scenegraph/qsgdistancefieldglyphnode.cpp | 1 - .../scenegraph/qsgdistancefieldglyphnode_p.cpp | 1 - src/quick/scenegraph/qsgdistancefieldglyphnode_p.h | 1 - src/quick/scenegraph/scenegraph.pri | 2 - src/quick/scenegraph/util/qsgdistancefieldutil.cpp | 69 ------------------- src/quick/scenegraph/util/qsgdistancefieldutil_p.h | 79 ---------------------- tests/auto/quick/nokeywords/tst_nokeywords.cpp | 1 - 15 files changed, 12 insertions(+), 181 deletions(-) delete mode 100644 src/quick/scenegraph/util/qsgdistancefieldutil.cpp delete mode 100644 src/quick/scenegraph/util/qsgdistancefieldutil_p.h diff --git a/src/quick/scenegraph/qsgadaptationlayer.cpp b/src/quick/scenegraph/qsgadaptationlayer.cpp index 412023564f..f90706affe 100644 --- a/src/quick/scenegraph/qsgadaptationlayer.cpp +++ b/src/quick/scenegraph/qsgadaptationlayer.cpp @@ -40,7 +40,6 @@ #include "qsgadaptationlayer_p.h" #include -#include #include #include #include @@ -57,9 +56,8 @@ static QElapsedTimer qsg_render_timer; QSGDistanceFieldGlyphCache::Texture QSGDistanceFieldGlyphCache::s_emptyTexture; -QSGDistanceFieldGlyphCache::QSGDistanceFieldGlyphCache(QSGDistanceFieldGlyphCacheManager *man, QOpenGLContext *c, const QRawFont &font) - : m_manager(man) - , m_pendingGlyphs(64) +QSGDistanceFieldGlyphCache::QSGDistanceFieldGlyphCache(QOpenGLContext *c, const QRawFont &font) + : m_pendingGlyphs(64) { Q_ASSERT(font.isValid()); diff --git a/src/quick/scenegraph/qsgadaptationlayer_p.h b/src/quick/scenegraph/qsgadaptationlayer_p.h index a8e35b1ac1..ba146b884f 100644 --- a/src/quick/scenegraph/qsgadaptationlayer_p.h +++ b/src/quick/scenegraph/qsgadaptationlayer_p.h @@ -73,7 +73,6 @@ QT_BEGIN_NAMESPACE class QSGNode; class QImage; class TextureReference; -class QSGDistanceFieldGlyphCacheManager; class QSGDistanceFieldGlyphNode; class QOpenGLContext; class QSGInternalImageNode; @@ -409,7 +408,7 @@ public: class Q_QUICK_PRIVATE_EXPORT QSGDistanceFieldGlyphCache { public: - QSGDistanceFieldGlyphCache(QSGDistanceFieldGlyphCacheManager *man, QOpenGLContext *c, const QRawFont &font); + QSGDistanceFieldGlyphCache(QOpenGLContext *c, const QRawFont &font); virtual ~QSGDistanceFieldGlyphCache(); struct Metrics { @@ -443,8 +442,6 @@ public: bool operator == (const Texture &other) const { return textureId == other.textureId; } }; - const QSGDistanceFieldGlyphCacheManager *manager() const { return m_manager; } - const QRawFont &referenceFont() const { return m_referenceFont; } qreal fontScale(qreal pixelSize) const @@ -514,8 +511,6 @@ protected: inline bool isCoreProfile() const { return m_coreProfile; } private: - QSGDistanceFieldGlyphCacheManager *m_manager; - QRawFont m_referenceFont; int m_glyphCount; diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp index d52f69c7a3..ff2379ecb5 100644 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@ -333,7 +333,6 @@ QSGRendererInterface *QSGContext::rendererInterface(QSGRenderContext *renderCont QSGRenderContext::QSGRenderContext(QSGContext *context) : m_sg(context) - , m_distanceFieldCacheManager(0) { } diff --git a/src/quick/scenegraph/qsgcontext_p.h b/src/quick/scenegraph/qsgcontext_p.h index 2f5d5790ee..bd10453131 100644 --- a/src/quick/scenegraph/qsgcontext_p.h +++ b/src/quick/scenegraph/qsgcontext_p.h @@ -78,7 +78,6 @@ class QSGMaterial; class QSGRenderLoop; class QSGLayer; class QQuickTextureFactory; -class QSGDistanceFieldGlyphCacheManager; class QSGContext; class QQuickPaintedItem; class QSGRendererInterface; @@ -194,7 +193,7 @@ protected: QMutex m_mutex; QHash m_textures; QSet m_texturesToDelete; - QSGDistanceFieldGlyphCacheManager *m_distanceFieldCacheManager; + QHash m_glyphCaches; QSet m_fontEnginesToClean; }; diff --git a/src/quick/scenegraph/qsgdefaultcontext.cpp b/src/quick/scenegraph/qsgdefaultcontext.cpp index d31a7025e5..be5fec9dab 100644 --- a/src/quick/scenegraph/qsgdefaultcontext.cpp +++ b/src/quick/scenegraph/qsgdefaultcontext.cpp @@ -39,7 +39,6 @@ #include "qsgdefaultcontext_p.h" -#include #include #include #include diff --git a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp index f0a336e229..ba25172d2f 100644 --- a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp +++ b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include @@ -60,8 +59,8 @@ DEFINE_BOOL_CONFIG_OPTION(qsgPreferFullSizeGlyphCacheTextures, QSG_PREFER_FULLSI # define QSG_DEFAULT_DISTANCEFIELD_GLYPH_CACHE_PADDING 2 #endif -QSGDefaultDistanceFieldGlyphCache::QSGDefaultDistanceFieldGlyphCache(QSGDistanceFieldGlyphCacheManager *man, QOpenGLContext *c, const QRawFont &font) - : QSGDistanceFieldGlyphCache(man, c, font) +QSGDefaultDistanceFieldGlyphCache::QSGDefaultDistanceFieldGlyphCache(QOpenGLContext *c, const QRawFont &font) + : QSGDistanceFieldGlyphCache(c, font) , m_maxTextureSize(0) , m_maxTextureCount(3) , m_blitProgram(0) diff --git a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache_p.h b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache_p.h index 57dc4a5d07..fe365495c2 100644 --- a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache_p.h +++ b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache_p.h @@ -69,7 +69,7 @@ class QOpenGLFunctions_3_2_Core; class Q_QUICK_PRIVATE_EXPORT QSGDefaultDistanceFieldGlyphCache : public QSGDistanceFieldGlyphCache { public: - QSGDefaultDistanceFieldGlyphCache(QSGDistanceFieldGlyphCacheManager *man, QOpenGLContext *c, const QRawFont &font); + QSGDefaultDistanceFieldGlyphCache(QOpenGLContext *c, const QRawFont &font); virtual ~QSGDefaultDistanceFieldGlyphCache(); void requestGlyphs(const QSet &glyphs) override; diff --git a/src/quick/scenegraph/qsgdefaultrendercontext.cpp b/src/quick/scenegraph/qsgdefaultrendercontext.cpp index 2c5b4ff5c8..7542068a53 100644 --- a/src/quick/scenegraph/qsgdefaultrendercontext.cpp +++ b/src/quick/scenegraph/qsgdefaultrendercontext.cpp @@ -45,7 +45,6 @@ #include #include #include -#include QT_BEGIN_NAMESPACE @@ -159,8 +158,8 @@ void QSGDefaultRenderContext::invalidate() delete m_depthStencilManager; m_depthStencilManager = 0; - delete m_distanceFieldCacheManager; - m_distanceFieldCacheManager = 0; + qDeleteAll(m_glyphCaches); + m_glyphCaches.clear(); if (m_gl->property(QSG_RENDERCONTEXT_PROPERTY) == QVariant::fromValue(this)) m_gl->setProperty(QSG_RENDERCONTEXT_PROPERTY, QVariant()); @@ -294,13 +293,10 @@ QT_END_NAMESPACE QSGDistanceFieldGlyphCache *QSGDefaultRenderContext::distanceFieldGlyphCache(const QRawFont &font) { - if (!m_distanceFieldCacheManager) - m_distanceFieldCacheManager = new QSGDistanceFieldGlyphCacheManager; - - QSGDistanceFieldGlyphCache *cache = m_distanceFieldCacheManager->cache(font); + QSGDistanceFieldGlyphCache *cache = m_glyphCaches.value(font, 0); if (!cache) { - cache = new QSGDefaultDistanceFieldGlyphCache(m_distanceFieldCacheManager, openglContext(), font); - m_distanceFieldCacheManager->insertCache(font, cache); + cache = new QSGDefaultDistanceFieldGlyphCache(openglContext(), font); + m_glyphCaches.insert(font, cache); } return cache; diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp index 11c5444cd2..32eda2d142 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp @@ -39,7 +39,6 @@ #include "qsgdistancefieldglyphnode_p.h" #include "qsgdistancefieldglyphnode_p_p.h" -#include #include QT_BEGIN_NAMESPACE diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp index 153f0a45c5..a67c659c99 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp @@ -38,7 +38,6 @@ ****************************************************************************/ #include "qsgdistancefieldglyphnode_p_p.h" -#include #include #include #include diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h index 04446c7b2c..7008f20925 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode_p.h @@ -59,7 +59,6 @@ QT_BEGIN_NAMESPACE class QSGRenderContext; -class QSGDistanceFieldGlyphCacheManager; class QSGDistanceFieldTextMaterial; class QSGDistanceFieldGlyphNode: public QSGGlyphNode, public QSGDistanceFieldGlyphConsumer { diff --git a/src/quick/scenegraph/scenegraph.pri b/src/quick/scenegraph/scenegraph.pri index 38c3b8dd85..c6db3df158 100644 --- a/src/quick/scenegraph/scenegraph.pri +++ b/src/quick/scenegraph/scenegraph.pri @@ -45,7 +45,6 @@ HEADERS += \ $$PWD/util/qsgtexture.h \ $$PWD/util/qsgtexture_p.h \ $$PWD/util/qsgtextureprovider.h \ - $$PWD/util/qsgdistancefieldutil_p.h \ $$PWD/util/qsgflatcolormaterial.h \ $$PWD/util/qsgsimplematerial.h \ $$PWD/util/qsgtexturematerial.h \ @@ -62,7 +61,6 @@ SOURCES += \ $$PWD/util/qsgsimpletexturenode.cpp \ $$PWD/util/qsgtexture.cpp \ $$PWD/util/qsgtextureprovider.cpp \ - $$PWD/util/qsgdistancefieldutil.cpp \ $$PWD/util/qsgflatcolormaterial.cpp \ $$PWD/util/qsgsimplematerial.cpp \ $$PWD/util/qsgtexturematerial.cpp \ diff --git a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp b/src/quick/scenegraph/util/qsgdistancefieldutil.cpp deleted file mode 100644 index 97a5853bd6..0000000000 --- a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qsgdistancefieldutil_p.h" - -#include -#if QT_CONFIG(opengl) -# include -#endif -#include - -QT_BEGIN_NAMESPACE - -QSGDistanceFieldGlyphCacheManager::QSGDistanceFieldGlyphCacheManager() -{ -} - -QSGDistanceFieldGlyphCacheManager::~QSGDistanceFieldGlyphCacheManager() -{ - qDeleteAll(m_caches); -} - -QSGDistanceFieldGlyphCache *QSGDistanceFieldGlyphCacheManager::cache(const QRawFont &font) -{ - return m_caches.value(font, 0); -} - -void QSGDistanceFieldGlyphCacheManager::insertCache(const QRawFont &font, QSGDistanceFieldGlyphCache *cache) -{ - m_caches.insert(font, cache); -} - -QT_END_NAMESPACE diff --git a/src/quick/scenegraph/util/qsgdistancefieldutil_p.h b/src/quick/scenegraph/util/qsgdistancefieldutil_p.h deleted file mode 100644 index 78e7ce15cd..0000000000 --- a/src/quick/scenegraph/util/qsgdistancefieldutil_p.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QSGDISTANCEFIELDUTIL_H -#define QSGDISTANCEFIELDUTIL_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QOpenGLShaderProgram; -class QSGDistanceFieldGlyphCache; -class QSGContext; - -class Q_QUICK_PRIVATE_EXPORT QSGDistanceFieldGlyphCacheManager -{ -public: - QSGDistanceFieldGlyphCacheManager(); - ~QSGDistanceFieldGlyphCacheManager(); - - QSGDistanceFieldGlyphCache *cache(const QRawFont &font); - void insertCache(const QRawFont &font, QSGDistanceFieldGlyphCache *cache); - -private: - QHash m_caches; -}; - -QT_END_NAMESPACE - -#endif // QSGDISTANCEFIELDUTIL_H diff --git a/tests/auto/quick/nokeywords/tst_nokeywords.cpp b/tests/auto/quick/nokeywords/tst_nokeywords.cpp index ad77743ddd..e6655589a3 100644 --- a/tests/auto/quick/nokeywords/tst_nokeywords.cpp +++ b/tests/auto/quick/nokeywords/tst_nokeywords.cpp @@ -55,7 +55,6 @@ #include #include #include -#include #endif #include #include -- cgit v1.2.3 From fc0254a48c775cdfea693402d0472b73c8b940e5 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Mar 2017 16:26:02 +0100 Subject: Simplify internal source access API All call sites of QQmlDataBlob::Data immediately convert the data to UTf-8 - for .qml, .js and qmldir files. We can simplify the code by reflecting that in the API and that also opens up the possibility for future optimizations. This means that the bi-pointer has to go, but at the moment the Data object is stack-allocated anyway. Since the "Data" class always represents source code, it is now called SourceCodeData. Change-Id: Icd262ed1e35f9edd64945ba6c16d80f9917eae72 Reviewed-by: Lars Knoll --- src/qml/qml/qqmltypeloader.cpp | 40 ++++++++++++++++++++-------------------- src/qml/qml/qqmltypeloader_p.h | 27 ++++++++++----------------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 372b05eeef..193239e680 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -1245,20 +1245,22 @@ void QQmlTypeLoader::initializeEngine(QQmlExtensionInterface *iface, void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QByteArray &data) { QML_MEMORY_SCOPE_URL(blob->url()); - QQmlDataBlob::Data d; - d.d = &data; + QQmlDataBlob::SourceCodeData d; + d.inlineSourceCodeOrFileName = QString::fromUtf8(data); + d.sourceCodeAvailable = true; setData(blob, d); } void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QString &fileName) { QML_MEMORY_SCOPE_URL(blob->url()); - QQmlDataBlob::Data d; - d.d = &fileName; + QQmlDataBlob::SourceCodeData d; + d.inlineSourceCodeOrFileName = fileName; + d.sourceCodeAvailable = false; setData(blob, d); } -void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QQmlDataBlob::Data &d) +void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QQmlDataBlob::SourceCodeData &d) { QML_MEMORY_SCOPE_URL(blob->url()); QQmlCompilingProfiler prof(QQmlEnginePrivate::get(engine())->profiler, blob); @@ -2342,7 +2344,7 @@ bool QQmlTypeData::loadImplicitImport() return true; } -void QQmlTypeData::dataReceived(const Data &data) +void QQmlTypeData::dataReceived(const SourceCodeData &data) { QString error; m_backupSourceCode = data.readAll(&error, &m_sourceTimeStamp); @@ -2376,12 +2378,11 @@ void QQmlTypeData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *un bool QQmlTypeData::loadFromSource() { - QString code = QString::fromUtf8(m_backupSourceCode); m_document.reset(new QmlIR::Document(isDebugging())); m_document->jsModule.sourceTimeStamp = m_sourceTimeStamp; QQmlEngine *qmlEngine = typeLoader()->engine(); QmlIR::IRBuilder compiler(QV8Engine::get(qmlEngine)->illegalNames()); - if (!compiler.generateFromQml(code, finalUrlString(), m_document.data())) { + if (!compiler.generateFromQml(m_backupSourceCode, finalUrlString(), m_document.data())) { QList errors; errors.reserve(compiler.errors.count()); for (const QQmlJS::DiagnosticMessage &msg : qAsConst(compiler.errors)) { @@ -2872,7 +2873,7 @@ struct EmptyCompilationUnit : public QV4::CompiledData::CompilationUnit void linkBackendToEngine(QV4::ExecutionEngine *) override {} }; -void QQmlScriptBlob::dataReceived(const Data &data) +void QQmlScriptBlob::dataReceived(const SourceCodeData &data) { QV4::ExecutionEngine *v4 = QV8Engine::getV4(m_typeLoader->engine()); @@ -2891,7 +2892,7 @@ void QQmlScriptBlob::dataReceived(const Data &data) QmlIR::Document irUnit(isDebugging()); QString error; - QString source = QString::fromUtf8(data.readAll(&error, &irUnit.jsModule.sourceTimeStamp)); + QString source = data.readAll(&error, &irUnit.jsModule.sourceTimeStamp); if (!error.isEmpty()) { setError(error); return; @@ -3055,10 +3056,10 @@ void QQmlQmldirData::setPriority(int priority) m_priority = priority; } -void QQmlQmldirData::dataReceived(const Data &data) +void QQmlQmldirData::dataReceived(const SourceCodeData &data) { QString error; - m_content = QString::fromUtf8(data.readAll(&error)); + m_content = data.readAll(&error); if (!error.isEmpty()) { setError(error); return; @@ -3070,19 +3071,18 @@ void QQmlQmldirData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit * Q_UNIMPLEMENTED(); } -QByteArray QQmlDataBlob::Data::readAll(QString *error, qint64 *sourceTimeStamp) const +QString QQmlDataBlob::SourceCodeData::readAll(QString *error, qint64 *sourceTimeStamp) const { - Q_ASSERT(!d.isNull()); error->clear(); - if (d.isT1()) { + if (sourceCodeAvailable) { if (sourceTimeStamp) *sourceTimeStamp = 0; - return *d.asT1(); + return inlineSourceCodeOrFileName; } - QFile f(*d.asT2()); + QFile f(inlineSourceCodeOrFileName); if (!f.open(QIODevice::ReadOnly)) { *error = f.errorString(); - return QByteArray(); + return QString(); } if (sourceTimeStamp) { QDateTime timeStamp = QFileInfo(f).lastModified(); @@ -3095,9 +3095,9 @@ QByteArray QQmlDataBlob::Data::readAll(QString *error, qint64 *sourceTimeStamp) QByteArray data(f.size(), Qt::Uninitialized); if (f.read(data.data(), data.length()) != data.length()) { *error = f.errorString(); - return QByteArray(); + return QString(); } - return data; + return QString::fromUtf8(data); } QT_END_NAMESPACE diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index 915b1bcc4c..c1b3548fa6 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -130,16 +130,14 @@ public: QList errors() const; - class Data { + class SourceCodeData { public: - QByteArray readAll(QString *error, qint64 *sourceTimeStamp = 0) const; + QString readAll(QString *error, qint64 *sourceTimeStamp = 0) const; private: friend class QQmlDataBlob; friend class QQmlTypeLoader; - inline Data(); - Data(const Data &); - Data &operator=(const Data &); - QBiPointer d; + QString inlineSourceCodeOrFileName; + bool sourceCodeAvailable = false; }; protected: @@ -152,7 +150,7 @@ protected: void addDependency(QQmlDataBlob *); // Callbacks made in load thread - virtual void dataReceived(const Data &) = 0; + virtual void dataReceived(const SourceCodeData &) = 0; virtual void initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit*) = 0; virtual void done(); #if QT_CONFIG(qml_network) @@ -339,7 +337,7 @@ private: void setData(QQmlDataBlob *, const QByteArray &); void setData(QQmlDataBlob *, const QString &fileName); - void setData(QQmlDataBlob *, const QQmlDataBlob::Data &); + void setData(QQmlDataBlob *, const QQmlDataBlob::SourceCodeData &); void setCachedUnit(QQmlDataBlob *blob, const QQmlPrivate::CachedQmlUnit *unit); template @@ -436,7 +434,7 @@ public: protected: void done() override; void completed() override; - void dataReceived(const Data &) override; + void dataReceived(const SourceCodeData &) override; void initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *unit) override; void allDependenciesDone() override; void downloadProgressChanged(qreal) override; @@ -463,7 +461,7 @@ private: qint64 m_sourceTimeStamp = 0; - QByteArray m_backupSourceCode; // used when cache verification fails. + QString m_backupSourceCode; // used when cache verification fails. QScopedPointer m_document; QV4::CompiledData::TypeReferenceMap m_typeReferences; @@ -547,7 +545,7 @@ public: QQmlScriptData *scriptData() const; protected: - void dataReceived(const Data &) override; + void dataReceived(const SourceCodeData &) override; void initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *unit) override; void done() override; @@ -578,7 +576,7 @@ public: void setPriority(int); protected: - void dataReceived(const Data &) override; + void dataReceived(const SourceCodeData &) override; void initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit*) override; private: @@ -587,11 +585,6 @@ private: int m_priority; }; -QQmlDataBlob::Data::Data() -{ -} - - QT_END_NAMESPACE -- cgit v1.2.3 From 5ce2235f425b3c5047faf709c87c9b5c8e414b8b Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Mar 2017 16:52:10 +0100 Subject: Avoid reading (not parsing) .qml files when using the cache By making SourceCodeData copyable we can delay the reading of the source file until we really need to. This also allows persisting the QFileInfo object and therefore having only one stat() call to check if the file exists, what its size is and what the last modification time is. Change-Id: Ic7e4d5f566d870f3b1fa8302227417fa813cb139 Reviewed-by: Lars Knoll --- src/qml/qml/qqmltypeloader.cpp | 78 +++++++++++++++++++++++++----------------- src/qml/qml/qqmltypeloader_p.h | 12 ++++--- 2 files changed, 54 insertions(+), 36 deletions(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 193239e680..c5d4945bf1 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -1246,8 +1246,7 @@ void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QByteArray &data) { QML_MEMORY_SCOPE_URL(blob->url()); QQmlDataBlob::SourceCodeData d; - d.inlineSourceCodeOrFileName = QString::fromUtf8(data); - d.sourceCodeAvailable = true; + d.inlineSourceCode = QString::fromUtf8(data); setData(blob, d); } @@ -1255,8 +1254,7 @@ void QQmlTypeLoader::setData(QQmlDataBlob *blob, const QString &fileName) { QML_MEMORY_SCOPE_URL(blob->url()); QQmlDataBlob::SourceCodeData d; - d.inlineSourceCodeOrFileName = fileName; - d.sourceCodeAvailable = false; + d.fileInfo = QFileInfo(fileName); setData(blob, d); } @@ -2237,7 +2235,7 @@ void QQmlTypeData::done() qCDebug(DBG_DISK_CACHE) << "Checksum mismatch for cached version of" << m_compiledData->url().toString(); if (!loadFromSource()) return; - m_backupSourceCode.clear(); + m_backupSourceCode = SourceCodeData(); m_compiledData = nullptr; } @@ -2346,11 +2344,7 @@ bool QQmlTypeData::loadImplicitImport() void QQmlTypeData::dataReceived(const SourceCodeData &data) { - QString error; - m_backupSourceCode = data.readAll(&error, &m_sourceTimeStamp); - // if we failed to read the source code, process it _after_ we've tried - // to use the disk cache, in order to support scenarios where the source - // was removed deliberately. + m_backupSourceCode = data; if (tryLoadFromDiskCache()) return; @@ -2358,8 +2352,8 @@ void QQmlTypeData::dataReceived(const SourceCodeData &data) if (isError()) return; - if (!error.isEmpty()) { - setError(error); + if (!m_backupSourceCode.exists()) { + setError(QQmlTypeLoader::tr("No such file or directory")); return; } @@ -2379,10 +2373,18 @@ void QQmlTypeData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *un bool QQmlTypeData::loadFromSource() { m_document.reset(new QmlIR::Document(isDebugging())); - m_document->jsModule.sourceTimeStamp = m_sourceTimeStamp; + m_document->jsModule.sourceTimeStamp = m_backupSourceCode.sourceTimeStamp(); QQmlEngine *qmlEngine = typeLoader()->engine(); QmlIR::IRBuilder compiler(QV8Engine::get(qmlEngine)->illegalNames()); - if (!compiler.generateFromQml(m_backupSourceCode, finalUrlString(), m_document.data())) { + + QString sourceError; + const QString source = m_backupSourceCode.readAll(&sourceError); + if (!sourceError.isEmpty()) { + setError(sourceError); + return false; + } + + if (!compiler.generateFromQml(source, finalUrlString(), m_document.data())) { QList errors; errors.reserve(compiler.errors.count()); for (const QQmlJS::DiagnosticMessage &msg : qAsConst(compiler.errors)) { @@ -2891,8 +2893,9 @@ void QQmlScriptBlob::dataReceived(const SourceCodeData &data) QmlIR::Document irUnit(isDebugging()); + irUnit.jsModule.sourceTimeStamp = data.sourceTimeStamp(); QString error; - QString source = data.readAll(&error, &irUnit.jsModule.sourceTimeStamp); + QString source = data.readAll(&error); if (!error.isEmpty()) { setError(error); return; @@ -3071,28 +3074,19 @@ void QQmlQmldirData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit * Q_UNIMPLEMENTED(); } -QString QQmlDataBlob::SourceCodeData::readAll(QString *error, qint64 *sourceTimeStamp) const +QString QQmlDataBlob::SourceCodeData::readAll(QString *error) const { error->clear(); - if (sourceCodeAvailable) { - if (sourceTimeStamp) - *sourceTimeStamp = 0; - return inlineSourceCodeOrFileName; - } - QFile f(inlineSourceCodeOrFileName); + if (!inlineSourceCode.isEmpty()) + return inlineSourceCode; + + QFile f(fileInfo.absoluteFilePath()); if (!f.open(QIODevice::ReadOnly)) { *error = f.errorString(); return QString(); } - if (sourceTimeStamp) { - QDateTime timeStamp = QFileInfo(f).lastModified(); - // Files from the resource system do not have any time stamps, so fall back to the application - // executable. - if (!timeStamp.isValid()) - timeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); - *sourceTimeStamp = timeStamp.toMSecsSinceEpoch(); - } - QByteArray data(f.size(), Qt::Uninitialized); + + QByteArray data(fileInfo.size(), Qt::Uninitialized); if (f.read(data.data(), data.length()) != data.length()) { *error = f.errorString(); return QString(); @@ -3100,6 +3094,28 @@ QString QQmlDataBlob::SourceCodeData::readAll(QString *error, qint64 *sourceTime return QString::fromUtf8(data); } +qint64 QQmlDataBlob::SourceCodeData::sourceTimeStamp() const +{ + if (!inlineSourceCode.isEmpty()) + return 0; + + QDateTime timeStamp = fileInfo.lastModified(); + if (timeStamp.isValid()) + return timeStamp.toMSecsSinceEpoch(); + + static qint64 appTimeStamp = 0; + if (appTimeStamp == 0) + appTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified().toMSecsSinceEpoch(); + return appTimeStamp; +} + +bool QQmlDataBlob::SourceCodeData::exists() const +{ + if (!inlineSourceCode.isEmpty()) + return true; + return fileInfo.exists(); +} + QT_END_NAMESPACE #include "qqmltypeloader.moc" diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index c1b3548fa6..0bae857874 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -54,6 +54,7 @@ #include #include #include +#include #if QT_CONFIG(qml_network) #include #endif @@ -132,12 +133,14 @@ public: class SourceCodeData { public: - QString readAll(QString *error, qint64 *sourceTimeStamp = 0) const; + QString readAll(QString *error) const; + qint64 sourceTimeStamp() const; + bool exists() const; private: friend class QQmlDataBlob; friend class QQmlTypeLoader; - QString inlineSourceCodeOrFileName; - bool sourceCodeAvailable = false; + QString inlineSourceCode; + QFileInfo fileInfo; }; protected: @@ -460,8 +463,7 @@ private: void scriptImported(QQmlScriptBlob *blob, const QV4::CompiledData::Location &location, const QString &qualifier, const QString &nameSpace) override; - qint64 m_sourceTimeStamp = 0; - QString m_backupSourceCode; // used when cache verification fails. + SourceCodeData m_backupSourceCode; // used when cache verification fails. QScopedPointer m_document; QV4::CompiledData::TypeReferenceMap m_typeReferences; -- cgit v1.2.3 From 12569460e765ea01935ab60e06b5a5acf770ebe7 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Mon, 20 Mar 2017 22:26:44 +0100 Subject: QSGOpenVGLayer: Fix compilation Amends 48c31733383d14447d1c383cefca9ca40daa6a87. Change-Id: I9b30af689eaa9ca686b8ec2d034866eb4671ec95 Reviewed-by: Andy Nichols --- src/plugins/scenegraph/openvg/qsgopenvglayer.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/scenegraph/openvg/qsgopenvglayer.h b/src/plugins/scenegraph/openvg/qsgopenvglayer.h index 2af0bfb40f..8deedc3347 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvglayer.h +++ b/src/plugins/scenegraph/openvg/qsgopenvglayer.h @@ -83,6 +83,7 @@ public: void setDevicePixelRatio(qreal ratio) override; void setMirrorHorizontal(bool mirror) override; void setMirrorVertical(bool mirror) override; + void setSamples(int) override { } public slots: void markDirtyTexture() override; -- cgit v1.2.3 From db51441a955f63abba41b80198969df38c3d4a10 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 20 Mar 2017 15:39:00 +0100 Subject: Allow info messages in debug message service QtInfoMsg > QtFatalMsg, and it was added later. Change-Id: If565ebd491aba57b162c7f8ddb5534e416f7ab44 Reviewed-by: Simon Hausmann --- .../auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp index 8be82c30f9..f193d3928a 100644 --- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp +++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp @@ -135,7 +135,7 @@ void QQmlDebugMsgClient::messageReceived(const QByteArray &data) QVERIFY(ds.atEnd()); QVERIFY(type >= QtDebugMsg); - QVERIFY(type <= QtFatalMsg); + QVERIFY(type <= QtInfoMsg); QVERIFY(timestamp > 0); LogEntry entry((QtMsgType)type, QString::fromUtf8(message)); -- cgit v1.2.3 From 9b7071637415bdad82bf61caf21603963f7fe21a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 21 Mar 2017 14:49:10 +0100 Subject: Fix handling of huge memory segments Allocating a MemorySegment larger than 4M was not working correctly. We would in this case reserve the right amount of memory, but where not able to use it, leading to an assertion in the HugeItemAllocator. Fix this by ensuring we can properly allocate the memory that was reserved in the Segment. Change-Id: I1e3d2b3beebdde0a509fd123ad2aa8b1bc35a26b Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index a829e902fb..27adfcb517 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -113,14 +113,16 @@ struct MemorySegment { pageReservation = PageReservation::reserve(size, OSAllocator::JSGCHeapPages); base = reinterpret_cast((reinterpret_cast(pageReservation.base()) + Chunk::ChunkSize - 1) & ~(Chunk::ChunkSize - 1)); nChunks = NumChunks; - if (base != pageReservation.base()) + availableBytes = size - (reinterpret_cast(base) - reinterpret_cast(pageReservation.base())); + if (availableBytes < SegmentSize) --nChunks; } MemorySegment(MemorySegment &&other) { qSwap(pageReservation, other.pageReservation); qSwap(base, other.base); - qSwap(nChunks, other.nChunks); qSwap(allocatedMap, other.allocatedMap); + qSwap(availableBytes, other.availableBytes); + qSwap(nChunks, other.nChunks); } ~MemorySegment() { @@ -150,7 +152,7 @@ struct MemorySegment { void free(Chunk *chunk, size_t size) { DEBUG << "freeing chunk" << chunk; size_t index = static_cast(chunk - base); - size_t end = index + (size - 1)/Chunk::ChunkSize + 1; + size_t end = qMin(static_cast(NumChunks), index + (size - 1)/Chunk::ChunkSize + 1); while (index < end) { Q_ASSERT(testBit(index)); clearBit(index); @@ -169,11 +171,19 @@ struct MemorySegment { PageReservation pageReservation; Chunk *base = 0; quint64 allocatedMap = 0; + size_t availableBytes = 0; uint nChunks = 0; }; Chunk *MemorySegment::allocate(size_t size) { + if (!allocatedMap && size >= SegmentSize) { + // chunk allocated for one huge allocation + Q_ASSERT(availableBytes >= size); + pageReservation.commit(base, size); + allocatedMap = ~static_cast(0); + return base; + } size_t requiredChunks = (size + sizeof(Chunk) - 1)/sizeof(Chunk); uint sequence = 0; Chunk *candidate = 0; -- cgit v1.2.3 From 5bd11b5a8c2f627bc9c9f1b6c02602772ad67dae Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 16 Mar 2017 09:44:50 +0100 Subject: Avoid an extra stat() on the source .qml file when loading cache For timestamp comparison it is not necessary to create another QFileInfo() object and call exists() and lastModified(), when we can pass that information through from the type loader. Change-Id: I225cd36e672f1f390bddb4e6ebfafa3fc1269795 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compilationunitmapper.cpp | 7 +------ src/qml/compiler/qv4compilationunitmapper_p.h | 4 ++-- src/qml/compiler/qv4compilationunitmapper_unix.cpp | 5 +++-- src/qml/compiler/qv4compilationunitmapper_win.cpp | 4 ++-- src/qml/compiler/qv4compileddata.cpp | 4 ++-- src/qml/compiler/qv4compileddata_p.h | 2 +- src/qml/compiler/qv4compiler.cpp | 2 +- src/qml/compiler/qv4jsir_p.h | 4 ++-- src/qml/qml/qqmltypeloader.cpp | 18 +++++++++--------- src/qml/qml/qqmltypeloader_p.h | 2 +- tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp | 2 +- tools/qmljs/qmljs.cpp | 2 +- 12 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/qml/compiler/qv4compilationunitmapper.cpp b/src/qml/compiler/qv4compilationunitmapper.cpp index 1ae0fb190c..d94f7ac238 100644 --- a/src/qml/compiler/qv4compilationunitmapper.cpp +++ b/src/qml/compiler/qv4compilationunitmapper.cpp @@ -59,7 +59,7 @@ CompilationUnitMapper::~CompilationUnitMapper() close(); } -bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, const QString &sourcePath, QString *errorString) +bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, QDateTime sourceTimeStamp, QString *errorString) { if (strncmp(header->magic, CompiledData::magic_str, sizeof(header->magic))) { *errorString = QStringLiteral("Magic bytes in the header do not match"); @@ -77,11 +77,6 @@ bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, const } if (header->sourceTimeStamp) { - QFileInfo sourceCode(sourcePath); - QDateTime sourceTimeStamp; - if (sourceCode.exists()) - sourceTimeStamp = sourceCode.lastModified(); - // Files from the resource system do not have any time stamps, so fall back to the application // executable. if (!sourceTimeStamp.isValid()) diff --git a/src/qml/compiler/qv4compilationunitmapper_p.h b/src/qml/compiler/qv4compilationunitmapper_p.h index 5b6939f1cf..b24f98df7c 100644 --- a/src/qml/compiler/qv4compilationunitmapper_p.h +++ b/src/qml/compiler/qv4compilationunitmapper_p.h @@ -68,11 +68,11 @@ public: CompilationUnitMapper(); ~CompilationUnitMapper(); - CompiledData::Unit *open(const QString &cacheFilePath, const QString &sourcePath, QString *errorString); + CompiledData::Unit *open(const QString &cacheFilePath, const QDateTime &sourceTimeStamp, QString *errorString); void close(); private: - static bool verifyHeader(const QV4::CompiledData::Unit *header, const QString &sourcePath, QString *errorString); + static bool verifyHeader(const QV4::CompiledData::Unit *header, QDateTime sourceTimeStamp, QString *errorString); #if defined(Q_OS_UNIX) size_t length; diff --git a/src/qml/compiler/qv4compilationunitmapper_unix.cpp b/src/qml/compiler/qv4compilationunitmapper_unix.cpp index 1aa3e05f5f..38dabc41cf 100644 --- a/src/qml/compiler/qv4compilationunitmapper_unix.cpp +++ b/src/qml/compiler/qv4compilationunitmapper_unix.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include "qv4compileddata_p.h" @@ -50,7 +51,7 @@ QT_BEGIN_NAMESPACE using namespace QV4; -CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, const QString &sourcePath, QString *errorString) +CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, const QDateTime &sourceTimeStamp, QString *errorString) { close(); @@ -72,7 +73,7 @@ CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, co return nullptr; } - if (!verifyHeader(&header, sourcePath, errorString)) + if (!verifyHeader(&header, sourceTimeStamp, errorString)) return nullptr; // Data structure and qt version matched, so now we can access the rest of the file safely. diff --git a/src/qml/compiler/qv4compilationunitmapper_win.cpp b/src/qml/compiler/qv4compilationunitmapper_win.cpp index 37cac846a0..d7a93ae233 100644 --- a/src/qml/compiler/qv4compilationunitmapper_win.cpp +++ b/src/qml/compiler/qv4compilationunitmapper_win.cpp @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE using namespace QV4; -CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, const QString &sourcePath, QString *errorString) +CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, const QDateTime &sourceTimeStamp, QString *errorString) { close(); @@ -87,7 +87,7 @@ CompiledData::Unit *CompilationUnitMapper::open(const QString &cacheFileName, co return nullptr; } - if (!verifyHeader(&header, sourcePath, errorString)) + if (!verifyHeader(&header, sourceTimeStamp, errorString)) return nullptr; const uint mappingFlags = header.flags & QV4::CompiledData::Unit::ContainsMachineCode diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 4688f936cc..1805ab3f54 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -343,7 +343,7 @@ bool CompilationUnit::verifyChecksum(QQmlEngine *engine, sizeof(data->dependencyMD5Checksum)) == 0; } -bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory, QString *errorString) +bool CompilationUnit::loadFromDisk(const QUrl &url, const QDateTime &sourceTimeStamp, EvalISelFactory *iselFactory, QString *errorString) { if (!QQmlFile::isLocalFile(url)) { *errorString = QStringLiteral("File has to be a local file."); @@ -353,7 +353,7 @@ bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory const QString sourcePath = QQmlFile::urlToLocalFileOrQrc(url); QScopedPointer cacheFile(new CompilationUnitMapper()); - CompiledData::Unit *mappedUnit = cacheFile->open(cacheFilePath(url), sourcePath, errorString); + CompiledData::Unit *mappedUnit = cacheFile->open(cacheFilePath(url), sourceTimeStamp, errorString); if (!mappedUnit) return false; diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 6d219b85aa..8cf5437928 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -899,7 +899,7 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit : public CompilationUnitBase, public void destroy() Q_DECL_OVERRIDE; - bool loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory, QString *errorString); + bool loadFromDisk(const QUrl &url, const QDateTime &sourceTimeStamp, EvalISelFactory *iselFactory, QString *errorString); protected: virtual void linkBackendToEngine(QV4::ExecutionEngine *engine) = 0; diff --git a/src/qml/compiler/qv4compiler.cpp b/src/qml/compiler/qv4compiler.cpp index 9cfac4a676..64f034ddcb 100644 --- a/src/qml/compiler/qv4compiler.cpp +++ b/src/qml/compiler/qv4compiler.cpp @@ -425,7 +425,7 @@ QV4::CompiledData::Unit QV4::Compiler::JSUnitGenerator::generateHeader(QV4::Comp } unit.indexOfRootFunction = -1; unit.sourceFileIndex = getStringId(irModule->fileName); - unit.sourceTimeStamp = irModule->sourceTimeStamp; + unit.sourceTimeStamp = irModule->sourceTimeStamp.isValid() ? irModule->sourceTimeStamp.toMSecsSinceEpoch() : 0; unit.nImports = 0; unit.offsetToImports = 0; unit.nObjects = 0; diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 23ebe0c962..d9192c1a3b 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -61,6 +61,7 @@ #include #include #include +#include #include #if defined(CONST) && defined(Q_OS_WIN) @@ -942,7 +943,7 @@ struct Q_QML_PRIVATE_EXPORT Module { QVector functions; Function *rootFunction; QString fileName; - qint64 sourceTimeStamp; + QDateTime sourceTimeStamp; bool isQmlModule; // implies rootFunction is always 0 uint unitFlags; // flags merged into CompiledData::Unit::flags #ifdef QT_NO_QML_DEBUGGER @@ -955,7 +956,6 @@ struct Q_QML_PRIVATE_EXPORT Module { Module(bool debugMode) : rootFunction(0) - , sourceTimeStamp(0) , isQmlModule(false) , unitFlags(0) #ifndef QT_NO_QML_DEBUGGER diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index c5d4945bf1..9526615c0d 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2065,7 +2065,7 @@ bool QQmlTypeData::tryLoadFromDiskCache() QQmlRefPointer unit = v4->iselFactory->createUnitForLoading(); { QString error; - if (!unit->loadFromDisk(url(), v4->iselFactory.data(), &error)) { + if (!unit->loadFromDisk(url(), m_backupSourceCode.sourceTimeStamp(), v4->iselFactory.data(), &error)) { qCDebug(DBG_DISK_CACHE) << "Error loading" << url().toString() << "from disk cache:" << error; return false; } @@ -2522,7 +2522,7 @@ void QQmlTypeData::compile(const QQmlRefPointer &typeNameCach QString errorString; if (m_compiledData->saveToDisk(url(), &errorString)) { QString error; - if (!m_compiledData->loadFromDisk(url(), enginePrivate->v4engine()->iselFactory.data(), &error)) { + if (!m_compiledData->loadFromDisk(url(), m_backupSourceCode.sourceTimeStamp(), enginePrivate->v4engine()->iselFactory.data(), &error)) { // ignore error, keep using the in-memory compilation unit. } } else { @@ -2882,7 +2882,7 @@ void QQmlScriptBlob::dataReceived(const SourceCodeData &data) if (!disableDiskCache() || forceDiskCache()) { QQmlRefPointer unit = v4->iselFactory->createUnitForLoading(); QString error; - if (unit->loadFromDisk(url(), v4->iselFactory.data(), &error)) { + if (unit->loadFromDisk(url(), data.sourceTimeStamp(), v4->iselFactory.data(), &error)) { initializeFromCompilationUnit(unit); return; } else { @@ -3094,18 +3094,18 @@ QString QQmlDataBlob::SourceCodeData::readAll(QString *error) const return QString::fromUtf8(data); } -qint64 QQmlDataBlob::SourceCodeData::sourceTimeStamp() const +QDateTime QQmlDataBlob::SourceCodeData::sourceTimeStamp() const { if (!inlineSourceCode.isEmpty()) - return 0; + return QDateTime(); QDateTime timeStamp = fileInfo.lastModified(); if (timeStamp.isValid()) - return timeStamp.toMSecsSinceEpoch(); + return timeStamp; - static qint64 appTimeStamp = 0; - if (appTimeStamp == 0) - appTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified().toMSecsSinceEpoch(); + static QDateTime appTimeStamp; + if (!appTimeStamp.isValid()) + appTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); return appTimeStamp; } diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index 0bae857874..1bd2c7f1e1 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -134,7 +134,7 @@ public: class SourceCodeData { public: QString readAll(QString *error) const; - qint64 sourceTimeStamp() const; + QDateTime sourceTimeStamp() const; bool exists() const; private: friend class QQmlDataBlob; diff --git a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp index b265607fd1..17aa6087d2 100644 --- a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp +++ b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp @@ -174,7 +174,7 @@ struct TestCompiler { QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine); QQmlRefPointer unit = v4->iselFactory->createUnitForLoading(); - return unit->loadFromDisk(QUrl::fromLocalFile(testFilePath), v4->iselFactory.data(), &lastErrorString); + return unit->loadFromDisk(QUrl::fromLocalFile(testFilePath), QFileInfo(testFilePath).lastModified(), v4->iselFactory.data(), &lastErrorString); } void closeMapping() diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp index 4d0f9d278f..14a20731c0 100644 --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp @@ -159,7 +159,7 @@ int main(int argc, char *argv[]) if (cache && QFile::exists(fn + QLatin1Char('c'))) { QQmlRefPointer unit = iSelFactory->createUnitForLoading(); QString error; - if (unit->loadFromDisk(QUrl::fromLocalFile(fn), iSelFactory, &error)) { + if (unit->loadFromDisk(QUrl::fromLocalFile(fn), QFileInfo(fn).lastModified(), iSelFactory, &error)) { script.reset(new QV4::Script(&vm, nullptr, unit)); } else { std::cout << "Error loading" << qPrintable(fn) << "from disk cache:" << qPrintable(error) << std::endl; -- cgit v1.2.3 From 110f69ab8168950be74779b635d46ef83553d71a Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 16 Mar 2017 10:02:24 +0100 Subject: Speed up source code reading Since we always convert the source code of .qml/.js/qmldir files from utf-8 to utf-16, we always end up copying bytes around. That means instead of allocating memory on the C++ heap and copying bytes from kernel space to user space and then a few times through QIODevice buffers until we reach QString::fromUtf8, we might as well mmap() the file directly - if possible. Change-Id: I54c88d4d9f03f9967130d65a7b53cfec93734018 Reviewed-by: Lars Knoll --- src/qml/qml/qqmltypeloader.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 9526615c0d..eedb649ef6 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -3086,7 +3086,15 @@ QString QQmlDataBlob::SourceCodeData::readAll(QString *error) const return QString(); } - QByteArray data(fileInfo.size(), Qt::Uninitialized); + const qint64 fileSize = fileInfo.size(); + + if (uchar *mappedData = f.map(0, fileSize)) { + QString source = QString::fromUtf8(reinterpret_cast(mappedData), fileSize); + f.unmap(mappedData); + return source; + } + + QByteArray data(fileSize, Qt::Uninitialized); if (f.read(data.data(), data.length()) != data.length()) { *error = f.errorString(); return QString(); -- cgit v1.2.3 From 047af776233d39905e8ad2b8411fcf6d3cf0d22f Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 22 Mar 2017 11:49:14 +0100 Subject: Codegen: do not assume QStringRef(const QString *) is implicit It won't be for very much longer. Change-Id: I90fae21b621f104053b776296fc9f6525e8baf52 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4codegen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 2c1b5c57cc..a10c0730bf 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -1485,7 +1485,7 @@ IR::Expr *Codegen::identifier(const QString &name, int line, int col) IR::Function *f = _function; while (f && e->parent) { - if (f->insideWithOrCatch || (f->isNamedExpression && f->name == name)) + if (f->insideWithOrCatch || (f->isNamedExpression && QStringRef(f->name) == name)) return _block->NAME(name, line, col); int index = e->findMember(name); @@ -1496,7 +1496,7 @@ IR::Expr *Codegen::identifier(const QString &name, int line, int col) al->isArgumentsOrEval = true; return al; } - const int argIdx = f->indexOfArgument(&name); + const int argIdx = f->indexOfArgument(QStringRef(&name)); if (argIdx != -1) return _block->ARG(argIdx, scope); -- cgit v1.2.3 From c021e4b412e1e2977f4c7cf390cee4699b80e67e Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Mon, 13 Mar 2017 12:09:13 +0100 Subject: Build fix for configure -no-opengl Change-Id: I21f111a04d9e2ce367d7677dbb48abbd591a4e71 Reviewed-by: Shawn Rutledge Reviewed-by: Joni Poikelin Reviewed-by: Lars Knoll --- src/quick/items/qquickshadereffect.cpp | 2 ++ src/quick/items/qquickshadereffect_p.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp index 436d7b33ce..d317c1d19b 100644 --- a/src/quick/items/qquickshadereffect.cpp +++ b/src/quick/items/qquickshadereffect.cpp @@ -873,9 +873,11 @@ void QQuickShaderEffectPrivate::updatePolish() q->m_impl->maybeUpdateShaders(); } +#if QT_CONFIG(opengl) bool QQuickShaderEffect::isOpenGLShaderEffect() const { return m_glImpl != Q_NULLPTR; } +#endif QT_END_NAMESPACE diff --git a/src/quick/items/qquickshadereffect_p.h b/src/quick/items/qquickshadereffect_p.h index d269dc5e50..30bd018098 100644 --- a/src/quick/items/qquickshadereffect_p.h +++ b/src/quick/items/qquickshadereffect_p.h @@ -117,7 +117,9 @@ public: bool isComponentComplete() const; QString parseLog(); +#if QT_CONFIG(opengl) bool isOpenGLShaderEffect() const; +#endif Q_SIGNALS: void fragmentShaderChanged(); -- cgit v1.2.3 From 8f5366aed675ce7928448be2f6d739d0548b350e Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Mon, 13 Mar 2017 12:33:49 +0100 Subject: Build for for -no-feature-quick-sprite Change-Id: Iaf26d9cec7f9fa7a5d6d24c729b2dc92737cca1f Reviewed-by: Andy Nichols --- src/plugins/scenegraph/openvg/openvg.pro | 7 +++++-- src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp | 5 ++++- src/plugins/scenegraph/openvg/qsgopenvgcontext_p.h | 2 ++ src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.cpp | 4 ++++ src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.h | 2 ++ src/plugins/scenegraph/openvg/qsgopenvgspritenode.h | 2 ++ 6 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/plugins/scenegraph/openvg/openvg.pro b/src/plugins/scenegraph/openvg/openvg.pro index 6d5b190b37..43c2636343 100644 --- a/src/plugins/scenegraph/openvg/openvg.pro +++ b/src/plugins/scenegraph/openvg/openvg.pro @@ -31,7 +31,6 @@ HEADERS += \ qsgopenvghelpers.h \ qsgopenvgfontglyphcache.h \ qsgopenvgpainternode.h \ - qsgopenvgspritenode.h \ qsgopenvgrenderable.h \ qopenvgoffscreensurface.h @@ -52,6 +51,10 @@ SOURCES += \ qsgopenvghelpers.cpp \ qsgopenvgfontglyphcache.cpp \ qsgopenvgpainternode.cpp \ - qsgopenvgspritenode.cpp \ qsgopenvgrenderable.cpp \ qopenvgoffscreensurface.cpp + +qtConfig(quick-sprite) { + HEADERS += qsgopenvgspritenode.h + SOURCES += qsgopenvgspritenode.cpp +} diff --git a/src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp b/src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp index 41fce7c7fc..76ebb7c4ee 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp +++ b/src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp @@ -45,7 +45,9 @@ #include "qsgopenvgglyphnode_p.h" #include "qsgopenvgfontglyphcache.h" #include "qsgopenvgpainternode.h" +#if QT_CONFIG(quick_sprite) #include "qsgopenvgspritenode.h" +#endif #include "qopenvgcontext_p.h" @@ -171,11 +173,12 @@ int QSGOpenVGRenderContext::maxTextureSize() const return qMin(width, height); } - +#if QT_CONFIG(quick_sprite) QSGSpriteNode *QSGOpenVGContext::createSpriteNode() { return new QSGOpenVGSpriteNode(); } +#endif QSGRendererInterface *QSGOpenVGContext::rendererInterface(QSGRenderContext *renderContext) { diff --git a/src/plugins/scenegraph/openvg/qsgopenvgcontext_p.h b/src/plugins/scenegraph/openvg/qsgopenvgcontext_p.h index fa9939a253..31a1e8643f 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgcontext_p.h +++ b/src/plugins/scenegraph/openvg/qsgopenvgcontext_p.h @@ -95,7 +95,9 @@ public: QSurfaceFormat defaultSurfaceFormat() const override; QSGInternalRectangleNode *createInternalRectangleNode() override; QSGInternalImageNode *createInternalImageNode() override; +#if QT_CONFIG(quick_sprite) QSGSpriteNode *createSpriteNode() override; +#endif QSGRendererInterface *rendererInterface(QSGRenderContext *renderContext) override; }; diff --git a/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.cpp b/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.cpp index 8aa179f705..41606c653a 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.cpp +++ b/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.cpp @@ -43,7 +43,9 @@ #include "qsgopenvgpublicnodes.h" #include "qsgopenvgglyphnode_p.h" #include "qsgopenvgpainternode.h" +#if QT_CONFIG(quick_sprite) #include "qsgopenvgspritenode.h" +#endif #include "qsgopenvgrenderable.h" #include "qopenvgcontext_p.h" @@ -209,6 +211,7 @@ void QSGOpenVGNodeVisitor::endVisit(QSGRootNode *) { } +#if QT_CONFIG(quick_sprite) bool QSGOpenVGNodeVisitor::visit(QSGSpriteNode *node) { renderRenderableNode(static_cast(node)); @@ -218,6 +221,7 @@ bool QSGOpenVGNodeVisitor::visit(QSGSpriteNode *node) void QSGOpenVGNodeVisitor::endVisit(QSGSpriteNode *) { } +#endif bool QSGOpenVGNodeVisitor::visit(QSGRenderNode *) { diff --git a/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.h b/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.h index 4805d63024..c6461ca67d 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.h +++ b/src/plugins/scenegraph/openvg/qsgopenvgnodevisitor.h @@ -73,8 +73,10 @@ public: void endVisit(QSGGlyphNode *) override; bool visit(QSGRootNode *) override; void endVisit(QSGRootNode *) override; +#if QT_CONFIG(quick_sprite) bool visit(QSGSpriteNode *) override; void endVisit(QSGSpriteNode *) override; +#endif bool visit(QSGRenderNode *) override; void endVisit(QSGRenderNode *) override; diff --git a/src/plugins/scenegraph/openvg/qsgopenvgspritenode.h b/src/plugins/scenegraph/openvg/qsgopenvgspritenode.h index 3ade2ef8ad..d47b389a0b 100644 --- a/src/plugins/scenegraph/openvg/qsgopenvgspritenode.h +++ b/src/plugins/scenegraph/openvg/qsgopenvgspritenode.h @@ -43,6 +43,8 @@ #include #include "qsgopenvgrenderable.h" +QT_REQUIRE_CONFIG(quick_sprite); + QT_BEGIN_NAMESPACE class QSGOpenVGTexture; class QSGOpenVGSpriteNode : public QSGSpriteNode, public QSGOpenVGRenderable -- cgit v1.2.3 From 3cb86b26e532398d078f9dcb47c4910bb3c777f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Thu, 9 Mar 2017 14:50:58 +0200 Subject: Blacklist a qmltest::ListView test in macOS 10.12 Precise name of blacklisted test: qmltest::ListView::test_listInteractiveCurrentIndexEnforce() Task-number: QTBUG-58971 Change-Id: Iac01f0a5c31c91b08438fd6d7601bdb2ced41ac6 Reviewed-by: Liang Qi --- tests/auto/qmltest/BLACKLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qmltest/BLACKLIST b/tests/auto/qmltest/BLACKLIST index c38347b42a..d324e9da5d 100644 --- a/tests/auto/qmltest/BLACKLIST +++ b/tests/auto/qmltest/BLACKLIST @@ -9,3 +9,4 @@ linux linux [ListView::test_listInteractiveCurrentIndexEnforce] linux +macos-10.12 -- cgit v1.2.3 From d1c43e44572f5b554467e5f1c2db4914b549b569 Mon Sep 17 00:00:00 2001 From: Jesus Fernandez Date: Thu, 23 Mar 2017 16:15:46 +0100 Subject: Fix possible loss of data warning warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data Amends merge resolution of 24d0266ee45cf6a3c5b9142453966199702fbf90. Change-Id: I55eca8d853bb957e5b4ea792036aaa0b2f122b38 Reviewed-by: Friedemann Kleint Reviewed-by: Simon Hausmann --- src/qml/memory/qv4mm.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 180371c088..c025dd09a4 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -733,7 +733,7 @@ MemoryManager::MemoryManager(ExecutionEngine *engine) #ifdef MM_STATS static int allocationCount = 0; -static int lastAllocRequestedSlots = 0; +static size_t lastAllocRequestedSlots = 0; #endif Heap::Base *MemoryManager::allocString(std::size_t unmanagedSize) -- cgit v1.2.3 From c32468189941c61be6266da3913de5c1c469bd95 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 24 Mar 2017 13:11:35 +0100 Subject: Fix prototype property when set to non-objects Commit 180decaf11ea6fb1147825a78a95c455400f7c7e regressed ch15/15.3/15.3.5/S15.3.5.3_A2_T6 in the sense that when a non-object was set for the prototype property, the protoProperty() helper function would perform an unsafe cast to Object * and return a non-null pointer, which however instanceof() does not expect. Change-Id: I134fd41f6b2d3349ebe7d9e91c6b6e5788f599b6 Reviewed-by: Robin Burchell --- src/qml/jsruntime/qv4functionobject_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index 45d7485f1b..f4ac37219c 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -81,7 +81,7 @@ struct Q_QML_PRIVATE_EXPORT FunctionObject : Object { unsigned int varCount() { return function ? function->compiledFunction->nLocals : 0; } bool needsActivation() const { return function ? function->needsActivation() : false; } - const QV4::Object *protoProperty() const { return propertyData(Index_Prototype)->cast(); } + const QV4::Object *protoProperty() const { return propertyData(Index_Prototype)->as(); } Pointer scope; Function *function; -- cgit v1.2.3 From 8bed5de48c3ec24f9ad335e5398d92d0a60c448c Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 3 Feb 2017 10:28:28 +0100 Subject: Run ES5 tests on Linux/x86-64 This requires including the test suite as a submodule by default and bumping the module to a new sha1 that removes some particularly long paths. Also force the test suite to run under a US locale, as tests like ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A1_T11 cannot deal with locale dependent output for date formatting. The test harness now returns a non-zero exit code when a test fails. This is used by the QTestLib wrapper to determine success or failure. The tests with JIT are run, but the tests with the interpreter are omitted at the moment until the last failure is fixed. The tests add about 10-15 minutes extra time to the total time it takes to run tests on Linux in the CI. Change-Id: Id01fd3b41350f9c9a6ce9e43236f51f7f0fb71c8 Reviewed-by: Robin Burchell --- .gitmodules | 5 +- tests/auto/qml/ecmascripttests/TestExpectations | 31 ++ tests/auto/qml/ecmascripttests/ecmascripttests.pro | 20 + tests/auto/qml/ecmascripttests/test262 | 1 + tests/auto/qml/ecmascripttests/test262.py | 600 +++++++++++++++++++++ .../qml/ecmascripttests/tst_ecmascripttests.cpp | 77 +++ tests/auto/qml/qml.pro | 3 +- tests/auto/qml/qmlmin/tst_qmlmin.cpp | 1 + tests/manual/v4/TestExpectations | 31 -- tests/manual/v4/test262 | 1 - tests/manual/v4/test262.py | 595 -------------------- tests/manual/v4/tests.pro | 15 - 12 files changed, 734 insertions(+), 646 deletions(-) create mode 100644 tests/auto/qml/ecmascripttests/TestExpectations create mode 100644 tests/auto/qml/ecmascripttests/ecmascripttests.pro create mode 160000 tests/auto/qml/ecmascripttests/test262 create mode 100755 tests/auto/qml/ecmascripttests/test262.py create mode 100644 tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp delete mode 100644 tests/manual/v4/TestExpectations delete mode 160000 tests/manual/v4/test262 delete mode 100755 tests/manual/v4/test262.py delete mode 100644 tests/manual/v4/tests.pro diff --git a/.gitmodules b/.gitmodules index 881629497e..c9561f396d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,3 @@ -[submodule "tests/manual/v4/test262"] - path = tests/manual/v4/test262 +[submodule "tests/auto/qml/ecmascripttests/test262"] + path = tests/auto/qml/ecmascripttests/test262 url = ../qtdeclarative-testsuites.git - update = none diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations new file mode 100644 index 0000000000..49f107452a --- /dev/null +++ b/tests/auto/qml/ecmascripttests/TestExpectations @@ -0,0 +1,31 @@ +# wrong tests +# uses octal number +15.2.3.6-2-17-1 failing + +# these fail after the update to Unicode 6.3. +# the reason is that u+180e changed type from whitespace to control +S9.3.1_A2 +S9.3.1_A3_T1 +S9.3.1_A3_T2 +S15.1.2.2_A2_T10 +S15.1.2.3_A2_T10 +15.5.4.20-3-2 +15.5.4.20-3-3 +15.5.4.20-3-4 +15.5.4.20-3-5 +15.5.4.20-3-6 + +10.4.3-1-106 failing +11.2.3-3_3 failing +S13_A15_T4 failing +S15.4.4.3_A1_T1 failing +S15.4.4.3_A3_T1 failing +S15.5.4.11_A5_T1 failing +S15.2.4.4_A14 failing + +# Function declarations in conditionals. We allow them, because the real +# world requires them. +Sbp_12.5_A9_T3 failing +Sbp_12.6.1_A13_T3 failing +Sbp_12.6.2_A13_T3 failing +Sbp_12.6.4_A13_T3 failing diff --git a/tests/auto/qml/ecmascripttests/ecmascripttests.pro b/tests/auto/qml/ecmascripttests/ecmascripttests.pro new file mode 100644 index 0000000000..6d3ee12307 --- /dev/null +++ b/tests/auto/qml/ecmascripttests/ecmascripttests.pro @@ -0,0 +1,20 @@ +CONFIG += testcase +TARGET = tst_ecmascripttests +QT += testlib +macos:CONFIG -= app_bundle +SOURCES += tst_ecmascripttests.cpp +DEFINES += SRCDIR=\\\"$$PWD\\\" + +TESTSCRIPT=$$PWD/test262.py +isEmpty(V4CMD): V4CMD = qmljs + +checkjittarget.target = check-jit +checkjittarget.commands = python $$TESTSCRIPT --command=$$V4CMD --parallel --with-test-expectations --update-expectations +checkjittarget.depends = all +QMAKE_EXTRA_TARGETS += checkjittarget + +checkmothtarget.target = check-interpreter +checkmothtarget.commands = python $$TESTSCRIPT --command=\"$$V4CMD --interpret\" --parallel --with-test-expectations +checkmothtarget.depends = all +QMAKE_EXTRA_TARGETS += checkmothtarget + diff --git a/tests/auto/qml/ecmascripttests/test262 b/tests/auto/qml/ecmascripttests/test262 new file mode 160000 index 0000000000..d60c4ed97e --- /dev/null +++ b/tests/auto/qml/ecmascripttests/test262 @@ -0,0 +1 @@ +Subproject commit d60c4ed97e69639bc5bc1db43a98828debf80c8a diff --git a/tests/auto/qml/ecmascripttests/test262.py b/tests/auto/qml/ecmascripttests/test262.py new file mode 100755 index 0000000000..99f029cffd --- /dev/null +++ b/tests/auto/qml/ecmascripttests/test262.py @@ -0,0 +1,600 @@ +#!/usr/bin/env python +############################################################################# +## +## Copyright (C) 2015 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite module of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:BSD$ +## You may use this file under the terms of the BSD license as follows: +## +## "Redistribution and use in source and binary forms, with or without +## modification, are permitted provided that the following conditions are +## met: +## * Redistributions of source code must retain the above copyright +## notice, this list of conditions and the following disclaimer. +## * Redistributions in binary form must reproduce the above copyright +## notice, this list of conditions and the following disclaimer in +## the documentation and/or other materials provided with the +## distribution. +## * Neither the name of The Qt Company Ltd nor the names of its +## contributors may be used to endorse or promote products derived +## from this software without specific prior written permission. +## +## +## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Copyright 2009 the Sputnik authors. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +# This is derived from sputnik.py, the Sputnik console test runner, +# with elements from packager.py, which is separately +# copyrighted. TODO: Refactor so there is less duplication between +# test262.py and packager.py. + +import sys +from os import path +rootDir = path.dirname(path.realpath(__file__)) +sys.path.insert(0, path.abspath(rootDir + "/test262/tools/packaging")) + +import logging +import optparse +import os +import platform +import re +import subprocess +import tempfile +import time +import xml.dom.minidom +import datetime +import shutil +import json +import stat +import multiprocessing +import signal + + +from parseTestRecord import parseTestRecord, stripHeader + +from packagerConfig import * + +# ############# Helpers needed for parallel multi-process test execution ############ + +def runTest(case, args): + return case.Run(args) + +def runTestVarArgs(args): + return runTest(*args) + +def initWorkerProcess(): + signal.signal(signal.SIGINT, signal.SIG_IGN) + +# ############# + +class Test262Error(Exception): + def __init__(self, message): + self.message = message + +def ReportError(s): + raise Test262Error(s) + + +class TestExpectations: + def __init__(self, enabled): + self.testsToSkip = [] + self.failingTests = [] + f = open(rootDir + "/TestExpectations") + if not enabled: + return + for line in f.read().splitlines(): + line = line.strip() + if len(line) == 0 or line[0] == "#": + continue + record = line.split() + if len(record) == 1: + self.testsToSkip.append(record[0]) + else: + test = record[0] + expectation = record[1] + if expectation == "failing": + self.failingTests.append(test) + f.close() + + def update(self, progress): + unexpectedPasses = [c.case.name[-1] for c in progress.failed_tests if c.case.IsNegative()] + + # If a test fails that we expected to fail, then it actually passed unexpectedly. + failures = [c.case.name[-1] for c in progress.failed_tests if not c.case.IsNegative()] + for failure in failures: + if failure in self.failingTests: + unexpectedPasses.append(failure) + + f = open(rootDir + "/TestExpectations") + lines = f.read().splitlines() + oldLen = len(lines) + for result in unexpectedPasses: + expectationLine = result + " failing" + try: + lines.remove(expectationLine) + except ValueError: + pass + + f.close() + if len(lines) != oldLen: + f = open(rootDir + "/TestExpectations", "w") + f.write("\n".join(lines)) + f.close() + print "Changes to TestExpectations written!" + + +if not os.path.exists(EXCLUDED_FILENAME): + print "Cannot generate (JSON) test262 tests without a file," + \ + " %s, showing which tests have been disabled!" % EXCLUDED_FILENAME + sys.exit(1) +EXCLUDE_LIST = xml.dom.minidom.parse(EXCLUDED_FILENAME) +EXCLUDE_LIST = EXCLUDE_LIST.getElementsByTagName("test") +EXCLUDE_LIST = [x.getAttribute("id") for x in EXCLUDE_LIST] + + +def BuildOptions(): + result = optparse.OptionParser() + result.add_option("--command", default="qmljs", help="The command-line to run") + result.add_option("--tests", default=path.abspath(rootDir + '/test262'), + help="Path to the tests") + result.add_option("--cat", default=False, action="store_true", + help="Print packaged test code that would be run") + result.add_option("--summary", default=True, action="store_true", + help="Print summary after running tests") + result.add_option("--full-summary", default=False, action="store_true", + help="Print summary and test output after running tests") + result.add_option("--strict_only", default=False, action="store_true", + help="Test only strict mode") + result.add_option("--non_strict_only", default=False, action="store_true", + help="Test only non-strict mode") + result.add_option("--parallel", default=False, action="store_true", + help="Run tests in parallel") + result.add_option("--with-test-expectations", default=False, action="store_true", + help="Parse TestExpectations to deal with tests known to fail") + result.add_option("--update-expectations", default=False, action="store_true", + help="Update test expectations fail when a test passes that was expected to fail") + # TODO: Once enough tests are made strict compat, change the default + # to "both" + result.add_option("--unmarked_default", default="non_strict", + help="default mode for tests of unspecified strictness") + return result + + +def ValidateOptions(options): + if not options.command: + ReportError("A --command must be specified.") + if not path.exists(options.tests): + ReportError("Couldn't find test path '%s'" % options.tests) + + +placeHolderPattern = re.compile(r"\{\{(\w+)\}\}") + + +def IsWindows(): + p = platform.system() + return (p == 'Windows') or (p == 'Microsoft') + + +class TempFile(object): + + def __init__(self, suffix="", prefix="tmp", text=False): + self.suffix = suffix + self.prefix = prefix + self.text = text + self.fd = None + self.name = None + self.is_closed = False + self.Open() + + def Open(self): + (self.fd, self.name) = tempfile.mkstemp( + suffix = self.suffix, + prefix = self.prefix, + text = self.text) + + def Write(self, str): + os.write(self.fd, str) + + def Read(self): + f = file(self.name) + result = f.read() + f.close() + return result + + def Close(self): + if not self.is_closed: + self.is_closed = True + os.close(self.fd) + + def Dispose(self): + try: + self.Close() + os.unlink(self.name) + except OSError, e: + logging.error("Error disposing temp file: %s", str(e)) + + +class TestResult(object): + + def __init__(self, exit_code, stdout, stderr, case): + self.exit_code = exit_code + self.stdout = stdout + self.stderr = stderr + self.case = case + + def ReportOutcome(self, long_format): + name = self.case.GetName() + mode = self.case.GetMode() + if self.HasUnexpectedOutcome(): + if self.case.IsNegative(): + print "=== %s was expected to fail in %s, but didn't ===" % (name, mode) + else: + if long_format: + print "=== %s failed in %s ===" % (name, mode) + else: + print "%s in %s: " % (name, mode) + out = self.stdout.strip() + if len(out) > 0: + print "--- output ---" + print out + err = self.stderr.strip() + if len(err) > 0: + print "--- errors ---" + print err + if long_format: + print "===" + elif self.case.IsNegative(): + print "%s failed in %s as expected" % (name, mode) + else: + print "%s passed in %s" % (name, mode) + + def HasFailed(self): + return self.exit_code != 0 + + def HasUnexpectedOutcome(self): + if self.case.IsNegative(): + return not self.HasFailed() + else: + return self.HasFailed() + + +class TestCase(object): + + def __init__(self, suite, name, full_path, strict_mode): + self.suite = suite + self.name = name + self.full_path = full_path + self.strict_mode = strict_mode + f = open(self.full_path) + self.contents = f.read() + f.close() + testRecord = parseTestRecord(self.contents, name) + self.test = testRecord["test"] + del testRecord["test"] + del testRecord["header"] + del testRecord["commentary"] + self.testRecord = testRecord; + + + def GetName(self): + return path.join(*self.name) + + def GetMode(self): + if self.strict_mode: + return "strict mode" + else: + return "non-strict mode" + + def GetPath(self): + return self.name + + def NegateResult(self): + if self.IsNegative(): + del self.testRecord['negative'] + else: + self.testRecord['negative'] = "Some failure"; + + def IsNegative(self): + return 'negative' in self.testRecord + + def IsOnlyStrict(self): + return 'onlyStrict' in self.testRecord + + def IsNoStrict(self): + return 'noStrict' in self.testRecord + + def GetSource(self): + # "var testDescrip = " + str(self.testRecord) + ';\n\n' + \ + source = self.suite.GetInclude("cth.js") + \ + self.suite.GetInclude("sta.js") + \ + self.suite.GetInclude("ed.js") + \ + self.suite.GetInclude("testBuiltInObject.js") + \ + self.suite.GetInclude("testIntl.js") + \ + self.test + '\n' + + if self.strict_mode: + source = '"use strict";\nvar strict_mode = true;\n' + source + else: + source = "var strict_mode = false; \n" + source + return source + + def InstantiateTemplate(self, template, params): + def GetParameter(match): + key = match.group(1) + return params.get(key, match.group(0)) + return placeHolderPattern.sub(GetParameter, template) + + def Execute(self, command): + if IsWindows(): + args = '%s' % command + else: + args = command.split(" ") + stdout = TempFile(prefix="test262-out-") + stderr = TempFile(prefix="test262-err-") + try: + logging.info("exec: %s", str(args)) + process = subprocess.Popen( + args, + shell = IsWindows(), + stdout = stdout.fd, + stderr = stderr.fd + ) + code = process.wait() + out = stdout.Read() + err = stderr.Read() + finally: + stdout.Dispose() + stderr.Dispose() + return (code, out, err) + + def RunTestIn(self, command_template, tmp): + tmp.Write(self.GetSource()) + tmp.Close() + command = self.InstantiateTemplate(command_template, { + 'path': tmp.name + }) + (code, out, err) = self.Execute(command) + return TestResult(code, out, err, self) + + def Run(self, command_template): + tmp = TempFile(suffix=".js", prefix="test262-", text=True) + try: + result = self.RunTestIn(command_template, tmp) + finally: + tmp.Dispose() + return result + + def Print(self): + print self.GetSource() + + +class ProgressIndicator(object): + + def __init__(self, count): + self.count = count + self.succeeded = 0 + self.failed = 0 + self.failed_tests = [] + + def HasRun(self, result): + result.ReportOutcome(True) + if result.HasUnexpectedOutcome(): + self.failed += 1 + self.failed_tests.append(result) + else: + self.succeeded += 1 + + +def MakePlural(n): + if (n == 1): + return (n, "") + else: + return (n, "s") + + +class TestSuite(object): + + def __init__(self, root, strict_only, non_strict_only, unmarked_default, load_expectations): + # TODO: derive from packagerConfig.py + self.test_root = path.join(root, 'test', 'suite') + self.lib_root = path.join(root, 'test', 'harness') + self.strict_only = strict_only + self.non_strict_only = non_strict_only + self.unmarked_default = unmarked_default + self.include_cache = { } + self.expectations = TestExpectations(load_expectations) + + def Validate(self): + if not path.exists(self.test_root): + ReportError("No test repository found") + if not path.exists(self.lib_root): + ReportError("No test library found") + + def IsHidden(self, path): + return path.startswith('.') or path == 'CVS' + + def IsTestCase(self, path): + return path.endswith('.js') + + def ShouldRun(self, rel_path, tests): + if len(tests) == 0: + return True + for test in tests: + if test in rel_path: + return True + return False + + def GetInclude(self, name): + if not name in self.include_cache: + static = path.join(self.lib_root, name) + if path.exists(static): + f = open(static) + contents = stripHeader(f.read()) + contents = re.sub(r'\r\n', '\n', contents) + self.include_cache[name] = contents + "\n" + f.close() + else: + ReportError("Can't find: " + static) + return self.include_cache[name] + + def EnumerateTests(self, tests): + logging.info("Listing tests in %s", self.test_root) + cases = [] + for root, dirs, files in os.walk(self.test_root): + for f in [x for x in dirs if self.IsHidden(x)]: + dirs.remove(f) + dirs.sort() + for f in sorted(files): + if self.IsTestCase(f): + full_path = path.join(root, f) + if full_path.startswith(self.test_root): + rel_path = full_path[len(self.test_root)+1:] + else: + logging.warning("Unexpected path %s", full_path) + rel_path = full_path + if self.ShouldRun(rel_path, tests) and not rel_path.startswith("intl402" + os.sep): + basename = path.basename(full_path)[:-3] + name = rel_path.split(path.sep)[:-1] + [basename] + if EXCLUDE_LIST.count(basename) >= 1 or self.expectations.testsToSkip.count(basename) >= 1: + print 'Excluded: ' + basename + else: + if not self.non_strict_only: + strict_case = TestCase(self, name, full_path, True) + if self.expectations.failingTests.count(basename) >= 1: + strict_case.NegateResult() + if not strict_case.IsNoStrict(): + if strict_case.IsOnlyStrict() or \ + self.unmarked_default in ['both', 'strict']: + cases.append(strict_case) + if not self.strict_only: + non_strict_case = TestCase(self, name, full_path, False) + if self.expectations.failingTests.count(basename) >= 1: + non_strict_case.NegateResult() + if not non_strict_case.IsOnlyStrict(): + if non_strict_case.IsNoStrict() or \ + self.unmarked_default in ['both', 'non_strict']: + cases.append(non_strict_case) + logging.info("Done listing tests") + return cases + + def PrintSummary(self, progress): + print + print "=== Summary ===" + count = progress.count + succeeded = progress.succeeded + failed = progress.failed + print " - Ran %i test%s" % MakePlural(count) + if progress.failed == 0: + print " - All tests succeeded" + else: + percent = ((100.0 * succeeded) / count,) + print " - Passed %i test%s (%.1f%%)" % (MakePlural(succeeded) + percent) + percent = ((100.0 * failed) / count,) + print " - Failed %i test%s (%.1f%%)" % (MakePlural(failed) + percent) + positive = [c for c in progress.failed_tests if not c.case.IsNegative()] + negative = [c for c in progress.failed_tests if c.case.IsNegative()] + if len(positive) > 0: + print + print "Failed tests" + for result in positive: + print " %s in %s" % (result.case.GetName(), result.case.GetMode()) + if len(negative) > 0: + print + print "Expected to fail but passed ---" + for result in negative: + print " %s in %s" % (result.case.GetName(), result.case.GetMode()) + + def PrintFailureOutput(self, progress): + for result in progress.failed_tests: + print + result.ReportOutcome(False) + + def Run(self, command_template, tests, print_summary, full_summary, parallel, update_expectations): + if not "{{path}}" in command_template: + command_template += " {{path}}" + cases = self.EnumerateTests(tests) + if len(cases) == 0: + ReportError("No tests to run") + progress = ProgressIndicator(len(cases)) + + if parallel: + pool = multiprocessing.Pool(processes=multiprocessing.cpu_count(), initializer=initWorkerProcess) + results = pool.imap_unordered(func=runTestVarArgs, iterable=[(case, command_template) for case in cases], chunksize=multiprocessing.cpu_count() * 8) + for result in results: + progress.HasRun(result) + else: + for case in cases: + result = case.Run(command_template) + progress.HasRun(result) + if print_summary: + self.PrintSummary(progress) + if full_summary: + self.PrintFailureOutput(progress) + else: + print + print "Use --full-summary to see output from failed tests" + print + if update_expectations: + self.expectations.update(progress) + return progress.failed == 0 + + def Print(self, tests): + cases = self.EnumerateTests(tests) + if len(cases) > 0: + cases[0].Print() + + +def Main(): + # Some date tests rely on being run in pacific time. + # Uncomment the next line for more logging info. + #logging.basicConfig(level=logging.DEBUG) + os.environ["TZ"] = "PST8PDT" + os.environ["LANG"] = "en_US.UTF-8" + parser = BuildOptions() + (options, args) = parser.parse_args() + ValidateOptions(options) + test_suite = TestSuite(options.tests, + options.strict_only, + options.non_strict_only, + options.unmarked_default, + options.with_test_expectations) + test_suite.Validate() + if options.cat: + test_suite.Print(args) + return 0 + else: + if test_suite.Run(options.command, args, + options.summary or options.full_summary, + options.full_summary, + options.parallel, + options.update_expectations): + return 0 + else: + return 1 + + +if __name__ == '__main__': + try: + sys.exit(Main()) + except Test262Error, e: + print "Error: %s" % e.message + sys.exit(1) diff --git a/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp b/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp new file mode 100644 index 0000000000..2ce0cfe210 --- /dev/null +++ b/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include +#include +#include + +class tst_EcmaScriptTests : public QObject +{ + Q_OBJECT +private slots: + void runTests_data(); + void runTests(); +}; + +void tst_EcmaScriptTests::runTests_data() +{ + QTest::addColumn("qmljsParameter"); + + QTest::newRow("jit") << QStringLiteral("--jit"); + // Not passing yet: QTest::newRow("interpreter") << QStringLiteral("--interpret"); +} + +void tst_EcmaScriptTests::runTests() +{ +#if defined(Q_OS_LINUX) && defined(Q_PROCESSOR_X86_64) + QFETCH(QString, qmljsParameter); + + QProcess process; + process.setProcessChannelMode(QProcess::ForwardedChannels); + process.setWorkingDirectory(QLatin1String(SRCDIR)); + process.setProgram("python"); + process.setArguments(QStringList() << "test262.py" << "--command=" + QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmljs " + qmljsParameter << "--parallel" << "--with-test-expectations"); + + qDebug() << "Going to run" << process.program() << process.arguments() << "in" << process.workingDirectory(); + + process.start(); + QVERIFY(process.waitForStarted()); + const int timeoutInMSecs = 20 * 60 * 1000; + QVERIFY2(process.waitForFinished(timeoutInMSecs), "Tests did not terminate in time -- see output above for details"); + QVERIFY2(process.exitStatus() == QProcess::NormalExit, "Running the test harness failed -- see output above for details"); + QVERIFY2(process.exitCode() == 0, "Tests failed -- see output above for details"); +#else + QSKIP("Currently the ecmascript tests are only run on Linux/x86-64"); +#endif +} + +QTEST_MAIN(tst_EcmaScriptTests) + +#include "tst_ecmascripttests.moc" + diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index b347b603bb..a9b18e9f32 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -62,7 +62,8 @@ PRIVATETESTS += \ qqmlimport \ qqmlobjectmodel \ qmldiskcache \ - qv4mm + qv4mm \ + ecmascripttests qtHaveModule(widgets) { PUBLICTESTS += \ diff --git a/tests/auto/qml/qmlmin/tst_qmlmin.cpp b/tests/auto/qml/qmlmin/tst_qmlmin.cpp index 90868d2ead..171c2bda8a 100644 --- a/tests/auto/qml/qmlmin/tst_qmlmin.cpp +++ b/tests/auto/qml/qmlmin/tst_qmlmin.cpp @@ -84,6 +84,7 @@ void tst_qmlmin::initTestCase() excludedDirs << "doc/src/snippets/qtquick1/qtbinding"; excludedDirs << "doc/src/snippets/qtquick1/imports"; excludedDirs << "tests/manual/v4"; + excludedDirs << "tests/auto/qml/ecmascripttests"; excludedDirs << "tests/auto/qml/qmllint"; // Add invalid files (i.e. files with syntax errors) diff --git a/tests/manual/v4/TestExpectations b/tests/manual/v4/TestExpectations deleted file mode 100644 index 49f107452a..0000000000 --- a/tests/manual/v4/TestExpectations +++ /dev/null @@ -1,31 +0,0 @@ -# wrong tests -# uses octal number -15.2.3.6-2-17-1 failing - -# these fail after the update to Unicode 6.3. -# the reason is that u+180e changed type from whitespace to control -S9.3.1_A2 -S9.3.1_A3_T1 -S9.3.1_A3_T2 -S15.1.2.2_A2_T10 -S15.1.2.3_A2_T10 -15.5.4.20-3-2 -15.5.4.20-3-3 -15.5.4.20-3-4 -15.5.4.20-3-5 -15.5.4.20-3-6 - -10.4.3-1-106 failing -11.2.3-3_3 failing -S13_A15_T4 failing -S15.4.4.3_A1_T1 failing -S15.4.4.3_A3_T1 failing -S15.5.4.11_A5_T1 failing -S15.2.4.4_A14 failing - -# Function declarations in conditionals. We allow them, because the real -# world requires them. -Sbp_12.5_A9_T3 failing -Sbp_12.6.1_A13_T3 failing -Sbp_12.6.2_A13_T3 failing -Sbp_12.6.4_A13_T3 failing diff --git a/tests/manual/v4/test262 b/tests/manual/v4/test262 deleted file mode 160000 index 9741ac4655..0000000000 --- a/tests/manual/v4/test262 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9741ac4655808ac46c127e3d1d8ba3d27ada618e diff --git a/tests/manual/v4/test262.py b/tests/manual/v4/test262.py deleted file mode 100755 index 3b5bfa119a..0000000000 --- a/tests/manual/v4/test262.py +++ /dev/null @@ -1,595 +0,0 @@ -#!/usr/bin/env python -############################################################################# -## -## Copyright (C) 2015 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the test suite module of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:BSD$ -## You may use this file under the terms of the BSD license as follows: -## -## "Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are -## met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in -## the documentation and/or other materials provided with the -## distribution. -## * Neither the name of The Qt Company Ltd nor the names of its -## contributors may be used to endorse or promote products derived -## from this software without specific prior written permission. -## -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -## -## $QT_END_LICENSE$ -## -############################################################################# - -# Copyright 2009 the Sputnik authors. All rights reserved. -# This code is governed by the BSD license found in the LICENSE file. - -# This is derived from sputnik.py, the Sputnik console test runner, -# with elements from packager.py, which is separately -# copyrighted. TODO: Refactor so there is less duplication between -# test262.py and packager.py. - -import sys -from os import path -rootDir = path.dirname(path.realpath(__file__)) -sys.path.insert(0, path.abspath(rootDir + "/test262/tools/packaging")) - -import logging -import optparse -import os -import platform -import re -import subprocess -import tempfile -import time -import xml.dom.minidom -import datetime -import shutil -import json -import stat -import multiprocessing -import signal - - -from parseTestRecord import parseTestRecord, stripHeader - -from packagerConfig import * - -# ############# Helpers needed for parallel multi-process test execution ############ - -def runTest(case, args): - return case.Run(args) - -def runTestVarArgs(args): - return runTest(*args) - -def initWorkerProcess(): - signal.signal(signal.SIGINT, signal.SIG_IGN) - -# ############# - -class Test262Error(Exception): - def __init__(self, message): - self.message = message - -def ReportError(s): - raise Test262Error(s) - - -class TestExpectations: - def __init__(self, enabled): - self.testsToSkip = [] - self.failingTests = [] - f = open(rootDir + "/TestExpectations") - if not enabled: - return - for line in f.read().splitlines(): - line = line.strip() - if len(line) == 0 or line[0] == "#": - continue - record = line.split() - if len(record) == 1: - self.testsToSkip.append(record[0]) - else: - test = record[0] - expectation = record[1] - if expectation == "failing": - self.failingTests.append(test) - f.close() - - def update(self, progress): - unexpectedPasses = [c.case.name[-1] for c in progress.failed_tests if c.case.IsNegative()] - - # If a test fails that we expected to fail, then it actually passed unexpectedly. - failures = [c.case.name[-1] for c in progress.failed_tests if not c.case.IsNegative()] - for failure in failures: - if failure in self.failingTests: - unexpectedPasses.append(failure) - - f = open(rootDir + "/TestExpectations") - lines = f.read().splitlines() - oldLen = len(lines) - for result in unexpectedPasses: - expectationLine = result + " failing" - try: - lines.remove(expectationLine) - except ValueError: - pass - - f.close() - if len(lines) != oldLen: - f = open(rootDir + "/TestExpectations", "w") - f.write("\n".join(lines)) - f.close() - print "Changes to TestExpectations written!" - - -if not os.path.exists(EXCLUDED_FILENAME): - print "Cannot generate (JSON) test262 tests without a file," + \ - " %s, showing which tests have been disabled!" % EXCLUDED_FILENAME - sys.exit(1) -EXCLUDE_LIST = xml.dom.minidom.parse(EXCLUDED_FILENAME) -EXCLUDE_LIST = EXCLUDE_LIST.getElementsByTagName("test") -EXCLUDE_LIST = [x.getAttribute("id") for x in EXCLUDE_LIST] - - -def BuildOptions(): - result = optparse.OptionParser() - result.add_option("--command", default="qmljs", help="The command-line to run") - result.add_option("--tests", default=path.abspath(rootDir + '/test262'), - help="Path to the tests") - result.add_option("--cat", default=False, action="store_true", - help="Print packaged test code that would be run") - result.add_option("--summary", default=True, action="store_true", - help="Print summary after running tests") - result.add_option("--full-summary", default=False, action="store_true", - help="Print summary and test output after running tests") - result.add_option("--strict_only", default=False, action="store_true", - help="Test only strict mode") - result.add_option("--non_strict_only", default=False, action="store_true", - help="Test only non-strict mode") - result.add_option("--parallel", default=False, action="store_true", - help="Run tests in parallel") - result.add_option("--with-test-expectations", default=False, action="store_true", - help="Parse TestExpectations to deal with tests known to fail") - result.add_option("--update-expectations", default=False, action="store_true", - help="Update test expectations fail when a test passes that was expected to fail") - # TODO: Once enough tests are made strict compat, change the default - # to "both" - result.add_option("--unmarked_default", default="non_strict", - help="default mode for tests of unspecified strictness") - return result - - -def ValidateOptions(options): - if not options.command: - ReportError("A --command must be specified.") - if not path.exists(options.tests): - ReportError("Couldn't find test path '%s'" % options.tests) - - -placeHolderPattern = re.compile(r"\{\{(\w+)\}\}") - - -def IsWindows(): - p = platform.system() - return (p == 'Windows') or (p == 'Microsoft') - - -class TempFile(object): - - def __init__(self, suffix="", prefix="tmp", text=False): - self.suffix = suffix - self.prefix = prefix - self.text = text - self.fd = None - self.name = None - self.is_closed = False - self.Open() - - def Open(self): - (self.fd, self.name) = tempfile.mkstemp( - suffix = self.suffix, - prefix = self.prefix, - text = self.text) - - def Write(self, str): - os.write(self.fd, str) - - def Read(self): - f = file(self.name) - result = f.read() - f.close() - return result - - def Close(self): - if not self.is_closed: - self.is_closed = True - os.close(self.fd) - - def Dispose(self): - try: - self.Close() - os.unlink(self.name) - except OSError, e: - logging.error("Error disposing temp file: %s", str(e)) - - -class TestResult(object): - - def __init__(self, exit_code, stdout, stderr, case): - self.exit_code = exit_code - self.stdout = stdout - self.stderr = stderr - self.case = case - - def ReportOutcome(self, long_format): - name = self.case.GetName() - mode = self.case.GetMode() - if self.HasUnexpectedOutcome(): - if self.case.IsNegative(): - print "=== %s was expected to fail in %s, but didn't ===" % (name, mode) - else: - if long_format: - print "=== %s failed in %s ===" % (name, mode) - else: - print "%s in %s: " % (name, mode) - out = self.stdout.strip() - if len(out) > 0: - print "--- output ---" - print out - err = self.stderr.strip() - if len(err) > 0: - print "--- errors ---" - print err - if long_format: - print "===" - elif self.case.IsNegative(): - print "%s failed in %s as expected" % (name, mode) - else: - print "%s passed in %s" % (name, mode) - - def HasFailed(self): - return self.exit_code != 0 - - def HasUnexpectedOutcome(self): - if self.case.IsNegative(): - return not self.HasFailed() - else: - return self.HasFailed() - - -class TestCase(object): - - def __init__(self, suite, name, full_path, strict_mode): - self.suite = suite - self.name = name - self.full_path = full_path - self.strict_mode = strict_mode - f = open(self.full_path) - self.contents = f.read() - f.close() - testRecord = parseTestRecord(self.contents, name) - self.test = testRecord["test"] - del testRecord["test"] - del testRecord["header"] - del testRecord["commentary"] - self.testRecord = testRecord; - - - def GetName(self): - return path.join(*self.name) - - def GetMode(self): - if self.strict_mode: - return "strict mode" - else: - return "non-strict mode" - - def GetPath(self): - return self.name - - def NegateResult(self): - if self.IsNegative(): - del self.testRecord['negative'] - else: - self.testRecord['negative'] = "Some failure"; - - def IsNegative(self): - return 'negative' in self.testRecord - - def IsOnlyStrict(self): - return 'onlyStrict' in self.testRecord - - def IsNoStrict(self): - return 'noStrict' in self.testRecord - - def GetSource(self): - # "var testDescrip = " + str(self.testRecord) + ';\n\n' + \ - source = self.suite.GetInclude("cth.js") + \ - self.suite.GetInclude("sta.js") + \ - self.suite.GetInclude("ed.js") + \ - self.suite.GetInclude("testBuiltInObject.js") + \ - self.suite.GetInclude("testIntl.js") + \ - self.test + '\n' - - if self.strict_mode: - source = '"use strict";\nvar strict_mode = true;\n' + source - else: - source = "var strict_mode = false; \n" + source - return source - - def InstantiateTemplate(self, template, params): - def GetParameter(match): - key = match.group(1) - return params.get(key, match.group(0)) - return placeHolderPattern.sub(GetParameter, template) - - def Execute(self, command): - if IsWindows(): - args = '%s' % command - else: - args = command.split(" ") - stdout = TempFile(prefix="test262-out-") - stderr = TempFile(prefix="test262-err-") - try: - logging.info("exec: %s", str(args)) - process = subprocess.Popen( - args, - shell = IsWindows(), - stdout = stdout.fd, - stderr = stderr.fd - ) - code = process.wait() - out = stdout.Read() - err = stderr.Read() - finally: - stdout.Dispose() - stderr.Dispose() - return (code, out, err) - - def RunTestIn(self, command_template, tmp): - tmp.Write(self.GetSource()) - tmp.Close() - command = self.InstantiateTemplate(command_template, { - 'path': tmp.name - }) - (code, out, err) = self.Execute(command) - return TestResult(code, out, err, self) - - def Run(self, command_template): - tmp = TempFile(suffix=".js", prefix="test262-", text=True) - try: - result = self.RunTestIn(command_template, tmp) - finally: - tmp.Dispose() - return result - - def Print(self): - print self.GetSource() - - -class ProgressIndicator(object): - - def __init__(self, count): - self.count = count - self.succeeded = 0 - self.failed = 0 - self.failed_tests = [] - - def HasRun(self, result): - result.ReportOutcome(True) - if result.HasUnexpectedOutcome(): - self.failed += 1 - self.failed_tests.append(result) - else: - self.succeeded += 1 - - -def MakePlural(n): - if (n == 1): - return (n, "") - else: - return (n, "s") - - -class TestSuite(object): - - def __init__(self, root, strict_only, non_strict_only, unmarked_default, load_expectations): - # TODO: derive from packagerConfig.py - self.test_root = path.join(root, 'test', 'suite') - self.lib_root = path.join(root, 'test', 'harness') - self.strict_only = strict_only - self.non_strict_only = non_strict_only - self.unmarked_default = unmarked_default - self.include_cache = { } - self.expectations = TestExpectations(load_expectations) - - def Validate(self): - if not path.exists(self.test_root): - ReportError("No test repository found") - if not path.exists(self.lib_root): - ReportError("No test library found") - - def IsHidden(self, path): - return path.startswith('.') or path == 'CVS' - - def IsTestCase(self, path): - return path.endswith('.js') - - def ShouldRun(self, rel_path, tests): - if len(tests) == 0: - return True - for test in tests: - if test in rel_path: - return True - return False - - def GetInclude(self, name): - if not name in self.include_cache: - static = path.join(self.lib_root, name) - if path.exists(static): - f = open(static) - contents = stripHeader(f.read()) - contents = re.sub(r'\r\n', '\n', contents) - self.include_cache[name] = contents + "\n" - f.close() - else: - ReportError("Can't find: " + static) - return self.include_cache[name] - - def EnumerateTests(self, tests): - logging.info("Listing tests in %s", self.test_root) - cases = [] - for root, dirs, files in os.walk(self.test_root): - for f in [x for x in dirs if self.IsHidden(x)]: - dirs.remove(f) - dirs.sort() - for f in sorted(files): - if self.IsTestCase(f): - full_path = path.join(root, f) - if full_path.startswith(self.test_root): - rel_path = full_path[len(self.test_root)+1:] - else: - logging.warning("Unexpected path %s", full_path) - rel_path = full_path - if self.ShouldRun(rel_path, tests) and not rel_path.startswith("intl402" + os.sep): - basename = path.basename(full_path)[:-3] - name = rel_path.split(path.sep)[:-1] + [basename] - if EXCLUDE_LIST.count(basename) >= 1 or self.expectations.testsToSkip.count(basename) >= 1: - print 'Excluded: ' + basename - else: - if not self.non_strict_only: - strict_case = TestCase(self, name, full_path, True) - if self.expectations.failingTests.count(basename) >= 1: - strict_case.NegateResult() - if not strict_case.IsNoStrict(): - if strict_case.IsOnlyStrict() or \ - self.unmarked_default in ['both', 'strict']: - cases.append(strict_case) - if not self.strict_only: - non_strict_case = TestCase(self, name, full_path, False) - if self.expectations.failingTests.count(basename) >= 1: - non_strict_case.NegateResult() - if not non_strict_case.IsOnlyStrict(): - if non_strict_case.IsNoStrict() or \ - self.unmarked_default in ['both', 'non_strict']: - cases.append(non_strict_case) - logging.info("Done listing tests") - return cases - - def PrintSummary(self, progress): - print - print "=== Summary ===" - count = progress.count - succeeded = progress.succeeded - failed = progress.failed - print " - Ran %i test%s" % MakePlural(count) - if progress.failed == 0: - print " - All tests succeeded" - else: - percent = ((100.0 * succeeded) / count,) - print " - Passed %i test%s (%.1f%%)" % (MakePlural(succeeded) + percent) - percent = ((100.0 * failed) / count,) - print " - Failed %i test%s (%.1f%%)" % (MakePlural(failed) + percent) - positive = [c for c in progress.failed_tests if not c.case.IsNegative()] - negative = [c for c in progress.failed_tests if c.case.IsNegative()] - if len(positive) > 0: - print - print "Failed tests" - for result in positive: - print " %s in %s" % (result.case.GetName(), result.case.GetMode()) - if len(negative) > 0: - print - print "Expected to fail but passed ---" - for result in negative: - print " %s in %s" % (result.case.GetName(), result.case.GetMode()) - - def PrintFailureOutput(self, progress): - for result in progress.failed_tests: - print - result.ReportOutcome(False) - - def Run(self, command_template, tests, print_summary, full_summary, parallel, update_expectations): - if not "{{path}}" in command_template: - command_template += " {{path}}" - cases = self.EnumerateTests(tests) - if len(cases) == 0: - ReportError("No tests to run") - progress = ProgressIndicator(len(cases)) - - if parallel: - pool = multiprocessing.Pool(processes=multiprocessing.cpu_count(), initializer=initWorkerProcess) - results = pool.imap_unordered(func=runTestVarArgs, iterable=[(case, command_template) for case in cases], chunksize=multiprocessing.cpu_count() * 8) - for result in results: - progress.HasRun(result) - else: - for case in cases: - result = case.Run(command_template) - progress.HasRun(result) - if print_summary: - self.PrintSummary(progress) - if full_summary: - self.PrintFailureOutput(progress) - else: - print - print "Use --full-summary to see output from failed tests" - print - if update_expectations: - self.expectations.update(progress) - - def Print(self, tests): - cases = self.EnumerateTests(tests) - if len(cases) > 0: - cases[0].Print() - - -def Main(): - # Some date tests rely on being run in pacific time. - # Uncomment the next line for more logging info. - #logging.basicConfig(level=logging.DEBUG) - os.environ["TZ"] = "PST8PDT" - parser = BuildOptions() - (options, args) = parser.parse_args() - ValidateOptions(options) - test_suite = TestSuite(options.tests, - options.strict_only, - options.non_strict_only, - options.unmarked_default, - options.with_test_expectations) - test_suite.Validate() - if options.cat: - test_suite.Print(args) - else: - test_suite.Run(options.command, args, - options.summary or options.full_summary, - options.full_summary, - options.parallel, - options.update_expectations) - - -if __name__ == '__main__': - try: - Main() - sys.exit(0) - except Test262Error, e: - print "Error: %s" % e.message - sys.exit(1) diff --git a/tests/manual/v4/tests.pro b/tests/manual/v4/tests.pro deleted file mode 100644 index ce4a34f7a0..0000000000 --- a/tests/manual/v4/tests.pro +++ /dev/null @@ -1,15 +0,0 @@ -TEMPLATE = aux - -TESTSCRIPT=$$PWD/test262.py -isEmpty(V4CMD): V4CMD = qmljs - -checktarget.target = check -checktarget.commands = python $$TESTSCRIPT --command=$$V4CMD --parallel --with-test-expectations --update-expectations -checktarget.depends = all -QMAKE_EXTRA_TARGETS += checktarget - -checkmothtarget.target = check-interpreter -checkmothtarget.commands = python $$TESTSCRIPT --command=\"$$V4CMD --interpret\" --parallel --with-test-expectations -checkmothtarget.depends = all -QMAKE_EXTRA_TARGETS += checkmothtarget - -- cgit v1.2.3 From 65e005a72d62d8a42a60e0b8b789d1f04da91ccf Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 23 Mar 2017 19:33:29 +0100 Subject: in childMouseEventFilter, touchpoint grabber is also the mouse grabber When an item (such as Flickable) filters its children's mouse events, sometimes the mouse event may be one that is synthesized from a touch point. If that touch point is already grabbed, then in the context of childMouseEventFilter QQuickWindow::mouseGrabberItem() should return the item which has grabbed the touchpoint from which the mouse event was synthesized. Otherwise, there was a regression in which an item which can be dragged via touch (such as Slider in QQ Controls 2) could have its grab stolen by a filtering parent, such as Flickable, or the gesture recognizer in QtLocation. mouseGrabberItem() was returning null because touchMouseId and touchMouseDevice were not set, and the actual mouse was not grabbed. If a touch event is used to synthesize a mouse event, and during delivery an Item steals the grab of the synthetic mouse event, the original grabber needs to be notified that it has lost the grab. Task-number: QTBUG-59416 Change-Id: Ib121b06121df7593c0d549a6df42397b8ead1c45 Reviewed-by: Paolo Angelelli --- src/quick/items/qquickwindow.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index e6245f90f3..924de3645b 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -746,6 +746,7 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber) qCDebug(DBG_MOUSE_TARGET) << "grabber" << q->mouseGrabberItem() << "->" << grabber; QQuickItem *oldGrabber = q->mouseGrabberItem(); + bool fromTouch = false; if (grabber && touchMouseId != -1 && touchMouseDevice) { // update the touch item for mouse touch id to the new grabber @@ -753,6 +754,7 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber) auto point = touchMouseDevice->pointerEvent()->pointById(touchMouseId); if (point) point->setGrabber(grabber); + fromTouch = true; } else { QQuickPointerEvent *event = QQuickPointerDevice::genericMouseDevice()->pointerEvent(); Q_ASSERT(event->pointCount() == 1); @@ -762,8 +764,11 @@ void QQuickWindowPrivate::setMouseGrabber(QQuickItem *grabber) if (oldGrabber) { QEvent e(QEvent::UngrabMouse); QSet hasFiltered; - if (!sendFilteredMouseEvent(oldGrabber->parentItem(), oldGrabber, &e, &hasFiltered)) + if (!sendFilteredMouseEvent(oldGrabber->parentItem(), oldGrabber, &e, &hasFiltered)) { oldGrabber->mouseUngrabEvent(); + if (fromTouch) + oldGrabber->touchUngrabEvent(); + } } } @@ -2585,28 +2590,39 @@ bool QQuickWindowPrivate::sendFilteredTouchEvent(QQuickItem *target, QQuickItem break; } + bool touchMouseUnset = (touchMouseId == -1); // Only deliver mouse event if it is the touchMouseId or it could become the touchMouseId - if (touchMouseId == -1 || touchMouseId == tp.id()) { + if (touchMouseUnset || touchMouseId == tp.id()) { // targetEvent is already transformed wrt local position, velocity, etc. // FIXME: remove asTouchEvent!!! QScopedPointer mouseEvent(touchToMouseEvent(t, tp, event->asTouchEvent(), item, false)); + // If a filtering item calls QQuickWindow::mouseGrabberItem(), it should + // report the touchpoint's grabber. Whenever we send a synthetic mouse event, + // touchMouseId and touchMouseDevice must be set, even if it's only temporarily and isn't grabbed. + touchMouseId = tp.id(); + touchMouseDevice = event->device(); if (target->childMouseEventFilter(item, mouseEvent.data())) { qCDebug(DBG_TOUCH) << " - second chance intercepted on childMouseEventFilter by " << target; if (t != QEvent::MouseButtonRelease) { qCDebug(DBG_TOUCH_TARGET) << "TP" << tp.id() << "->" << target; - touchMouseDevice = event->device(); - if (touchMouseId == -1) { + if (touchMouseUnset) { // the point was grabbed as a pure touch point before, now it will be treated as mouse // but the old receiver still needs to be informed if (auto oldGrabber = touchMouseDevice->pointerEvent()->pointById(tp.id())->grabber()) oldGrabber->touchUngrabEvent(); } - touchMouseId = tp.id(); + touchMouseUnset = false; // We want to leave touchMouseId and touchMouseDevice set target->grabMouse(); } filtered = true; } + if (touchMouseUnset) { + // Now that we're done sending a synth mouse event, and it wasn't grabbed, + // the touchpoint is no longer acting as a synthetic mouse. Restore previous state. + touchMouseId = -1; + touchMouseDevice = nullptr; + } // Only one event can be filtered as a mouse event. break; } -- cgit v1.2.3 From 09a62428cfdb1ced3767f38aba126cf466e37e30 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Fri, 24 Mar 2017 15:50:42 +0100 Subject: tst_qquickflickable: clean up touch event handling Use QTest::createTouchDevice now that it exists. No need for each test to create a device and pass it in to flickWithTouch Change-Id: I81131a13aaba01cfa0f04b25f334c80263625d12 Reviewed-by: Robin Burchell --- .../quick/qquickflickable/tst_qquickflickable.cpp | 26 ++++++++-------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp index 9ead271bfe..21d02ff5de 100644 --- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp +++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp @@ -50,6 +50,9 @@ class tst_qquickflickable : public QQmlDataTest { Q_OBJECT public: + tst_qquickflickable() + : touchDevice(QTest::createTouchDevice()) + {} private slots: void create(); @@ -101,7 +104,8 @@ private slots: void overshoot_reentrant(); private: - void flickWithTouch(QQuickWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to); + void flickWithTouch(QQuickWindow *window, const QPoint &from, const QPoint &to); + QTouchDevice *touchDevice; }; void tst_qquickflickable::cleanup() @@ -1530,12 +1534,6 @@ void tst_qquickflickable::clickAndDragWhenTransformed() void tst_qquickflickable::flickTwiceUsingTouches() { - QTouchDevice *touchDevice = new QTouchDevice; - touchDevice->setName("Fake Touchscreen"); - touchDevice->setType(QTouchDevice::TouchScreen); - touchDevice->setCapabilities(QTouchDevice::Position); - QWindowSystemInterface::registerTouchDevice(touchDevice); - QScopedPointer window(new QQuickView); window->setSource(testFileUrl("longList.qml")); QTRY_COMPARE(window->status(), QQuickView::Ready); @@ -1548,7 +1546,7 @@ void tst_qquickflickable::flickTwiceUsingTouches() QVERIFY(flickable != 0); QCOMPARE(flickable->contentY(), 0.0f); - flickWithTouch(window.data(), touchDevice, QPoint(100, 400), QPoint(100, 240)); + flickWithTouch(window.data(), QPoint(100, 400), QPoint(100, 240)); qreal contentYAfterFirstFlick = flickable->contentY(); qDebug() << "contentYAfterFirstFlick " << contentYAfterFirstFlick; @@ -1556,7 +1554,7 @@ void tst_qquickflickable::flickTwiceUsingTouches() // Wait until view stops moving QTRY_VERIFY(!flickable->isMoving()); - flickWithTouch(window.data(), touchDevice, QPoint(100, 400), QPoint(100, 240)); + flickWithTouch(window.data(), QPoint(100, 400), QPoint(100, 240)); // In the original bug, that second flick would cause Flickable to halt immediately qreal contentYAfterSecondFlick = flickable->contentY(); @@ -1564,7 +1562,7 @@ void tst_qquickflickable::flickTwiceUsingTouches() QTRY_VERIFY(contentYAfterSecondFlick > (contentYAfterFirstFlick + 80.0f)); } -void tst_qquickflickable::flickWithTouch(QQuickWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to) +void tst_qquickflickable::flickWithTouch(QQuickWindow *window, const QPoint &from, const QPoint &to) { QTest::touchEvent(window, touchDevice).press(0, from, window); QQuickTouchUtils::flush(window); @@ -1869,12 +1867,6 @@ void tst_qquickflickable::stopAtBounds() void tst_qquickflickable::nestedMouseAreaUsingTouch() { - QTouchDevice *touchDevice = new QTouchDevice; - touchDevice->setName("Fake Touchscreen"); - touchDevice->setType(QTouchDevice::TouchScreen); - touchDevice->setCapabilities(QTouchDevice::Position); - QWindowSystemInterface::registerTouchDevice(touchDevice); - QScopedPointer window(new QQuickView); window->setSource(testFileUrl("nestedmousearea.qml")); QTRY_COMPARE(window->status(), QQuickView::Ready); @@ -1887,7 +1879,7 @@ void tst_qquickflickable::nestedMouseAreaUsingTouch() QVERIFY(flickable != 0); QCOMPARE(flickable->contentY(), 50.0f); - flickWithTouch(window.data(), touchDevice, QPoint(100, 300), QPoint(100, 200)); + flickWithTouch(window.data(), QPoint(100, 300), QPoint(100, 200)); // flickable should not have moved QCOMPARE(flickable->contentY(), 50.0); -- cgit v1.2.3 From 6d7c3c0743b3c6aac7d7faa1ffd18798ceced0ac Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 23 Mar 2017 20:19:34 +0100 Subject: Flickable: don't steal grab from item with keepTouchGrab set Sometimes filterMouseEvent can be given a mouse event which was synthesized from a touch point which was already grabbed. In such cases, if the grabber has keepTouchGrab set, respect it. This makes it possible again for a QQControls 2 slider to be draggable inside a Flickable which is also draggable in the same direction. Task-number: QTBUG-59416 Change-Id: I93b7fd9cb846b1e574615154f9a54316b60c0477 Reviewed-by: J-P Nurmi --- src/quick/items/qquickflickable.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 6a2946bdcc..27d7072f03 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -2301,7 +2301,8 @@ bool QQuickFlickable::filterMouseEvent(QQuickItem *receiver, QMouseEvent *event) bool receiverDisabled = receiver && !receiver->isEnabled(); bool stealThisEvent = d->stealMouse; - if ((stealThisEvent || contains(localPos)) && (!receiver || !receiver->keepMouseGrab() || receiverDisabled)) { + bool receiverKeepsGrab = receiver && (receiver->keepMouseGrab() || receiver->keepTouchGrab()); + if ((stealThisEvent || contains(localPos)) && (!receiver || !receiverKeepsGrab || receiverDisabled)) { QScopedPointer mouseEvent(QQuickWindowPrivate::cloneMouseEvent(event, &localPos)); mouseEvent->setAccepted(false); @@ -2321,7 +2322,7 @@ bool QQuickFlickable::filterMouseEvent(QQuickItem *receiver, QMouseEvent *event) default: break; } - if ((receiver && stealThisEvent && !receiver->keepMouseGrab() && receiver != this) || receiverDisabled) { + if ((receiver && stealThisEvent && !receiverKeepsGrab && receiver != this) || receiverDisabled) { d->clearDelayedPress(); grabMouse(); } else if (d->delayedPressEvent) { @@ -2337,7 +2338,7 @@ bool QQuickFlickable::filterMouseEvent(QQuickItem *receiver, QMouseEvent *event) d->lastPosTime = -1; returnToBounds(); } - if (event->type() == QEvent::MouseButtonRelease || (receiver && receiver->keepMouseGrab() && !receiverDisabled)) { + if (event->type() == QEvent::MouseButtonRelease || (receiverKeepsGrab && !receiverDisabled)) { // mouse released, or another item has claimed the grab d->lastPosTime = -1; d->clearDelayedPress(); -- cgit v1.2.3 From 1f9c7b065f55f80f81b349ef64a718546dec4b49 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Fri, 24 Mar 2017 15:59:28 +0100 Subject: Add tst_qquickflickable::nestedSliderUsingTouch to verify that when a touch-handling component is inside the Flickable, it can control whether the flickable can steal the grab by means of setKeepTouchGrab. Task-number: QTBUG-59416 Task-number: QTBUG-59707 Change-Id: I93cf3abb07a96a69290c3b5b055b688a62fe8fff Reviewed-by: J-P Nurmi --- .../quick/qquickflickable/data/nestedSlider.qml | 36 +++++ .../quick/qquickflickable/tst_qquickflickable.cpp | 161 +++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 tests/auto/quick/qquickflickable/data/nestedSlider.qml diff --git a/tests/auto/quick/qquickflickable/data/nestedSlider.qml b/tests/auto/quick/qquickflickable/data/nestedSlider.qml new file mode 100644 index 0000000000..2fd0cbfcc8 --- /dev/null +++ b/tests/auto/quick/qquickflickable/data/nestedSlider.qml @@ -0,0 +1,36 @@ +import QtQuick 2.0 +import Test 1.0 + +Flickable { + width: 240 + height: 320 + contentWidth: width * 1.5 + contentHeight: height * 1.5 + contentY: height * 0.25 + + Rectangle { + id: slider + width: 50 + height: 200 + color: "lightgray" + border.color: drag.active ? "green" : "black" + anchors.centerIn: parent + radius: 4 + + TouchDragArea { + id: drag + objectName: "drag" + anchors.fill: parent + } + + Rectangle { + width: parent.width - 2 + height: 20 + radius: 5 + color: "darkgray" + border.color: "black" + x: 1 + y: Math.min(slider.height - height, Math.max(0, drag.pos.y - height / 2)) + } + } +} diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp index 21d02ff5de..3ecebfb48f 100644 --- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp +++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp @@ -46,6 +46,99 @@ using namespace QQuickViewTestUtil; using namespace QQuickVisualTestUtil; +// an abstract Slider which only handles touch events +class TouchDragArea : public QQuickItem +{ + Q_OBJECT + Q_PROPERTY(QPointF pos READ pos NOTIFY posChanged) + Q_PROPERTY(bool active READ active NOTIFY activeChanged) + Q_PROPERTY(bool keepMouseGrab READ keepMouseGrab WRITE setKeepMouseGrab NOTIFY keepMouseGrabChanged) + Q_PROPERTY(bool keepTouchGrab READ keepTouchGrab WRITE setKeepTouchGrab NOTIFY keepTouchGrabChanged) + +public: + TouchDragArea(QQuickItem *parent = 0) + : QQuickItem(parent) + , touchEvents(0) + , touchUpdates(0) + , touchReleases(0) + , ungrabs(0) + , m_active(false) + { + setFlags(ItemAcceptsDrops); + } + + QPointF pos() const { return m_pos; } + + bool active() const { return m_active; } + + void setKeepMouseGrab(bool keepMouseGrab) + { + QQuickItem::setKeepMouseGrab(keepMouseGrab); + emit keepMouseGrabChanged(); + } + + void setKeepTouchGrab(bool keepTouchGrab) + { + QQuickItem::setKeepTouchGrab(keepTouchGrab); + emit keepTouchGrabChanged(); + } + + int touchEvents; + int touchUpdates; + int touchReleases; + int ungrabs; + QVector touchPointStates; + +protected: + void touchEvent(QTouchEvent *ev) override + { + QCOMPARE(ev->touchPoints().count(), 1); + auto touchpoint = ev->touchPoints().first(); + switch (touchpoint.state()) { + case Qt::TouchPointPressed: + QVERIFY(!m_active); + m_active = true; + emit activeChanged(); + grabTouchPoints(QVector() << touchpoint.id()); + break; + case Qt::TouchPointMoved: + ++touchUpdates; + break; + case Qt::TouchPointReleased: + QVERIFY(m_active); + m_active = false; + ++touchReleases; + emit activeChanged(); + case Qt::TouchPointStationary: + break; + } + touchPointStates << touchpoint.state(); + ++touchEvents; + m_pos = touchpoint.pos(); + emit posChanged(); + } + + void touchUngrabEvent() override + { + ++ungrabs; + QVERIFY(m_active); + emit ungrabbed(); + m_active = false; + emit activeChanged(); + } + +signals: + void ungrabbed(); + void posChanged(); + void keepMouseGrabChanged(); + void keepTouchGrabChanged(); + void activeChanged(); + +private: + QPointF m_pos; + bool m_active; +}; + class tst_qquickflickable : public QQmlDataTest { Q_OBJECT @@ -55,6 +148,7 @@ public: {} private slots: + void initTestCase() override; void create(); void horizontalViewportSize(); void verticalViewportSize(); @@ -92,6 +186,8 @@ private slots: void stopAtBounds(); void stopAtBounds_data(); void nestedMouseAreaUsingTouch(); + void nestedSliderUsingTouch(); + void nestedSliderUsingTouch_data(); void pressDelayWithLoader(); void movementFromProgrammaticFlick(); void cleanup(); @@ -108,6 +204,12 @@ private: QTouchDevice *touchDevice; }; +void tst_qquickflickable::initTestCase() +{ + QQmlDataTest::initTestCase(); + qmlRegisterType("Test",1,0,"TouchDragArea"); +} + void tst_qquickflickable::cleanup() { QVERIFY(QGuiApplication::topLevelWindows().isEmpty()); @@ -1889,6 +1991,65 @@ void tst_qquickflickable::nestedMouseAreaUsingTouch() QVERIFY(nested->y() < 100.0); } +void tst_qquickflickable::nestedSliderUsingTouch_data() +{ + QTest::addColumn("keepMouseGrab"); + QTest::addColumn("keepTouchGrab"); + QTest::addColumn("updates"); + QTest::addColumn("releases"); + QTest::addColumn("ungrabs"); + + QTest::newRow("keepBoth") << true << true << 8 << 1 << 0; + QTest::newRow("keepMouse") << true << false << 8 << 1 << 0; + QTest::newRow("keepTouch") << false << true << 8 << 1 << 0; + QTest::newRow("keepNeither") << false << false << 6 << 0 << 1; +} + +void tst_qquickflickable::nestedSliderUsingTouch() +{ + QFETCH(bool, keepMouseGrab); + QFETCH(bool, keepTouchGrab); + QFETCH(int, updates); + QFETCH(int, releases); + QFETCH(int, ungrabs); + + QQuickView *window = new QQuickView; + QScopedPointer windowPtr(window); + windowPtr->setSource(testFileUrl("nestedSlider.qml")); + QTRY_COMPARE(window->status(), QQuickView::Ready); + QQuickViewTestUtil::centerOnScreen(window); + QQuickViewTestUtil::moveMouseAway(window); + window->show(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(window->rootObject() != 0); + + QQuickFlickable *flickable = qobject_cast(window->rootObject()); + QVERIFY(flickable); + + TouchDragArea *tda = flickable->findChild("drag"); + QVERIFY(tda); + + // Drag down and a little to the right: flickable will steal the grab only if tda allows it + const int dragThreshold = qApp->styleHints()->startDragDistance(); + tda->setKeepMouseGrab(keepMouseGrab); + tda->setKeepTouchGrab(keepTouchGrab); + QPoint p0 = tda->mapToScene(QPoint(20, 20)).toPoint(); + QTest::touchEvent(window, touchDevice).press(0, p0, window); + QQuickTouchUtils::flush(window); + for (int i = 0; i < 8; ++i) { + p0 += QPoint(dragThreshold / 6, dragThreshold / 4); + QTest::touchEvent(window, touchDevice).move(0, p0, window); + QQuickTouchUtils::flush(window); + } + QCOMPARE(tda->active(), !ungrabs); + QTest::touchEvent(window, touchDevice).release(0, p0, window); + QQuickTouchUtils::flush(window); + QCOMPARE(tda->touchPointStates.first(), Qt::TouchPointPressed); + QCOMPARE(tda->touchUpdates, updates); + QCOMPARE(tda->touchReleases, releases); + QCOMPARE(tda->ungrabs, ungrabs); +} + // QTBUG-31328 void tst_qquickflickable::pressDelayWithLoader() { -- cgit v1.2.3 From 73f365f9f2d04131ae27a5dba26255feda18baa2 Mon Sep 17 00:00:00 2001 From: Kimmo Ollila Date: Mon, 27 Mar 2017 04:38:43 +0300 Subject: Add missing header inclusion Change-Id: I7c215db87552c63291e6c82d7b962ee17ec2f610 Reviewed-by: Simon Hausmann --- src/qml/qml/qqmltypeloader.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index f115d4227c..40bd2e5020 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -64,6 +64,7 @@ #include #include #include +#include #include -- cgit v1.2.3 From 3026e2c5b0e8163c3ea6b691a1f88bd3f41eb171 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 27 Mar 2017 16:27:06 +0200 Subject: Add support for showing disassembly for cache mapped code Change-Id: I6199d624a23e2e1b67bcbb841f0bc999880a3993 Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 5c90aba464..c5a60ec013 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -95,6 +95,12 @@ bool CompilationUnit::memoryMapCode(QString *errorString) JSC::MacroAssemblerCodeRef codeRef = JSC::MacroAssemblerCodeRef::createSelfManagedCodeRef(JSC::MacroAssemblerCodePtr(codePtr)); JSC::ExecutableAllocator::makeExecutable(codePtr, compiledFunction->codeSize); codeRefs[i] = codeRef; + + static const bool showCode = qEnvironmentVariableIsSet("QV4_SHOW_ASM"); + if (showCode) { + WTF::dataLogF("Mapped JIT code for %s\n", qPrintable(stringAt(compiledFunction->nameIndex))); + disassemble(codeRef.code(), compiledFunction->codeSize, " ", WTF::dataFile()); + } } return true; -- cgit v1.2.3 From ecda87091f290daec34bee6b55dd9cf920ffdcff Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 27 Mar 2017 16:27:39 +0200 Subject: Fix manual register allocation when cross-compiling for ARMv7 Let's assume that we always generate thumb2 code. I'm not even sure that we still support plain ARM anyway. Change-Id: Ie7ec4d1de8f9f6cb86d80193990e492782ff2cf2 Reviewed-by: Lars Knoll --- src/qml/jit/qv4targetplatform_p.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/qml/jit/qv4targetplatform_p.h b/src/qml/jit/qv4targetplatform_p.h index d9f8034b1f..ce6156802d 100644 --- a/src/qml/jit/qv4targetplatform_p.h +++ b/src/qml/jit/qv4targetplatform_p.h @@ -370,7 +370,7 @@ public: // There are two designated frame-pointer registers on ARM, depending on which instruction set // is used for the subroutine: r7 for Thumb or Thumb2, and r11 for ARM. We assign the constants // accordingly, and assign the locals-register to the "other" register. -#if CPU(ARM_THUMB2) +#if CPU(ARM_THUMB2) || defined(V4_BOOTSTRAP) static const RegisterID FramePointerRegister = JSC::ARMRegisters::r7; static const RegisterID LocalsRegister = JSC::ARMRegisters::r11; #else // Thumbs down @@ -397,7 +397,7 @@ public: << RI(JSC::ARMRegisters::r4, QStringLiteral("r4"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) << RI(JSC::ARMRegisters::r5, QStringLiteral("r5"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) << RI(JSC::ARMRegisters::r6, QStringLiteral("r6"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) -#if !CPU(ARM_THUMB2) +#if !CPU(ARM_THUMB2) && !defined(V4_BOOTSTRAP) << RI(JSC::ARMRegisters::r7, QStringLiteral("r7"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) #endif << RI(JSC::ARMRegisters::r8, QStringLiteral("r8"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) @@ -405,7 +405,7 @@ public: << RI(JSC::ARMRegisters::r9, QStringLiteral("r9"), RI::RegularRegister, RI::CalleeSaved, RI::RegAlloc) #endif << RI(JSC::ARMRegisters::r10, QStringLiteral("r10"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) -#if CPU(ARM_THUMB2) +#if CPU(ARM_THUMB2) && !defined(V4_BOOTSTRAP) << RI(JSC::ARMRegisters::r11, QStringLiteral("r11"), RI::RegularRegister, RI::CalleeSaved, RI::Predefined) #endif << RI(JSC::ARMRegisters::d2, QStringLiteral("d2"), RI::FloatingPointRegister, RI::CallerSaved, RI::RegAlloc) -- cgit v1.2.3 From 03006adeecfba8fdfa219e2a54f93eea21c81eeb Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 28 Mar 2017 14:40:44 +0200 Subject: Minor cleanup: Remove unused function Change-Id: Ie8d0c7b360ff120f381e33439037cf7b01257456 Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler_p.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index e507a14f12..81b164beb2 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1235,13 +1235,6 @@ public: TargetConfiguration::MacroAssembler::storeDouble(fpScratchRegister, loadAddress(scratchRegister, target)); } - void storeValue(QV4::Primitive value, RegisterID destination) - { - Q_UNUSED(value); - Q_UNUSED(destination); - Q_UNREACHABLE(); - } - void storeValue(QV4::Primitive value, Address destination) { RegisterSizeDependentOps::storeValue(this, value, destination); -- cgit v1.2.3 From 05090868b816d2add1c22078a015a6dc19f401ae Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 28 Mar 2017 16:14:24 +0200 Subject: Simplify function prologue code in the JIT We don't have to do a engine->current->engine dance to get hold of the engine pointer, in order to update jsStackTop. We have a dedicated engine register :) Change-Id: I187ea67bf9f3e43b0048dca3cd6ee35f70d8737c Reviewed-by: Lars Knoll --- src/qml/jit/qv4assembler.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index c5a60ec013..d239ed9907 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -529,9 +529,7 @@ void Assembler::returnFromFunction(IR::Ret *s, RegisterInfo const int locals = stackLayout().calculateJSStackFrameSize(); subPtr(TrustedImm32(sizeof(QV4::Value)*locals), JITTargetPlatform::LocalsRegister); - loadPtr(Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); - loadPtr(Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, engine))), JITTargetPlatform::ScratchRegister); - storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); + storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); leaveStandardStackFrame(regularRegistersToSave, fpRegistersToSave); ret(); -- cgit v1.2.3 From 1b8c7e72e4467925ecee49d2d66e81692ca9d525 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 28 Mar 2017 16:51:59 +0200 Subject: Fix pop(RegisterID) on ARMv7 when cross-compiling This is implemented as ldr instruction that automatically adjusts the indexing register, which for ARMv7 needs to be always 4-bytes, not sizeof(void*) which can be 8 on 64-bit hosts. Change-Id: I66cce2a7388ef12b321db643e8efb002158519aa Reviewed-by: Lars Knoll --- src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index 806f2e13b6..0d5d42bf71 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -1242,7 +1242,7 @@ public: void pop(RegisterID dest) { // store postindexed with writeback - m_assembler.ldr(dest, ARMRegisters::sp, sizeof(void*), false, true); + m_assembler.ldr(dest, ARMRegisters::sp, 4 /*sizeof(void*)*/, false, true); } void push(RegisterID src) -- cgit v1.2.3 From b82d5bb4186952d66ebd4a3f6a21c5d9e8705940 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 29 Mar 2017 08:36:06 +0200 Subject: tst_qquickimage::mirror(): Ensure screenshots are in the correct format Task-number: QTBUG-59787 Change-Id: I9ef1e6e5284cadc37bdac342b02cf93655346d57 Reviewed-by: Shawn Rutledge --- tests/auto/quick/qquickimage/tst_qquickimage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/quick/qquickimage/tst_qquickimage.cpp b/tests/auto/quick/qquickimage/tst_qquickimage.cpp index 4699f947a1..e439db543f 100644 --- a/tests/auto/quick/qquickimage/tst_qquickimage.cpp +++ b/tests/auto/quick/qquickimage/tst_qquickimage.cpp @@ -373,7 +373,7 @@ void tst_qquickimage::mirror() } QImage img = expected.toImage(); - QCOMPARE(screenshots[fillMode], img); + QCOMPARE(screenshots[fillMode].convertToFormat(img.format()), img); } } -- cgit v1.2.3 From 0dbc575c1a8359534761167a5f5f1e29abedd51d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 22 Feb 2017 16:16:14 +0100 Subject: Make keyboard events work in QQuickWidget Right now many cases outside of text input fields are simply broken, e.g. one cannot use a TableView or other controls with the keyboard. Removing the seemingly unnecessary focusObject() solves all problems since this way key events get delivered to the QQuickWidget which in turn forwards to the QQuickWindow. Directly routing into the QQuickWindow's focusObject(), which can be any item in the scene is wrong since it skips a big part of QQuickWindow's event handling logic. Task-number: QTBUG-45757 Change-Id: Ie53b9003d156ab019fa4b9cf461e209990e738f7 Reviewed-by: Paul Olav Tvete --- src/quickwidgets/qquickwidget.cpp | 7 +++--- src/quickwidgets/qquickwidget_p.h | 2 -- .../quickwidgets/qquickwidget/tst_qquickwidget.cpp | 28 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index ea02723db8..5d7fb04b9f 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -353,10 +353,9 @@ QImage QQuickWidgetPrivate::grabFramebuffer() return renderControl->grab(); } -QObject *QQuickWidgetPrivate::focusObject() -{ - return offscreenWindow ? offscreenWindow->focusObject() : 0; -} +// Intentionally not overriding the QQuickWindow's focusObject. +// Key events should go to our key event handlers, and then to the +// QQuickWindow, not any in-scene item. /*! \module QtQuickWidgets diff --git a/src/quickwidgets/qquickwidget_p.h b/src/quickwidgets/qquickwidget_p.h index 559321cd51..6892e6e0b4 100644 --- a/src/quickwidgets/qquickwidget_p.h +++ b/src/quickwidgets/qquickwidget_p.h @@ -99,8 +99,6 @@ public: void destroyContext(); void handleContextCreationFailure(const QSurfaceFormat &format, bool isEs); - QObject *focusObject() Q_DECL_OVERRIDE; - #if QT_CONFIG(opengl) GLuint textureId() const Q_DECL_OVERRIDE; QImage grabFramebuffer() Q_DECL_OVERRIDE; diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp index 5e8f762e23..bd051ec990 100644 --- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp +++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp @@ -58,6 +58,7 @@ private slots: void grabBeforeShow(); void reparentToNewWindow(); void nullEngine(); + void keyEvents(); }; @@ -337,6 +338,33 @@ void tst_qquickwidget::nullEngine() QVERIFY(widget.engine()); } +class KeyHandlingWidget : public QQuickWidget +{ +public: + void keyPressEvent(QKeyEvent *e) override { + if (e->key() == Qt::Key_A) + ok = true; + } + + bool ok = false; +}; + +void tst_qquickwidget::keyEvents() +{ + // A QQuickWidget should behave like a normal widget when it comes to event handling. + // Verify that key events actually reach the widget. (QTBUG-45757) + KeyHandlingWidget widget; + widget.setSource(testFileUrl("rectangle.qml")); + widget.show(); + QVERIFY(QTest::qWaitForWindowExposed(widget.window(), 5000)); + + // Note: send the event to the QWindow, not the QWidget, in order + // to simulate the full event processing chain. + QTest::keyClick(widget.window()->windowHandle(), Qt::Key_A); + + QTRY_VERIFY(widget.ok); +} + QTEST_MAIN(tst_qquickwidget) #include "tst_qquickwidget.moc" -- cgit v1.2.3 From ea99d624558437db64e33df476cf7d43bb5c0099 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 29 Mar 2017 13:24:40 +0200 Subject: Minor cleanup: Don't require QtGui for ES6 tests We don't need a QGuiApplication to launch test262.py Change-Id: I3f8e200245a30d88f3c6ff578be414ec76bcfb9c Reviewed-by: Robin Burchell --- tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp b/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp index 2ce0cfe210..5d7009e7c8 100644 --- a/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp +++ b/tests/auto/qml/ecmascripttests/tst_ecmascripttests.cpp @@ -71,7 +71,7 @@ void tst_EcmaScriptTests::runTests() #endif } -QTEST_MAIN(tst_EcmaScriptTests) +QTEST_GUILESS_MAIN(tst_EcmaScriptTests) #include "tst_ecmascripttests.moc" -- cgit v1.2.3 From 4a6e072d6c7591ee58b56e3d6a2128e814c94848 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 29 Mar 2017 09:22:21 +0200 Subject: Fix stack pointer arithmetic when cross-compiling Replace the use of size(void*) with target assembler specific values for the pointer size, when calculating offsets into the stack for poke/peek/push/pop and placing arguments onto the stack before calling functions. Change-Id: I3aff540f0083967e75b61e0c29dbeb4d9ecfa433 Reviewed-by: Lars Knoll --- src/3rdparty/masm/assembler/MacroAssembler.h | 11 +++++++---- src/3rdparty/masm/assembler/MacroAssemblerARM64.h | 2 ++ src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 2 ++ src/3rdparty/masm/assembler/MacroAssemblerMIPS.h | 1 + src/3rdparty/masm/assembler/MacroAssemblerX86.h | 1 + src/3rdparty/masm/assembler/MacroAssemblerX86_64.h | 1 + src/qml/jit/qv4assembler_p.h | 2 +- 7 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/3rdparty/masm/assembler/MacroAssembler.h b/src/3rdparty/masm/assembler/MacroAssembler.h index 7d9f156c8c..f37861eb66 100644 --- a/src/3rdparty/masm/assembler/MacroAssembler.h +++ b/src/3rdparty/masm/assembler/MacroAssembler.h @@ -94,6 +94,7 @@ public: using DataLabelCompact = typename MacroAssemblerBase::DataLabelCompact; using Jump = typename MacroAssemblerBase::Jump; using PatchableJump = typename MacroAssemblerBase::PatchableJump; + using MacroAssemblerBase::PointerSize; using MacroAssemblerBase::pop; using MacroAssemblerBase::jump; @@ -200,19 +201,19 @@ public: // described in terms of other macro assembly methods. void pop() { - addPtr(TrustedImm32(sizeof(void*)), MacroAssemblerBase::stackPointerRegister); + addPtr(TrustedImm32(PointerSize), MacroAssemblerBase::stackPointerRegister); } void peek(RegisterID dest, int index = 0) { - loadPtr(Address(MacroAssemblerBase::stackPointerRegister, (index * sizeof(void*))), dest); + loadPtr(Address(MacroAssemblerBase::stackPointerRegister, (index * PointerSize)), dest); } Address addressForPoke(int index) { - return Address(MacroAssemblerBase::stackPointerRegister, (index * sizeof(void*))); + return Address(MacroAssemblerBase::stackPointerRegister, (index * PointerSize)); } - + void poke(RegisterID src, int index = 0) { storePtr(src, addressForPoke(index)); @@ -223,10 +224,12 @@ public: store32(value, addressForPoke(index)); } +#if !defined(V4_BOOTSTRAP) void poke(TrustedImmPtr imm, int index = 0) { storePtr(imm, addressForPoke(index)); } +#endif #if (CPU(X86_64) || CPU(ARM64)) && !defined(V4_BOOTSTRAP) void peek64(RegisterID dest, int index = 0) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h index a11637f7ca..11f1672e15 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h @@ -127,6 +127,8 @@ private: static const ptrdiff_t REPATCH_OFFSET_CALL_TO_POINTER = -16; public: + static const int PointerSize = 8; + MacroAssemblerARM64() : m_dataMemoryTempRegister(this, dataTempRegister) , m_cachedMemoryTempRegister(this, memoryTempRegister) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index 0d5d42bf71..fe8170d098 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -46,6 +46,8 @@ protected: // the YarrJIT needs know about addressTempRegister in order to push inline ARMRegisters::FPSingleRegisterID fpTempRegisterAsSingle() { return ARMRegisters::asSingle(fpTempRegister); } public: + static const int PointerSize = 4; + MacroAssemblerARMv7() : m_makeJumpPatchable(false) { diff --git a/src/3rdparty/masm/assembler/MacroAssemblerMIPS.h b/src/3rdparty/masm/assembler/MacroAssemblerMIPS.h index 68584527fc..f2ad6a4470 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerMIPS.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerMIPS.h @@ -37,6 +37,7 @@ namespace JSC { class MacroAssemblerMIPS : public AbstractMacroAssembler { public: typedef MIPSRegisters::FPRegisterID FPRegisterID; + static const int PointerSize = 4; MacroAssemblerMIPS() : m_fixedWidth(false) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerX86.h b/src/3rdparty/masm/assembler/MacroAssemblerX86.h index 742a4b48f7..280cf427fc 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerX86.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerX86.h @@ -35,6 +35,7 @@ namespace JSC { class MacroAssemblerX86 : public MacroAssemblerX86Common { public: static const Scale ScalePtr = TimesFour; + static const int PointerSize = 4; using MacroAssemblerX86Common::add32; using MacroAssemblerX86Common::and32; diff --git a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h index 3566702413..8ee134c2fa 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h @@ -37,6 +37,7 @@ namespace JSC { class MacroAssemblerX86_64 : public MacroAssemblerX86Common { public: static const Scale ScalePtr = TimesEight; + static const int PointerSize = 8; using MacroAssemblerX86Common::add32; using MacroAssemblerX86Common::and32; diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 81b164beb2..3e3aab9452 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1299,7 +1299,7 @@ public: template struct SizeOnStack { - enum { Size = Select= RegisterArgumentCount, sizeof(void*), 0>::Chosen }; + enum { Size = Select= RegisterArgumentCount, RegisterSize, 0>::Chosen }; }; template -- cgit v1.2.3 From 44900962268c50aa1f9823e71d5b75cfa9e7ea4f Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 29 Mar 2017 10:27:15 +0200 Subject: Restrict automated tests on Boot2Qt to non-graphical tests This allows us to enable running of some of the tests in the CI and gives us test coverage for some important architecture specific aspects of the engine. Graphical tests are omitted at the moment as well as a few other tests (such as ES6 suite), that will be added incrementally. This change is just an enabler. Once in place tests can be enabled in qt5.git's platform_configs. Change-Id: I9179aaf1fe12f4423833379b97d16b711c57f39b Reviewed-by: Sami Nurmenniemi Reviewed-by: Lars Knoll --- tests/auto/auto.pro | 3 +++ tests/auto/qml/qml.pro | 20 ++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 1e80f1bf65..f9c1fcce91 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -18,4 +18,7 @@ qtHaveModule(gui):qtConfig(opengl(es1|es2)?) { # console applications not supported uikit: SUBDIRS -= qmltest +# Restricted sub-set for now +boot2qt: SUBDIRS = qml + installed_cmake.depends = cmake diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index a9b18e9f32..007eb0dc83 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -7,6 +7,9 @@ PUBLICTESTS += \ parserstress \ qjsvalueiterator \ qjsonbinding \ + +!boot2qt { +PUBLICTESTS += \ qmlmin \ qqmlcomponent \ qqmlconsole \ @@ -25,15 +28,21 @@ PUBLICTESTS += \ qquickfolderlistmodel \ qqmlapplicationengine \ qqmlsettings \ - qqmlstatemachine + qqmlstatemachine \ + qmldiskcache +} PRIVATETESTS += \ - animation \ qqmlcpputils \ + qqmldirparser \ + v4misc \ + +!boot2qt { +PRIVATETESTS += \ + animation \ qqmlecmascript \ qqmlcontext \ qqmlexpression \ - qqmldirparser \ qqmlglobal \ qqmllanguage \ qqmlopenmetaobject \ @@ -57,13 +66,12 @@ PRIVATETESTS += \ qqmltimer \ qqmlinstantiator \ qqmlenginecleanup \ - v4misc \ qqmltranslation \ qqmlimport \ qqmlobjectmodel \ - qmldiskcache \ qv4mm \ ecmascripttests +} qtHaveModule(widgets) { PUBLICTESTS += \ @@ -73,7 +81,7 @@ qtHaveModule(widgets) { SUBDIRS += $$PUBLICTESTS SUBDIRS += $$METATYPETESTS -qtConfig(process) { +qtConfig(process):!boot2qt { !contains(QT_CONFIG, no-qml-debug): SUBDIRS += debugger SUBDIRS += qmllint qmlplugindump } -- cgit v1.2.3 From e4894fe13d178b6aa8b5580b402df2d1b4f2615c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 30 Mar 2017 15:16:10 +0200 Subject: Don't use incremental GC for now Revert back to not using the incremental garbage collector for now, as it apparently doesn't play well with weak values. This should fix the crashes seen in Qt Quick Controls 2 in CI Task-number: QTBUG-59600 Change-Id: I8e35e761d5d6e9022e1d183883cb5a9cb39b4975 Reviewed-by: Simon Hausmann --- src/qml/memory/qv4writebarrier_p.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/memory/qv4writebarrier_p.h b/src/qml/memory/qv4writebarrier_p.h index 455de4bf3d..a2f85822ca 100644 --- a/src/qml/memory/qv4writebarrier_p.h +++ b/src/qml/memory/qv4writebarrier_p.h @@ -55,8 +55,8 @@ QT_BEGIN_NAMESPACE -#define WRITEBARRIER_steele 1 -#define WRITEBARRIER_none -1 +#define WRITEBARRIER_steele -1 +#define WRITEBARRIER_none 1 #define WRITEBARRIER(x) (1/WRITEBARRIER_##x == 1) -- cgit v1.2.3