Mercurial > projects > qtd
comparison generator/cppimplgenerator.cpp @ 293:8627891e4556 signals
QList updates
author | eldar |
---|---|
date | Fri, 13 Nov 2009 19:09:28 +0000 |
parents | 19498f420252 |
children | bb37b0ed94c9 |
comparison
equal
deleted
inserted
replaced
292:19498f420252 | 293:8627891e4556 |
---|---|
719 << "extern \"C\" DLL_PUBLIC void* qtd_" << java_class->name() << "_staticMetaObject() {" << endl | 719 << "extern \"C\" DLL_PUBLIC void* qtd_" << java_class->name() << "_staticMetaObject() {" << endl |
720 << " return (void*)&" << java_class->name() << "::staticMetaObject;" << endl | 720 << " return (void*)&" << java_class->name() << "::staticMetaObject;" << endl |
721 << "}" << endl; | 721 << "}" << endl; |
722 } | 722 } |
723 | 723 |
724 if (java_class->typeEntry()->isValue() && java_class->hasCloneOperator()) | |
725 { | |
726 AbstractMetaFunction *ctor = java_class->copyConstructor(); | |
727 if(ctor) | |
728 { | |
729 QString argName = ctor->arguments().at(0)->indexedName(); | |
730 s << endl << endl | |
731 << "extern \"C\" DLL_PUBLIC void* qtd_" << java_class->name() << "_placed_copy(void* " | |
732 << argName << ", " << "void* place) {" << endl | |
733 << QString(" const %1& __qt_%2 = (const %1& ) *(%1 *)%2;").arg(java_class->name()).arg(argName) << endl; | |
734 | |
735 writeFinalConstructor(s, ctor, "result", "original", "(place)"); | |
736 s << "}"; | |
737 } | |
738 } | |
739 | |
724 s << endl << endl; | 740 s << endl << endl; |
725 | 741 |
726 priGenerator->addSource(java_class->package(), fileNameForClass(java_class)); | 742 priGenerator->addSource(java_class->package(), fileNameForClass(java_class)); |
727 } | 743 } |
728 | 744 |
2338 } | 2354 } |
2339 | 2355 |
2340 void CppImplGenerator::writeFinalConstructor(QTextStream &s, | 2356 void CppImplGenerator::writeFinalConstructor(QTextStream &s, |
2341 const AbstractMetaFunction *java_function, | 2357 const AbstractMetaFunction *java_function, |
2342 const QString &qt_object_name, | 2358 const QString &qt_object_name, |
2343 const QString &java_object_name) | 2359 const QString &java_object_name, |
2360 const QString &place) | |
2344 { | 2361 { |
2345 const AbstractMetaClass *cls = java_function->ownerClass(); | 2362 const AbstractMetaClass *cls = java_function->ownerClass(); |
2346 AbstractMetaArgumentList arguments = java_function->arguments(); | 2363 AbstractMetaArgumentList arguments = java_function->arguments(); |
2347 QString className = cls->typeEntry()->qualifiedCppName(); | 2364 QString className = cls->typeEntry()->qualifiedCppName(); |
2348 | 2365 |
2349 bool hasShellClass = cls->generateShellClass(); | 2366 bool hasShellClass = cls->generateShellClass(); |
2350 | 2367 |
2351 s << INDENT << shellClassName(cls) << " *" << qt_object_name | 2368 s << INDENT << shellClassName(cls) << " *" << qt_object_name |
2352 << " = new " << shellClassName(cls) | 2369 << " = new " << place << shellClassName(cls) |
2353 << "("; | 2370 << "("; |
2354 writeFunctionCallArguments(s, java_function, "__qt_"); | 2371 writeFunctionCallArguments(s, java_function, "__qt_"); |
2355 s << ");" << endl; | 2372 s << ");" << endl; |
2356 s << INDENT << "return (void *) " << qt_object_name << ";" << endl; // qtd | 2373 s << INDENT << "return (void *) " << qt_object_name << ";" << endl; // qtd |
2357 | 2374 |