aboutsummaryrefslogtreecommitdiff
path: root/lib/Rewrite/RewriteModernObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-03-16 21:43:45 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-03-16 21:43:45 +0000
commitb655bf06d99bbdb58de5d012642b87cabddabd83 (patch)
treec4e986fca32f92b9ae49d39d7c16ecf473bcf7f3 /lib/Rewrite/RewriteModernObjC.cpp
parent542125f84d63864b6f7abbed61576a5dffecd097 (diff)
Minor clean up of my last patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Rewrite/RewriteModernObjC.cpp')
-rw-r--r--lib/Rewrite/RewriteModernObjC.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/Rewrite/RewriteModernObjC.cpp b/lib/Rewrite/RewriteModernObjC.cpp
index ab5a476510..d59fb43008 100644
--- a/lib/Rewrite/RewriteModernObjC.cpp
+++ b/lib/Rewrite/RewriteModernObjC.cpp
@@ -1716,16 +1716,14 @@ Stmt *RewriteModernObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S)
buf += "try ";
ReplaceText(rparenLoc, 1, buf);
- SourceLocation startLBraceLoc = S->getSynchBody()->getLocEnd();
- const char *startLBraceBuf = SM->getCharacterData(startLBraceLoc);
-
- assert((*startLBraceBuf == '}') && "bogus @synchronized block");
-
- SourceLocation lastCurlyLoc = startLBraceLoc;
+ SourceLocation startRBraceLoc = S->getSynchBody()->getLocEnd();
+ const char *startRBraceBuf = SM->getCharacterData(startRBraceLoc);
+ assert((*startRBraceBuf == '}') && "bogus @synchronized block");
buf = "} catch (id e) {_rethrow = e;}\n";
Write_RethrowObject(buf);
+ // produce objc_sync_exit(expr);
std::string syncBuf;
syncBuf += "\n\tobjc_sync_exit(";
@@ -1748,7 +1746,7 @@ Stmt *RewriteModernObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S)
buf += "}\n";
buf += "}\n";
- ReplaceText(lastCurlyLoc, 1, buf);
+ ReplaceText(startRBraceLoc, 1, buf);
return 0;
}