Mercurial > projects > qtd
comparison generator/abstractmetabuilder.cpp @ 257:17b5e13364b7 lifetime
(none)
author | maxter |
---|---|
date | Wed, 16 Sep 2009 13:56:02 +0000 |
parents | ae34188ddd84 |
children | 515d6e1c7b10 |
comparison
equal
deleted
inserted
replaced
256:b1abe7f57321 | 257:17b5e13364b7 |
---|---|
1308 } else if (meta_function->isConstructor() && !meta_function->isPrivate()) { | 1308 } else if (meta_function->isConstructor() && !meta_function->isPrivate()) { |
1309 *meta_class -= AbstractMetaAttributes::Final; | 1309 *meta_class -= AbstractMetaAttributes::Final; |
1310 meta_class->setHasNonPrivateConstructor(true); | 1310 meta_class->setHasNonPrivateConstructor(true); |
1311 } | 1311 } |
1312 | 1312 |
1313 // Classes with virtual destructors should always have a shell class | 1313 if (meta_function->isDestructor() && !meta_function->isFinal()) |
1314 // (since we aren't registering the destructors, we need this extra check) | 1314 meta_class->setHasVirtualDestructor(true); |
1315 if (meta_function->isDestructor() && !meta_function->isFinal()) | |
1316 meta_class->setForceShellClass(true); | |
1317 | 1315 |
1318 if (!meta_function->isDestructor() | 1316 if (!meta_function->isDestructor() |
1319 && !meta_function->isInvalid() | 1317 && !meta_function->isInvalid() |
1320 && (!meta_function->isConstructor() || !meta_function->isPrivate())) { | 1318 && (!meta_function->isConstructor() || !meta_function->isPrivate())) { |
1321 | 1319 |
1561 if (cc_pos > 0) | 1559 if (cc_pos > 0) |
1562 stripped_class_name = stripped_class_name.mid(cc_pos + 2); | 1560 stripped_class_name = stripped_class_name.mid(cc_pos + 2); |
1563 | 1561 |
1564 TypeInfo function_type = function_item->type(); | 1562 TypeInfo function_type = function_item->type(); |
1565 if (function_name.startsWith('~')) { | 1563 if (function_name.startsWith('~')) { |
1566 meta_function->setFunctionType(AbstractMetaFunction::DestructorFunction); | 1564 meta_function->setFunctionType(AbstractMetaFunction::DestructorFunction); |
1567 meta_function->setInvalid(true); | 1565 //meta_function->setInvalid(true); |
1568 } else if (strip_template_args(function_name) == stripped_class_name) { | 1566 } else if (strip_template_args(function_name) == stripped_class_name) { |
1569 meta_function->setFunctionType(AbstractMetaFunction::ConstructorFunction); | 1567 meta_function->setFunctionType(AbstractMetaFunction::ConstructorFunction); |
1570 meta_function->setName(m_current_class->name()); | 1568 meta_function->setName(m_current_class->name()); |
1571 } else { | 1569 } else { |
1572 bool ok; | 1570 bool ok; |