[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Object binding comments wanted
- From: Shannon Stewman <stew@...>
- Date: Fri, 23 Sep 2005 10:14:12 -0500
On Fri, Sep 23, 2005 at 11:26:03AM +0100, David Given wrote:
> An alternative system is to have a seperate table that represents each
> interface, and have the __index metatable entry for the object itself look up
> each interface in turn. This would be nicely memory-efficient, because all
> the object table needs to store is the list of supported interfaces, but will
> require dropping into Lua code to look up every method call on the object,
> which will be slow. (Rewriting the dispatcher in C would help but I'm still
> not terribly happy.)
I use this for my binding to Gtk's GObject system and haven't found the
results of a C dispatcher to be slow. Behind the scenes, maintain a
table for each class/interface and have the dispatcher look through the
tables in its search through the class hierarchy. This avoids dealing
with non-interned strings, so all your potentially costly string
operations are handled with hashing.
Best,
--
Shannon Stewman | Let us walk through the waning night,
Caught in a whirlpool, | As dawn-rays tickle our toes, the dew soothes
A quartering act: | Our blistered soles, and damp bones stir
Solitude or society? | As crimson cracks under the blue-grey sky.