diff options
| author | Ted Kremenek <kremenek@apple.com> | 2008-01-29 21:21:30 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2008-01-29 21:21:30 +0000 |
| commit | 15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12 (patch) | |
| tree | efd3cb8cf23992bb6bfc0c55e4b0249f6397b976 | |
| parent | 8d5bfe58441eb935422fc20ce60c5380396e9885 (diff) | |
| download | bcm5719-llvm-15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12.tar.gz bcm5719-llvm-15ad4cf46b6875c1b0a2a89c6521c63b9f84fe12.zip | |
- 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.
llvm-svn: 46529
| -rw-r--r-- | clang/AST/StmtSerialization.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp index 8394dc6ea0d..8e743e6cb7e 100644 --- a/clang/AST/StmtSerialization.cpp +++ b/clang/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<Stmt>(); 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<Expr>(); - Stmt *synchBody = D.ReadOwnedPtr<Stmt>(); - ObjCAtSynchronizedStmt* stmt = new ObjCAtSynchronizedStmt(L,syncExpr,synchBody); - return stmt; -} void ObjCAtTryStmt::EmitImpl(Serializer& S) const { S.Emit(AtTryLoc); |

