Embed PHP

This is a discussion on Embed PHP within the PHP General forums, part of the PHP Programming Forums category; Currently I am trying to get embed PHP to work. A nice C-application that can handle PHP-scripts. I ...


Go Back   Usenet Forums > PHP Programming Forums > PHP General

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-16-2005
Patric Stout
 
Posts: n/a
Default Embed PHP

Currently I am trying to get embed PHP to work. A nice C-application
that can handle PHP-scripts. I hope this is the right place to ask
question about it...

First of all, there is very poor documentation about this subject on the
web. Even the Zend-docs are outdated. This doesn't make it easier. But
anyway, I have a real problem, which I can't fix... I hope one of you
know what to do about it:

most of the code works, it loads a script, runs it, and it stops when I
want it to. Now I want to register functions on the fly. This is the
part where it goes wrong.

I run a:

zend_register_functions(NULL, add_func_array, CG(function_table),
MODULE_PERSISTENT);

two times, some cycles after the zend_execute_file is called (more
exact: it is done on user-request), every time with an other
function-name. Now I can call both functions from PHP, that works. But
now when I close my application, it crashes. Glibc gives me an error
that a pointer is tried to free'd twice. Here the GDB output:

#0 0x0000002a95e009b9 in raise () from /lib/tls/libc.so.6
#1 0x0000002a95e01fff in abort () from /lib/tls/libc.so.6
#2 0x0000002a95e3be7b in mallopt () from /lib/tls/libc.so.6
#3 0x0000002a95e39a22 in free () from /lib/tls/libc.so.6
#4 0x0000002a9760d1c0 in _efree () from /usr/lib/libphp5.so
#5 0x0000002a97619e36 in destroy_op_array () from /usr/lib/libphp5.so
#6 0x0000002a97619beb in destroy_zend_function () from /usr/lib/libphp5.so
#7 0x0000002a97619bf9 in zend_function_dtor () from /usr/lib/libphp5.so
#8 0x0000002a97627c2f in zend_hash_destroy () from /usr/lib/libphp5.so
#9 0x0000002a97620be3 in zend_shutdown () from /usr/lib/libphp5.s

I tried almost everything, and I am running out of ideas.. is this a
bug, or is it not allowed to add functions on the fly to the same
hash-table, or...

Of course I tried many many scenarios to isolate the problem. It works
all pretty and nice, as long as I register all the functions BEFORE
running zend_execute_file. I want to add functions after that time.
Nowhere in the source I can see such restriction, and I see no reason
why it should not work.. I hope you guys can help me.

Oh, one more note: I am running 64-bit linux, maybe that has something
to do with it..


Tnx for your time,

Patric Stout
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 10:17 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0