Moc: pass a pointer to the parser to the Generator

This way the Generator can use e.g. Parser::error() to print error
messages (which will happen in a later commit).

Change-Id: Id710d7b604a82ce6bb61999addad8c95c53e3226
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Ahmad Samir 2023-06-03 15:47:40 +03:00
parent 845b5d63bf
commit 2cca2323d3
3 changed files with 7 additions and 4 deletions

View File

@ -55,11 +55,12 @@ QT_FOR_EACH_STATIC_TYPE(RETURN_METATYPENAME_STRING)
return nullptr;
}
Generator::Generator(ClassDef *classDef, const QList<QByteArray> &metaTypes,
Generator::Generator(Moc *moc, ClassDef *classDef, const QList<QByteArray> &metaTypes,
const QHash<QByteArray, QByteArray> &knownQObjectClasses,
const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile,
bool requireCompleteTypes)
: out(outfile),
: parser(moc),
out(outfile),
cdef(classDef),
metaTypes(metaTypes),
knownQObjectClasses(knownQObjectClasses),

View File

@ -10,12 +10,13 @@ QT_BEGIN_NAMESPACE
class Generator
{
Moc *parser = nullptr;
FILE *out;
ClassDef *cdef;
QList<uint> meta_data;
public:
Generator(ClassDef *classDef, const QList<QByteArray> &metaTypes,
Generator(Moc *moc, ClassDef *classDef, const QList<QByteArray> &metaTypes,
const QHash<QByteArray, QByteArray> &knownQObjectClasses,
const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile = nullptr,
bool requireCompleteTypes = false);

View File

@ -1136,7 +1136,8 @@ void Moc::generate(FILE *out, FILE *jsonOutput)
fputs("", out);
for (int i = 0; i < classList.size(); ++i) {
Generator generator(&classList[i], metaTypes, knownQObjectClasses, knownGadgets, out, requireCompleteTypes);
Generator generator(this, &classList[i], metaTypes, knownQObjectClasses, knownGadgets, out,
requireCompleteTypes);
generator.generateCode();
// generator.generateCode() should have already registered all strings