[Mono-list] [review] delegates are cascading.

Dietmar Maurer dietmar@maurer-it.com
11 Mar 2002 15:41:32 +0100


more questions:

A delegate contains the MethodInfo for the static Method it invokes. But
delegates are created by a runtime provided constructor which is called
with 3 arguments:

@this  pointer to the delegate to initialize
@target target object for non static methods, NULL for static methods
@addr   pointer to native code of the function

So how can I obtain the MethodInfo? 

- Dietmar

On Mon, 2002-03-11 at 13:57, Dietmar Maurer wrote:
> Just some questions:
> 
> - why do we need that method_static field (if we need that info we can
> check (m_target == null))
> 
> - how can I call those delegate constructors? All examples I have call
> the runtime provided constructor instead.
> 
> - Dietmar
> 
> 
> On Sat, 2002-03-09 at 10:55, Daniel Stodden wrote:
> > 
> > yay.
> > 
> > attached two lengthy patches over mono/ and mcs/
> > to make MuticastDelegate::Invoke() run smoothly over combined
> > delegates. Remove() is missing but I'll finish that over the next days.
> > 
> > i'm pretty certain it is solid, but since it changes quite 
> > bit in emit-x86..
> > please, if someone review this and tell me whether its okay to check in.
> > 
> > regards,
> > dns
> > 
> > abstract: this removes the array-based approach in favour of a reverse,
> > self-contained linked list. [emit-x86].Invoke() then recurses over the
> > contained links.
> > Why reverse? The docs require Remove() to kill any _last_ occurences of
> > a combination in the current delegate. any other method needs to
> > traverse the whole list anyways, so reversing should keep remove more
> > efficient.
> 
> 
> 
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
-- 
--------------------------------------------------
Dietmar Maurer        Maurer IT Systemlösungen KEG
                                Technischer Leiter

Kohlgasse 51/9             Tel:  +43 1 545 449 711
A - 1050 WIEN              Fax:  +43 1 545 449 722
                         Mobil: +43 699 105 880 32
dietmar@maurer-it.com
http://www.maurer-it.com
---------------------------------------------------