[Kde-bindings] KDE/kdebindings/generator/generators/smoke
Arno Rehn
kde at arnorehn.de
Tue May 25 12:58:35 UTC 2010
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 at 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;
More information about the Kde-bindings
mailing list