summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/ASTClone.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-02-06 15:47:46 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-02-07 10:49:03 +0100
commit7b913f7fa2e1a372177fe6ddff05d90b8b6827b8 (patch)
tree92275b1eed5fd5d357472b4279b13ce80ae4bb03 /src/shared/cplusplus/ASTClone.cpp
parent21488e8898b1aaf5d33b3a33b488e2e280219f06 (diff)
downloadqt-creator-7b913f7fa2e1a372177fe6ddff05d90b8b6827b8.tar.gz
Changed Q_PROPERTY parsing and AST storage.
Diffstat (limited to 'src/shared/cplusplus/ASTClone.cpp')
-rw-r--r--src/shared/cplusplus/ASTClone.cpp51
1 files changed, 25 insertions, 26 deletions
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp
index 68b907cdcf..183cce037a 100644
--- a/src/shared/cplusplus/ASTClone.cpp
+++ b/src/shared/cplusplus/ASTClone.cpp
@@ -138,6 +138,28 @@ AccessDeclarationAST *AccessDeclarationAST::clone(MemoryPool *pool) const
return ast;
}
+QtPropertyDeclarationNamingItemAST *QtPropertyDeclarationNamingItemAST::clone(MemoryPool *pool) const
+{
+ QtPropertyDeclarationNamingItemAST *ast = new (pool) QtPropertyDeclarationNamingItemAST;
+ if (name_value)
+ ast->name_value = name_value->clone(pool);
+ return ast;
+}
+
+QtPropertyDeclarationBoolItemAST *QtPropertyDeclarationBoolItemAST::clone(MemoryPool *pool) const
+{
+ QtPropertyDeclarationBoolItemAST *ast = new (pool) QtPropertyDeclarationBoolItemAST;
+ if (bool_value)
+ ast->bool_value = bool_value->clone(pool);
+ return ast;
+}
+
+QtPropertyDeclarationFlaggingItemAST *QtPropertyDeclarationFlaggingItemAST::clone(MemoryPool *pool) const
+{
+ QtPropertyDeclarationFlaggingItemAST *ast = new (pool) QtPropertyDeclarationFlaggingItemAST;
+ return ast;
+}
+
QtPropertyDeclarationAST *QtPropertyDeclarationAST::clone(MemoryPool *pool) const
{
QtPropertyDeclarationAST *ast = new (pool) QtPropertyDeclarationAST;
@@ -147,32 +169,9 @@ QtPropertyDeclarationAST *QtPropertyDeclarationAST::clone(MemoryPool *pool) cons
ast->type_id = type_id->clone(pool);
if (property_name)
ast->property_name = property_name->clone(pool);
- ast->read_token = read_token;
- if (read_function)
- ast->read_function = read_function->clone(pool);
- ast->write_token = write_token;
- if (write_function)
- ast->write_function = write_function->clone(pool);
- ast->reset_token = reset_token;
- if (reset_function)
- ast->reset_function = reset_function->clone(pool);
- ast->notify_token = notify_token;
- if (notify_function)
- ast->notify_function = notify_function->clone(pool);
- ast->designable_token = designable_token;
- if (designable_value)
- ast->designable_value = designable_value->clone(pool);
- ast->scriptable_token = scriptable_token;
- if (scriptable_value)
- ast->scriptable_value = scriptable_value->clone(pool);
- ast->stored_token = stored_token;
- if (stored_value)
- ast->stored_value = stored_value->clone(pool);
- ast->user_token = user_token;
- if (user_value)
- ast->user_value = user_value->clone(pool);
- ast->constant_token = constant_token;
- ast->final_token = final_token;
+ for (QtPropertyDeclarationItemListAST *iter = property_declaration_items, **ast_iter = &ast->property_declaration_items;
+ iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
+ *ast_iter = new (pool) QtPropertyDeclarationItemListAST((iter->value) ? iter->value->clone(pool) : 0);
ast->rparen_token = rparen_token;
return ast;
}