From bc76297674a56c4dd182443d4ce817c4561fef50 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 26 Jul 2008 01:53:50 +0000 Subject: make DeclSpec manage its own protocol qualifier list memory instead of having clients allocate the memory and it delete it. llvm-svn: 54087 --- clang/lib/Parse/ParseDecl.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'clang/lib/Parse/ParseDecl.cpp') diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 98c2d897d5d..5ed1a61769e 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -435,12 +435,11 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { ParseObjCProtocolReferences(ProtocolRefs, EndProtoLoc); // FIXME: New'ing this here seems wrong, why not have the action do it? - llvm::SmallVector *ProtocolDecl = - new llvm::SmallVector; - DS.setProtocolQualifiers(ProtocolDecl); + llvm::SmallVector ProtocolDecl; Actions.FindProtocolDeclaration(Loc, &ProtocolRefs[0], ProtocolRefs.size(), - *ProtocolDecl); + ProtocolDecl); + DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size()); DS.SetRangeEnd(EndProtoLoc); @@ -576,12 +575,11 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { SourceLocation EndProtoLoc; llvm::SmallVector ProtocolRefs; ParseObjCProtocolReferences(ProtocolRefs, EndProtoLoc); - llvm::SmallVector *ProtocolDecl = - new llvm::SmallVector; - DS.setProtocolQualifiers(ProtocolDecl); + llvm::SmallVector ProtocolDecl; Actions.FindProtocolDeclaration(Loc, &ProtocolRefs[0], ProtocolRefs.size(), - *ProtocolDecl); + ProtocolDecl); + DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size()); DS.SetRangeEnd(EndProtoLoc); Diag(Loc, diag::warn_objc_protocol_qualifier_missing_id, -- cgit v1.2.3