--- Wez Furlong <[EMAIL PROTECTED]> wrote: 
> Looking at the opcode handler for exit, it looks
> like you can call
> zend_bailout() to terminate the request.
> 
> Note that since exit is an opcode and not a
> function,
> call_user_function won't work.

Thank you very much. A similar thought occurred to me
(the fact that the manual refers to die/exit as
keywords and not functions) shortly after writing the
earlier mail.

Since this morning's letter, I chased down the php die
and exit keywords to the (f)lex and yacc/bison files.
There they turned into the T_EXIT define which turned
into a number 297 (the opcode?). This translated in
the language parser yacc file to a call to the
internal zend_do_exit() function. This function takes
two znode pointers, and pulls a pointer to the next
zend_op struct from the active_op_array. It populates
the zend_op struct with information from one of the
znode pointers, fills one of the members with the
ZEND_EXIT opcode, fills other znode with some other
information and then returns. I'm guessing that this
population then triggers the exit as the next
active_op_array is read. It was around then that I was
becoming thoroughly confused figuring out how to call
this function directly.

zend_bailout() is a macro defined to equate to:
_zend_bailout(__FILE__, __LINE__)
Am I right in assuming that the __FILE__ and __LINE__
macros would therefore be filled automatically, and
that this is all that's necessary? If so: Many thanks
once again. Will try it this afternoon.

Cris




        
        
                
___________________________________________________________ALL-NEW Yahoo! Messenger - 
sooooo many all-new ways to express yourself http://uk.messenger.yahoo.com

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to