]> granicus.if.org Git - clang/commitdiff
Modified serialization of BinaryOperator and CaseStmt to use the new
authorTed Kremenek <kremenek@apple.com>
Wed, 7 Nov 2007 22:32:23 +0000 (22:32 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 7 Nov 2007 22:32:23 +0000 (22:32 +0000)
BatchEmitOwnedPtrs() and BatchReadOwnedPtrs() methods.

Modified serialization of all Stmts to start their own record in the bitstream.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43846 91177308-0d34-0410-b5e6-96231b3b80d8

AST/StmtSerialization.cpp

index 7c671c6a31c9bbcdd3b25b0b463d7d220c07b828..5314dacd6108f2ef10bee55b375c22d70bdb3a6c 100644 (file)
@@ -19,6 +19,7 @@
 using namespace clang;
 
 void Stmt::Emit(llvm::Serializer& S) const {
+  S.FlushRecord();
   S.EmitInt(getStmtClass());
   directEmit(S);
 }  
@@ -112,16 +113,16 @@ void BinaryOperator::directEmit(llvm::Serializer& S) const {
   S.EmitInt(Opc);
   S.Emit(OpLoc);;
   S.Emit(getType());
-  S.EmitOwnedPtr(getLHS());
-  S.EmitOwnedPtr(getRHS());
+  S.BatchEmitOwnedPtrs(getLHS(),getRHS());
 }
 
 BinaryOperator* BinaryOperator::directMaterialize(llvm::Deserializer& D) {
   Opcode Opc = static_cast<Opcode>(D.ReadInt());
   SourceLocation OpLoc = SourceLocation::ReadVal(D);
   QualType Result = QualType::ReadVal(D);
-  Expr* LHS = D.ReadOwnedPtr<Expr>();
-  Expr* RHS = D.ReadOwnedPtr<Expr>();
+  Expr *LHS, *RHS;
+  D.BatchReadOwnedPtrs(LHS,RHS);
+
   return new BinaryOperator(LHS,RHS,Opc,Result,OpLoc);
 }
 
@@ -136,21 +137,18 @@ BreakStmt* BreakStmt::directMaterialize(llvm::Deserializer& D) {
   
 void CaseStmt::directEmit(llvm::Serializer& S) const {
   S.Emit(CaseLoc);
-  S.EmitOwnedPtr(getLHS());
-  S.EmitOwnedPtr(getRHS());
-  S.EmitOwnedPtr(getSubStmt());
   S.EmitPtr(getNextSwitchCase());
+  S.BatchEmitOwnedPtrs(getLHS(),getRHS(),getSubStmt());
 }
 
 CaseStmt* CaseStmt::directMaterialize(llvm::Deserializer& D) {
   SourceLocation CaseLoc = SourceLocation::ReadVal(D);
-  Expr* LHS = D.ReadOwnedPtr<Expr>();
-  Expr* RHS = D.ReadOwnedPtr<Expr>();
-  Stmt* SubStmt = D.ReadOwnedPtr<Stmt>();
+  Expr *LHS, *RHS;
+  Stmt* SubStmt;
+  D.BatchReadOwnedPtrs(LHS,RHS,SubStmt);
   
   CaseStmt* stmt = new CaseStmt(LHS,RHS,SubStmt,CaseLoc);
-  stmt->setNextSwitchCase(D.ReadPtr<SwitchCase>());
-  
+  stmt->setNextSwitchCase(D.ReadPtr<SwitchCase>());  
   return stmt;
 }