From: Ted Kremenek Date: Tue, 2 Sep 2008 20:42:52 +0000 (+0000) Subject: RecordDecl serialization: X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6812a7308d521522e6888ae981b6f9cf31d110ac;p=clang RecordDecl serialization: - Don't serialize out the NextDeclarator field. It is unused and deprecated. - Serialize out the NextDecl pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55644 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/DeclSerialization.cpp b/lib/AST/DeclSerialization.cpp index 2ba891005a..82a8fcd0f6 100644 --- a/lib/AST/DeclSerialization.cpp +++ b/lib/AST/DeclSerialization.cpp @@ -449,11 +449,11 @@ void RecordDecl::EmitImpl(Serializer& S) const { ScopedDecl::EmitInRec(S); S.EmitBool(isDefinition()); S.EmitBool(hasFlexibleArrayMember()); + S.EmitPtr(NextDecl); S.EmitSInt(getNumMembers()); if (getNumMembers() > 0) { assert (Members); - S.BatchEmitOwnedPtrs((unsigned) getNumMembers(), - (Decl**) &Members[0],getNextDeclarator()); + S.BatchEmitOwnedPtrs((unsigned) getNumMembers(), (Decl**) &Members[0]); } else ScopedDecl::EmitOutRec(S); @@ -468,17 +468,14 @@ RecordDecl* RecordDecl::CreateImpl(Decl::Kind DK, Deserializer& D, decl->ScopedDecl::ReadInRec(D, C); decl->setDefinition(D.ReadBool()); decl->setHasFlexibleArrayMember(D.ReadBool()); + D.ReadPtr(decl->NextDecl); // Allow backpatching. decl->NumMembers = D.ReadSInt(); if (decl->getNumMembers() > 0) { - Decl* next_declarator; decl->Members = new FieldDecl*[(unsigned) decl->getNumMembers()]; D.BatchReadOwnedPtrs((unsigned) decl->getNumMembers(), - (Decl**) &decl->Members[0], - next_declarator, C); - - decl->setNextDeclarator(cast_or_null(next_declarator)); + (Decl**) &decl->Members[0], C); } else decl->ScopedDecl::ReadOutRec(D, C);