From: Ted Kremenek Date: Wed, 7 Nov 2007 22:32:23 +0000 (+0000) Subject: Modified serialization of BinaryOperator and CaseStmt to use the new X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=28f3d80c661c8de51856cfb91131939c866e533c;p=clang Modified serialization of BinaryOperator and CaseStmt to use the new 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 --- diff --git a/AST/StmtSerialization.cpp b/AST/StmtSerialization.cpp index 7c671c6a31..5314dacd61 100644 --- a/AST/StmtSerialization.cpp +++ b/AST/StmtSerialization.cpp @@ -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(D.ReadInt()); SourceLocation OpLoc = SourceLocation::ReadVal(D); QualType Result = QualType::ReadVal(D); - Expr* LHS = D.ReadOwnedPtr(); - Expr* RHS = D.ReadOwnedPtr(); + 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* RHS = D.ReadOwnedPtr(); - Stmt* SubStmt = D.ReadOwnedPtr(); + Expr *LHS, *RHS; + Stmt* SubStmt; + D.BatchReadOwnedPtrs(LHS,RHS,SubStmt); CaseStmt* stmt = new CaseStmt(LHS,RHS,SubStmt,CaseLoc); - stmt->setNextSwitchCase(D.ReadPtr()); - + stmt->setNextSwitchCase(D.ReadPtr()); return stmt; }