Hi all, When building Qt 5 on big endian host (PPC) I've found moc breaking on Qt classes containing Q_PLUGIN_METADATA with
ASSERT: "idx >= 0 && idx < s" in file ../../../include/QtCore/../../src/corelib/tools/qvarlengtharray.h, line 111 It turned out to be a fault of QJsonPrivate::Parser::parseObject which has different code for handling of big endian and little endian cases: if (parsedObject.offsets.size()) { int tableSize = parsedObject.offsets.size()*sizeof(uint); table = reserveSpace(tableSize); #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN memcpy(data + table, parsedObject.offsets.constData(), tableSize); #else offset *o = (offset *)(data + table); for (int i = 0; i < tableSize; ++i) o[i] = parsedObject.offsets[i]; #endif } Could anyone explain why memcpy cannot be used for big endian case here? -- Regards, Konstantin _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development