SVN commit 1130463 by arnorehn: Store 'long long' types in Smoke::StackItem::s_voidp. This will restore correct 'long long' handling in QtRuby and break the already broken 'long' handling in C# even more. This should however be fixed with the new C# bindings generated by assemblygen. CCMAIL: kde-bindings@kde.org M +2 -2 generator_smoke.cpp M +2 -2 helpers.cpp --- trunk/KDE/kdebindings/generator/generators/smoke/generator_smoke.cpp #1130462:1130463 @@ -212,9 +212,9 @@ Options::qtMode = ParserOptions::qtMode; + Options::voidpTypes << "long long" << "long long int" << "unsigned long long" << "unsigned long long int"; + // Fill the type map. It maps some long integral types to shorter forms as used in SMOKE. - Util::typeMap["long long"] = "long"; - Util::typeMap["long long int"] = "long"; Util::typeMap["long int"] = "long"; Util::typeMap["short int"] = "short"; Util::typeMap["long double"] = "double"; --- trunk/KDE/kdebindings/generator/generators/smoke/helpers.cpp #1130462:1130463 @@ -503,7 +503,7 @@ return "s_uint"; } - if (type->pointerDepth() > 0 || type->isRef() || type->isFunctionPointer() || type->isArray() + if (type->pointerDepth() > 0 || type->isRef() || type->isFunctionPointer() || type->isArray() || Options::voidpTypes.contains(type->name()) || (!type->isIntegral() && !type->getEnum())) { return "s_class"; @@ -538,7 +538,7 @@ return "(void*)" + var; } else if (type->isRef()) { return "(void*)&" + var; - } else if (type->isIntegral()) { + } else if (type->isIntegral() && !Options::voidpTypes.contains(type->name())) { return var; } else if (type->getEnum()) { return var; _______________________________________________ Kde-bindings mailing list Kde-bindings@kde.org https://mail.kde.org/mailman/listinfo/kde-bindings