[DGD] Re: Couple DGD questions
E. Harte
harte at xs4all.nl
Thu Jun 11 09:40:56 CEST 1998
On Wed, 10 Jun 1998, Frank Schmidt wrote:
[...]
> In the auto object, a static function behaves like a kernel function
> (kfun) _too_: It cannot be accessed by call_other(this_object(),
> "kfun_func"), _and_ calls to it in the auto object are _not_ redirected
> to any masked function in this_object(). This is true for ALL static
> functionnames in the auto object, not just the default functions
> specified by the driver you happen to override.
I'd like to have confirmation or denial of the last part from Dworkin, as
most definitely remember there being a difference between using a 'pure'
kfun in the auto-object and a static function that happened to be defined
in the auto-object.
[...]
> > <auto-object>
> > static int
> > valid_write(string filename)
> > {
> > }
> >
> > static void
> > write_file(string filename)
> > {
> > }
> > </auto-object>
> >
> > <other-object>
> > static int
> > valid_write(string filename)
> > {
> > return 1; /* of course ;) */
> > }
> > </other-object>
>
> No, sorry, but this will not disable his security IF the security call is
> made in the auto object, but it will override the call made in an
> inherited program.
Oh? Again, I'd like confirmation of this. (Or else I'll go check the
sources myself this weekend. *grin*)
[...]
> > Sometimes I wish there was a way to make static functions in the auto-
> > object behave the same way without having to nomask them. :-)
>
> Nomasking a function makes it impossible to overload in an inheriting
> program. However, that is not the same as static, private or kfun, since
> you can still access a nomasked function!
>
> And.. Your wishes have come true! It is possible to make the functions
> behave like kfuns, just declare them static in the auto object. And it is
> VERY convinient, flexible and elegant. :)
*points at previous comments*
[...]
> Maybe, but I too missed that point. Any ref. to where in the docs this is
> explained?
+--- Quoting from doc/Introduction ---
| void create()
|
| Called in an object which has just been cloned, or if it is not a
| clone, just before a function is called in it for the first time.
| The actual name of this function is configurable.
+---
[...]
Erwin -- Now, coffee!
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list