diff options
Diffstat (limited to 'ext/sqlite3/php_sqlite3_structs.h')
-rw-r--r-- | ext/sqlite3/php_sqlite3_structs.h | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/ext/sqlite3/php_sqlite3_structs.h b/ext/sqlite3/php_sqlite3_structs.h index 5336d116fc..a75b340e2c 100644 --- a/ext/sqlite3/php_sqlite3_structs.h +++ b/ext/sqlite3/php_sqlite3_structs.h @@ -38,12 +38,10 @@ /* Structure for SQLite Statement Parameter. */ struct php_sqlite3_bound_param { - long param_number; - char *name; - int name_len; - long type; - - zval *parameter; + php_int_t param_number; + zend_string *name; + php_int_t type; + zval parameter; }; struct php_sqlite3_fci { @@ -58,7 +56,7 @@ typedef struct _php_sqlite3_func { const char *func_name; int argc; - zval *func, *step, *fini; + zval func, step, fini; struct php_sqlite3_fci afunc, astep, afini; } php_sqlite3_func; @@ -67,13 +65,12 @@ typedef struct _php_sqlite3_collation { struct _php_sqlite3_collation *next; const char *collation_name; - zval *cmp_func; + zval cmp_func; struct php_sqlite3_fci fci; } php_sqlite3_collation; /* Structure for SQLite Database object. */ typedef struct _php_sqlite3_db_object { - zend_object zo; int initialised; sqlite3 *db; php_sqlite3_func *funcs; @@ -82,12 +79,19 @@ typedef struct _php_sqlite3_db_object { zend_bool exception; zend_llist free_list; + zend_object zo; } php_sqlite3_db_object; +static inline php_sqlite3_db_object *php_sqlite3_db_from_obj(zend_object *obj) { + return (php_sqlite3_db_object*)((char*)(obj) - XtOffsetOf(php_sqlite3_db_object, zo)); +} + +#define Z_SQLITE3_DB_P(zv) php_sqlite3_db_from_obj(Z_OBJ_P((zv))) + /* Structure for SQLite Database object. */ typedef struct _php_sqlite3_agg_context { - zval *zval_context; - long row_count; + zval zval_context; + php_int_t row_count; } php_sqlite3_agg_context; typedef struct _php_sqlite3_stmt_object php_sqlite3_stmt; @@ -95,34 +99,46 @@ typedef struct _php_sqlite3_result_object php_sqlite3_result; /* sqlite3 objects to be destroyed */ typedef struct _php_sqlite3_free_list { - zval *stmt_obj_zval; + zval stmt_obj_zval; php_sqlite3_stmt *stmt_obj; } php_sqlite3_free_list; /* Structure for SQLite Result object. */ struct _php_sqlite3_result_object { - zend_object zo; php_sqlite3_db_object *db_obj; php_sqlite3_stmt *stmt_obj; - zval *stmt_obj_zval; + zval stmt_obj_zval; int is_prepared_statement; int complete; + zend_object zo; }; +static inline php_sqlite3_result *php_sqlite3_result_from_obj(zend_object *obj) { + return (php_sqlite3_result*)((char*)(obj) - XtOffsetOf(php_sqlite3_result, zo)); +} + +#define Z_SQLITE3_RESULT_P(zv) php_sqlite3_result_from_obj(Z_OBJ_P((zv))) + /* Structure for SQLite Statement object. */ struct _php_sqlite3_stmt_object { - zend_object zo; sqlite3_stmt *stmt; php_sqlite3_db_object *db_obj; - zval *db_obj_zval; + zval db_obj_zval; int initialised; /* Keep track of the zvals for bound parameters */ HashTable *bound_params; + zend_object zo; }; +static inline php_sqlite3_stmt *php_sqlite3_stmt_from_obj(zend_object *obj) { + return (php_sqlite3_stmt*)((char*)(obj) - XtOffsetOf(php_sqlite3_stmt, zo)); +} + +#define Z_SQLITE3_STMT_P(zv) php_sqlite3_stmt_from_obj(Z_OBJ_P((zv))) + #endif |