forked from OSchip/llvm-project
objc rewriter - my last patch was not quite right.
Fixed again. // rdar://9846759 llvm-svn: 136550
This commit is contained in:
parent
bce9ee2ae6
commit
d560ed7f1b
|
@ -4253,14 +4253,17 @@ std::string RewriteObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i,
|
|||
S += "*src) {";
|
||||
for (llvm::SmallPtrSet<ValueDecl*,8>::iterator I = ImportedBlockDecls.begin(),
|
||||
E = ImportedBlockDecls.end(); I != E; ++I) {
|
||||
ValueDecl *VD = (*I);
|
||||
S += "_Block_object_assign((void*)&dst->";
|
||||
S += (*I)->getNameAsString();
|
||||
S += ", (void*)src->";
|
||||
S += (*I)->getNameAsString();
|
||||
if (BlockByRefDeclsPtrSet.count((*I)))
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_BYREF) + "/*BLOCK_FIELD_IS_BYREF*/);";
|
||||
else
|
||||
else if (VD->getType()->isBlockPointerType())
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_BLOCK) + "/*BLOCK_FIELD_IS_BLOCK*/);";
|
||||
else
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_OBJECT) + "/*BLOCK_FIELD_IS_OBJECT*/);";
|
||||
}
|
||||
S += "}\n";
|
||||
|
||||
|
@ -4271,12 +4274,15 @@ std::string RewriteObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i,
|
|||
S += "*src) {";
|
||||
for (llvm::SmallPtrSet<ValueDecl*,8>::iterator I = ImportedBlockDecls.begin(),
|
||||
E = ImportedBlockDecls.end(); I != E; ++I) {
|
||||
ValueDecl *VD = (*I);
|
||||
S += "_Block_object_dispose((void*)src->";
|
||||
S += (*I)->getNameAsString();
|
||||
if (BlockByRefDeclsPtrSet.count((*I)))
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_BYREF) + "/*BLOCK_FIELD_IS_BYREF*/);";
|
||||
else
|
||||
else if (VD->getType()->isBlockPointerType())
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_BLOCK) + "/*BLOCK_FIELD_IS_BLOCK*/);";
|
||||
else
|
||||
S += ", " + utostr(BLOCK_FIELD_IS_OBJECT) + "/*BLOCK_FIELD_IS_OBJECT*/);";
|
||||
}
|
||||
S += "}\n";
|
||||
return S;
|
||||
|
|
Loading…
Reference in New Issue