bind


       bind() - change the owner of a function pointer



SYNOPSIS

       function bind(function f, object ob)



DESCRIPTION

       Returns  a function pointer that is exactly the same as f,
       but belongs to the object 'ob' instead of the object  that
       created f.  Useful if the creator of 'f' has been destruc-
       ted, or f is an efun pointer to an efun which  does  some-
       thing to 'this_object'.

       For example:

       void make_living(object ob) {
          function f;

          f = bind( (: enable_commands :), ob );

          evaluate(f); }

       The  effect of the above is the same as if 'ob' itself had
       evaluated the enable_commands() efun.  Note that there are
       security  risks  involved in this, as bind() allows you to
       force another object to run a piece of code.   To  protect
       against  this,  there is a valid_bind() master apply which
       must return 1 or the call to bind() will fail.