typo
[m6w6/ext-pq] / src / php_pqtypes.c
index 323883c778b264ab852c3c5465f650e674be694f..b1f36cf27e5fb2aa4b6bb2b62c81e7455f26981a 100644 (file)
@@ -54,13 +54,13 @@ static zend_object *php_pqtypes_create_object(zend_class_entry *class_type)
        return &php_pqtypes_create_object_ex(class_type, NULL)->zo;
 }
 
-static void php_pqtypes_object_read_connection(zval *object, void *o, zval *return_value)
+static void php_pqtypes_object_read_connection(void *o, zval *return_value)
 {
        php_pqtypes_object_t *obj = o;
 
        php_pq_object_to_zval(obj->intern->conn, return_value);
 }
-static void php_pqtypes_object_gc_connection(zval *object, void *o, zval *return_value)
+static void php_pqtypes_object_gc_connection(void *o, zval *return_value)
 {
        php_pqtypes_object_t *obj = o;
        zval zconn;
@@ -69,7 +69,7 @@ static void php_pqtypes_object_gc_connection(zval *object, void *o, zval *return
        add_next_index_zval(return_value, &zconn);
 }
 
-static int has_dimension(HashTable *ht, zval *member, zend_string **key, zend_long *index)
+static inline int has_dimension(HashTable *ht, zval *member, zend_string **key, zend_long *index)
 {
        if (Z_TYPE_P(member) == IS_LONG) {
                *index = Z_LVAL_P(member);
@@ -94,9 +94,9 @@ static int has_dimension(HashTable *ht, zval *member, zend_string **key, zend_lo
        }
 }
 
-static int php_pqtypes_object_has_dimension(zval *object, zval *member, int check_empty)
+static inline int php_pqtypes_object_has_dimension_ex(zend_object *object, zval *member, int check_empty)
 {
-       php_pqtypes_object_t *obj = PHP_PQ_OBJ(object, NULL);
+       php_pqtypes_object_t *obj = PHP_PQ_OBJ(NULL, object);
        zend_string *key = NULL;
        zend_long index = 0;
 
@@ -123,10 +123,21 @@ static int php_pqtypes_object_has_dimension(zval *object, zval *member, int chec
 
        return 0;
 }
+#if PHP_VERSION_ID >= 80000
+static int php_pqtypes_object_has_dimension(zend_object *object, zval *member, int check_empty)
+{
+       return php_pqtypes_object_has_dimension_ex(object, member, check_empty);
+}
+#else
+static int php_pqtypes_object_has_dimension(zval *object, zval *member, int check_empty)
+{
+       return php_pqtypes_object_has_dimension_ex(Z_OBJ_P(object), member, check_empty);
+}
+#endif
 
-static zval *php_pqtypes_object_read_dimension(zval *object, zval *member, int type, zval *rv)
+static inline zval *php_pqtypes_object_read_dimension_ex(zend_object *object, zval *member, int type, zval *rv)
 {
-       php_pqtypes_object_t *obj = PHP_PQ_OBJ(object, NULL);
+       php_pqtypes_object_t *obj = PHP_PQ_OBJ(NULL, object);
        zend_string *key = NULL;
        zend_long index = 0;
        zval *data = NULL;
@@ -142,16 +153,41 @@ static zval *php_pqtypes_object_read_dimension(zval *object, zval *member, int t
 
        return data;
 }
+#if PHP_VERSION_ID >= 80000
+static zval *php_pqtypes_object_read_dimension(zend_object *object, zval *member, int type, zval *rv)
+{
+       return php_pqtypes_object_read_dimension_ex(object, member, type, rv);
+}
+#else
+static zval *php_pqtypes_object_read_dimension(zval *object, zval *member, int type, zval *rv)
+{
+       return php_pqtypes_object_read_dimension_ex(Z_OBJ_P(object), member, type, rv);
+}
+#endif
 
+#if PHP_VERSION_ID >= 80000
+static void php_pqtypes_object_write_dimension(zend_object *object, zval *offset, zval *value)
+{
+       throw_exce(EX_RUNTIME, "pq\\Types object must not be modified");
+}
+#else
 static void php_pqtypes_object_write_dimension(zval *object, zval *offset, zval *value)
 {
        throw_exce(EX_RUNTIME, "pq\\Types object must not be modified");
 }
+#endif
 
+#if PHP_VERSION_ID >= 80000
+static void php_pqtypes_object_unset_dimension(zend_object *object, zval *offset)
+{
+       throw_exce(EX_RUNTIME, "pq\\Types object must not be modified");
+}
+#else
 static void php_pqtypes_object_unset_dimension(zval *object, zval *offset)
 {
        throw_exce(EX_RUNTIME, "pq\\Types object must not be modified");
 }
+#endif
 
 ZEND_BEGIN_ARG_INFO_EX(ai_pqtypes_construct, 0, 0, 1)
        ZEND_ARG_OBJ_INFO(0, connection, pq\\Connection, 0)
@@ -180,16 +216,16 @@ static PHP_METHOD(pqtypes, __construct) {
                        zend_hash_init(&obj->intern->types, 512, NULL, ZVAL_PTR_DTOR, 0);
 
                        if (znsp) {
-                               zend_call_method_with_1_params(getThis(), Z_OBJCE_P(getThis()), NULL, "refresh", NULL, znsp);
+                               php_pq_call_method(getThis(), "refresh", 1, NULL, znsp);
                        } else {
-                               zend_call_method_with_0_params(getThis(), Z_OBJCE_P(getThis()), NULL, "refresh", NULL);
+                               php_pq_call_method(getThis(), "refresh", 0, NULL);
                        }
                }
        }
 }
 
 #define PHP_PQ_TYPES_QUERY \
-       "select t.oid, t.* " \
+       "select t.oid, t.typname, t.* " \
        "from pg_type t join pg_namespace n on t.typnamespace=n.oid " \
        "where typisdefined"
 #ifndef PHP_PQ_OID_TEXT