@@ -92,27 +92,44 @@ DLEXPORT php3_module_entry *get_module() { return &xml_module_entry; };
92
92
#if PHP_API_VERSION >= 19990421
93
93
#define php3tls_pval_destructor (a ) zval_dtor(a)
94
94
#endif
95
- static pval * php3i_long_pval (long value )
95
+ /* {{{ php3i_long_pval() */
96
+
97
+ PHPAPI pval * php3i_long_pval (long value )
98
+ {
99
+ pval * ret = emalloc (sizeof (pval ));
100
+
101
+ ret -> type = IS_LONG ;
102
+ ret -> value .lval = value ;
103
+ return ret ;
104
+ }
105
+
106
+ /* }}} */
107
+ /* {{{ php3i_double_pval() */
108
+
109
+ PHPAPI pval * php3i_double_pval (double value )
96
110
{
97
- pval * ret = emalloc (sizeof (pval ));
98
-
99
- ret -> type = IS_LONG ;
100
- ret -> value .lval = value ;
101
- INIT_PZVAL (ret );
102
- return ret ;
111
+ pval * ret = emalloc (sizeof (pval ));
112
+
113
+ ret -> type = IS_DOUBLE ;
114
+ ret -> value .dval = value ;
115
+ return ret ;
103
116
}
104
117
105
- static pval * php3i_string_pval (const char * str )
118
+ /* }}} */
119
+ /* {{{ php3i_string_pval() */
120
+
121
+ PHPAPI pval * php3i_string_pval (const char * str )
106
122
{
107
- pval * ret = emalloc (sizeof (pval ));
108
- int len = strlen (str );
109
-
110
- ret -> type = IS_STRING ;
111
- ret -> value .str .len = len ;
112
- INIT_PZVAL (ret );
113
- ret -> value .str .val = estrndup (str , len );
114
- return ret ;
115
- }
123
+ pval * ret = emalloc (sizeof (pval ));
124
+ int len = strlen (str );
125
+
126
+ ret -> type = IS_STRING ;
127
+ ret -> value .str .len = len ;
128
+ ret -> value .str .val = estrndup (str , len );
129
+ return ret ;
130
+ }
131
+
132
+ /* }}} */
116
133
117
134
/* end of UGLY HACK!!! */
118
135
@@ -618,7 +635,21 @@ static int php3i_xmlcharlen(const XML_Char *s)
618
635
}
619
636
620
637
/* }}} */
621
- /* {{{ php3i_add_to_info */
638
+ /* {{{ php3i_pval_strdup() */
639
+
640
+ PHPAPI char * php3i_pval_strdup (pval * val )
641
+ {
642
+ if (val -> type == IS_STRING ) {
643
+ char * buf = emalloc (val -> value .str .len + 1 );
644
+ memcpy (buf , val -> value .str .val , val -> value .str .len );
645
+ buf [val -> value .str .len ] = '\0' ;
646
+ return buf ;
647
+ }
648
+ return NULL ;
649
+ }
650
+
651
+ /* }}} */
652
+ /* {{{ php3i_add_to_info */
622
653
static void php3i_add_to_info (xml_parser * parser ,char * name )
623
654
{
624
655
pval * * element , * values ;
@@ -645,7 +676,7 @@ static void php3i_add_to_info(xml_parser *parser,char *name)
645
676
}
646
677
647
678
/* }}} */
648
- /* {{{ php3i_xml_startElementHandler() */
679
+ /* {{{ php3i_xml_startElementHandler() */
649
680
650
681
void php3i_xml_startElementHandler (void * userData , const char * name ,
651
682
const char * * attributes )
0 commit comments