[cfe-commits] r61163 - /cfe/trunk/lib/AST/ASTContext.cpp

Fariborz Jahanian fjahanian at apple.com
Wed Dec 17 14:42:45 PST 2008


On Dec 17, 2008, at 2:30 PM, Nuno Lopes wrote:

> Author: nlopes
> Date: Wed Dec 17 16:30:25 2008
> New Revision: 61163
>
> URL: http://llvm.org/viewvc/llvm-project?rev=61163&view=rev
> Log:
> fix a few more memory leaks: clean the ASTRecordLayouts,  
> ASTObjCInterfaces and ASTRecordForInterface maps
>
> Modified:
>    cfe/trunk/lib/AST/ASTContext.cpp
>
> Modified: cfe/trunk/lib/AST/ASTContext.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=61163&r1=61162&r2=61163&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- cfe/trunk/lib/AST/ASTContext.cpp (original)
> +++ cfe/trunk/lib/AST/ASTContext.cpp Wed Dec 17 16:30:25 2008
> @@ -48,6 +48,33 @@
>     Types.pop_back();
>   }
>
> +  {
> +    llvm::DenseMap<const RecordDecl*, const  
> ASTRecordLayout*>::iterator
> +      I = ASTRecordLayouts.begin(), E = ASTRecordLayouts.end();
> +    while (I != E) {
> +      ASTRecordLayout *R = const_cast<ASTRecordLayout*>((I++)- 
> >second);
> +      delete R;
> +    }
> +  }
> +
> +  {
> +    llvm::DenseMap<const ObjCInterfaceDecl*, const  
> ASTRecordLayout*>::iterator
> +      I = ASTObjCInterfaces.begin(), E = ASTObjCInterfaces.end();
> +    while (I != E) {
> +      ASTRecordLayout *R = const_cast<ASTRecordLayout*>((I++)- 
> >second);
> +      delete R;
> +    }
> +  }
> +
> +  {
> +    llvm::DenseMap<const ObjCInterfaceDecl*, const  
> RecordDecl*>::iterator
> +      I = ASTRecordForInterface.begin(), E =  
> ASTRecordForInterface.end();
> +    while (I != E) {
> +      RecordDecl *R = const_cast<RecordDecl*>((I++)->second);
> +      R->Destroy(*this);

Is this correct Nuno?

- Fariborz

>



More information about the cfe-commits mailing list