3232
3333/* Class entry pointers */
3434PHPAPI zend_class_entry * pdo_dbh_sqlite_ptr ;
35+ PHPAPI zend_class_entry * ce_pdo ;
3536
3637/* {{{ pdo_sqlite_functions[] */
3738static const zend_function_entry pdo_sqlite_functions [] = {
@@ -82,12 +83,19 @@ PHP_MINIT_FUNCTION(pdo_sqlite)
8283 REGISTER_PDO_CLASS_CONST_LONG ("SQLITE_ATTR_READONLY_STATEMENT" , (zend_long )PDO_SQLITE_ATTR_READONLY_STATEMENT );
8384 REGISTER_PDO_CLASS_CONST_LONG ("SQLITE_ATTR_EXTENDED_RESULT_CODES" , (zend_long )PDO_SQLITE_ATTR_EXTENDED_RESULT_CODES );
8485
86+ zend_class_entry * pce ;
8587 zend_class_entry ce_sqlite ;
88+
89+ if ((pce = zend_hash_str_find_ptr (CG (class_table ), "pdo" , sizeof ("PDO" ) - 1 )) == NULL ) {
90+ return SUCCESS ; /* SimpleXML must be initialized before */
91+ }
92+
93+ ce_pdo = pce ;
8694 INIT_CLASS_ENTRY (ce_sqlite , "PDOSQLite" , pdo_sqlite_functions );
8795 // The Reflection extension manges to set serialize and unserialize *before* calling
8896 // zend_register_internal_class(). I couldn't make that work (something to do with
8997 // pointers/references?) so have had to put them after.
90- pdo_dbh_sqlite_ptr = zend_register_internal_class (& ce_sqlite , pdo_pdh_ce ); // @TODO Second parameter doesn't resolve
98+ pdo_dbh_sqlite_ptr = zend_register_internal_class_ex (& ce_sqlite , ce_pdo ); // @TODO Second parameter doesn't resolve
9199 pdo_dbh_sqlite_ptr -> serialize = zend_class_serialize_deny ;
92100 pdo_dbh_sqlite_ptr -> unserialize = zend_class_unserialize_deny ;
93101 zend_declare_property_string (pdo_dbh_sqlite_ptr , "name" , sizeof ("name" )- 1 , "" , ZEND_ACC_PUBLIC );
@@ -113,21 +121,4 @@ PHP_MINFO_FUNCTION(pdo_sqlite)
113121 php_info_print_table_row (2 , "SQLite Library" , sqlite3_libversion ());
114122 php_info_print_table_end ();
115123}
116- /* }}} */
117-
118- ///* {{{ spl_register_sub_class */
119- //PHPAPI void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry * parent_ce, char * class_name, void *obj_ctor, const zend_function_entry * function_list)
120- //{
121- // zend_class_entry ce;
122- //
123- // INIT_CLASS_ENTRY_EX(ce, class_name, strlen(class_name), function_list);
124- // *ppce = zend_register_internal_class_ex(&ce, parent_ce);
125- //
126- // /* entries changed by initialize */
127- // if (obj_ctor) {
128- // (*ppce)->create_object = obj_ctor;
129- // } else {
130- // (*ppce)->create_object = parent_ce->create_object;
131- // }
132- //}
133- ///* }}} */
124+ /* }}} */
0 commit comments