[cfe-commits] r41801 - in /cfe/trunk: AST/Decl.cpp	Parse/ParseObjc.cpp	Sema/Sema.h	Sema/SemaDecl.cpp	include/clang/AST/Decl.h	include/clang/Parse/Action.h	include/clang/Parse/Parser.h
    Steve Naroff 
    snaroff at apple.com
       
    Mon Sep 10 16:02:10 PDT 2007
    
    
  
On Sep 10, 2007, at 2:19 PM, Chris Lattner wrote:
>
> On Sep 10, 2007, at 1:47 PM, Devang Patel wrote:
>
>>
>> On Sep 10, 2007, at 1:33 PM, Fariborz Jahanian wrote:
>>
>>> +  /// Insert collected methods declarations into the @interface
>>> object.
>>> +  Actions.ObjcAddMethodsToClass(interfaceDecl, &allMethods[0],
>>> allMethods.size());
>> ...
>>> +void Sema::ObjcAddMethodsToClass(DeclTy *ClassDecl,
>>> +				 DeclTy **allMethods, unsigned allNum) {
>>
>> Is there a reason to not pass SmallVector reference directly ?
>
> Passing it like this allows the implementation in the client to not
> use a smallvector: it could use a vector or a C array if it chose to.
>
Isn't ownership the key API issue here?
That is, even if we passed in the SmallVector, it is typically a  
short-lived stack object. This means the Action hook would still need  
extract all the elements from the SmallVector (which is what passing  
the <DeclTy **, unsigned> tuple is doing.
It seems like handing the SmallVector directly to the actions method  
is more error prone (not simply an issue of choice).
snaroff
> -Chris
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
    
    
More information about the cfe-commits
mailing list