This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Fri, 21 Aug 1998, Klaus Schilling wrote: > I first wanted to write them in C and poke them through the gh interface, but > as there are only 255 smobs for disposal, I thought that would cause a problem > for some applications, when each widget type gets its own smob type. Or is > there a way around it? First experiments with my menu type showed that > it might load like a frozen snail. In my experience, it's a good solution to have one smob type for each base class only: struct base_class { type_info type; data .... } struct derived_1 { base_class base; additional data...; } Then you can have type predicates for each of the derived types by 1) testing the scheme object to be a base type smob. 2) then, test for base::type_info to be of the appropriate type. This way you avoid to have smobs for each of the derived types. Assuming you have a widget base class, you will only need one smob for all widgets. Best regards, Dirk Herrmann