Hi all,

I'm writing a PHP module for repat, a C-based RDF parser, very similar to expat, in 
fact it uses expat
but for RDF statements.

Maybe some of you with a lot of experience in writing modules can help me with my 
problem

I have a C variable, a pointer with say X and when I pass the pointer to a function it 
receives not X but
something else. 

This is a dump of a silly gdb session showing the problem (using the binary php)
See how report_start_element receies an rdf_parser and that rdf_parser->user_data is 
0x81970c

Then this code is executed:

if( rdf_parser->start_element_handler )
        {
            ( *rdf_parser->start_element_handler )(
                rdf_parser->user_data,
                name,
                attributes );
        }

and parser_my_start_element (the function acting as start_element_handler) receives  
0x1cd (???!!)

This is the dump

Breakpoint 1, report_start_element (rdf_parser=0x81f9a58, name=0x81fa714 "html", 
attributes=0x81f9ce0) at rdfparse.c:1292
1292        if( rdf_parser->start_element_handler )
(gdb) s
1294            ( *rdf_parser->start_element_handler )(
(gdb) p rdf_parser->user_data
$12 = (void *) 0x81f970c
(gdb) s
Breakpoint 2, parser_my_start_element_handler (user_data=0x1cd, name=0x81fa714 "html", 
attributes=0x81f9ce0) at repat.c:653

If someone can give me a tip about what may be happening then I'd get back to continue 
the module, after this problem it should be
ready next week since everything was on wheels until now.

Thanks for your help!

Garland


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.362 / Virus Database: 199 - Release Date: 5/8/02

Reply via email to