Mercurial > projects > qtd
comparison generator/cppimplgenerator.cpp @ 354:18bd68f586c6
removed superfluous destructors
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Mon, 24 May 2010 23:43:30 +0300 |
parents | 9fc85d7280ba |
children | 08c1ca7975ab |
comparison
equal
deleted
inserted
replaced
353:0a671b1382d7 | 354:18bd68f586c6 |
---|---|
585 writeShellSignatures(s, java_class); | 585 writeShellSignatures(s, java_class); |
586 | 586 |
587 writeDefaultConstructedValues(s, java_class); | 587 writeDefaultConstructedValues(s, java_class); |
588 | 588 |
589 if (hasCustomDestructor(java_class)) */ | 589 if (hasCustomDestructor(java_class)) */ |
590 if (!java_class->isQObject()) | 590 |
591 writeFinalDestructor(s, java_class); | 591 writeFinalDestructor(s, java_class); |
592 | 592 |
593 if (java_class->isQObject()) { | 593 if (java_class->isQObject()) { |
594 writeQObjectEntity(s, java_class); | 594 writeQObjectEntity(s, java_class); |
595 writeSignalsHandling(s, java_class); | 595 writeSignalsHandling(s, java_class); |
596 } | 596 } |
1498 s << "}" << endl << endl; | 1498 s << "}" << endl << endl; |
1499 } | 1499 } |
1500 | 1500 |
1501 void CppImplGenerator::writeShellDestructor(QTextStream &s, const AbstractMetaClass *java_class) | 1501 void CppImplGenerator::writeShellDestructor(QTextStream &s, const AbstractMetaClass *java_class) |
1502 { | 1502 { |
1503 s << shellClassName(java_class) << "::~" | 1503 QString className = shellClassName(java_class); |
1504 << shellClassName(java_class) << "()" << endl | 1504 s << className << "::~" << className << "() {" << endl; |
1505 << "{" << endl; | 1505 |
1506 { | 1506 if (java_class->isQObject()) |
1507 //s << " std::cout << \"In shell destructor of " << java_class->name() << ", nativeId: \" << this << std::endl;"; | 1507 s << " destroyEntity(this);"; |
1508 if (java_class->isQObject()) | 1508 //else if (java_class->isPolymorphic()) |
1509 s << " destroyEntity(this);"; | 1509 // s << " qtd_QtdObject_delete(dId);" << endl; |
1510 } | 1510 |
1511 s << "}" << endl << endl; | 1511 s << "}" << endl << endl; |
1512 } | 1512 } |
1513 | 1513 |
1514 void CppImplGenerator::writeCodeInjections(QTextStream &s, const AbstractMetaFunction *java_function, | 1514 void CppImplGenerator::writeCodeInjections(QTextStream &s, const AbstractMetaFunction *java_function, |
1515 const AbstractMetaClass *implementor, CodeSnip::Position position, | 1515 const AbstractMetaClass *implementor, CodeSnip::Position position, |
2383 } | 2383 } |
2384 } | 2384 } |
2385 | 2385 |
2386 void CppImplGenerator::writeFinalDestructor(QTextStream &s, const AbstractMetaClass *cls) | 2386 void CppImplGenerator::writeFinalDestructor(QTextStream &s, const AbstractMetaClass *cls) |
2387 { | 2387 { |
2388 if (cls->hasConstructors()) { | 2388 if (cls->hasConstructors() && cls->isDestructorBase()) { |
2389 s << INDENT << "extern \"C\" DLL_PUBLIC void qtd_" << cls->name() << "_destructor(void *ptr)" << endl | 2389 s << INDENT << "extern \"C\" DLL_PUBLIC void qtd_" << cls->name() << "_delete(void* nativeId)" << endl |
2390 << INDENT << "{" << endl | 2390 << INDENT << "{" << endl |
2391 << INDENT << " delete (" << shellClassName(cls) << " *)ptr;" << endl | 2391 << INDENT << " delete (" << shellClassName(cls) << "*)nativeId;" << endl |
2392 << INDENT << "}" << endl << endl; | 2392 << INDENT << "}" << endl << endl; |
2393 | 2393 |
2394 s << INDENT << "extern \"C\" DLL_PUBLIC void qtd_" << cls->name() << "_call_destructor(" << shellClassName(cls) << " *ptr)" << endl | 2394 s << INDENT << "extern \"C\" DLL_PUBLIC void qtd_" << cls->name() << "_destroy(void* nativeId)" << endl |
2395 << INDENT << "{" << endl | 2395 << INDENT << "{" << endl |
2396 << INDENT << " call_destructor(ptr);" << endl | 2396 << INDENT << " call_destructor((" << shellClassName(cls) << "*)nativeId);" << endl |
2397 << INDENT << "}" << endl << endl; | 2397 << INDENT << "}" << endl << endl; |
2398 } | 2398 } |
2399 } | 2399 } |
2400 | 2400 |
2401 void CppImplGenerator::writeFinalConstructor(QTextStream &s, | 2401 void CppImplGenerator::writeFinalConstructor(QTextStream &s, |