From: Ted Kremenek Date: Tue, 29 Jan 2008 21:21:30 +0000 (+0000) Subject: - Hooked up deserialization of ObjCAtSynchronizedStmt Stmt::Create(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b7e6bd7314eaa7812978a4042617916a78340620;p=clang - Hooked up deserialization of ObjCAtSynchronizedStmt Stmt::Create(). - Some minor optimizations of the encoding format for ObjCAtSynchronizedStmt. - Reordered methods so that the deserialization methods for ObjCAtSynchronizedStmt appear in alphabetical order with the corresponding methods of the other AST nodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46529 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 8394dc6ea0..8e743e6cb7 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -161,6 +161,9 @@ Stmt* Stmt::Create(Deserializer& D) { case ObjCAtFinallyStmtClass: return ObjCAtFinallyStmt::CreateImpl(D); + + case ObjCAtSynchronizedStmtClass: + return ObjCAtSynchronizedStmt::CreateImpl(D); case ObjCAtThrowStmtClass: return ObjCAtThrowStmt::CreateImpl(D); @@ -883,6 +886,20 @@ ObjCAtFinallyStmt* ObjCAtFinallyStmt::CreateImpl(Deserializer& D) { return new ObjCAtFinallyStmt(Loc,AtFinallyStmt); } +void ObjCAtSynchronizedStmt::EmitImpl(Serializer& S) const { + S.Emit(AtSynchronizedLoc); + S.BatchEmitOwnedPtrs(SynchExpr, SynchBody); +} + +ObjCAtSynchronizedStmt* ObjCAtSynchronizedStmt::CreateImpl(Deserializer& D) { + SourceLocation L = SourceLocation::ReadVal(D); + Expr *syncExpr; + Stmt *synchBody; + D.BatchReadOwnedPtrs(syncExpr, synchBody); + ObjCAtSynchronizedStmt* stmt = new ObjCAtSynchronizedStmt(L,syncExpr,synchBody); + return stmt; +} + void ObjCAtThrowStmt::EmitImpl(Serializer& S) const { S.Emit(AtThrowLoc); S.EmitOwnedPtr(Throw); @@ -893,20 +910,6 @@ ObjCAtThrowStmt* ObjCAtThrowStmt::CreateImpl(Deserializer& D) { Stmt* Throw = D.ReadOwnedPtr(); return new ObjCAtThrowStmt(L,Throw); } - -void ObjCAtSynchronizedStmt::EmitImpl(Serializer& S) const { - S.Emit(AtSynchronizedLoc); - S.EmitOwnedPtr(SynchExpr); - S.EmitOwnedPtr(SynchBody); -} - -ObjCAtSynchronizedStmt* ObjCAtSynchronizedStmt::CreateImpl(Deserializer& D) { - SourceLocation L = SourceLocation::ReadVal(D); - Expr *syncExpr = D.ReadOwnedPtr(); - Stmt *synchBody = D.ReadOwnedPtr(); - ObjCAtSynchronizedStmt* stmt = new ObjCAtSynchronizedStmt(L,syncExpr,synchBody); - return stmt; -} void ObjCAtTryStmt::EmitImpl(Serializer& S) const { S.Emit(AtTryLoc);