don't crash if user extends abstract classes
[m6w6/ext-http] / php_http_client_datashare_curl.c
index 8c62a02bc66b05f36b335054ca5e1a42706f7e2e..161b510f1afadd4c6351346ead6d093883d26d64 100644 (file)
@@ -136,15 +136,22 @@ static php_http_resource_factory_ops_t php_http_curlsh_resource_factory_ops = {
        php_http_curlsh_dtor
 };
 
+static zend_class_entry *get_class_entry(void)
+{
+       return php_http_client_datashare_curl_class_entry;
+}
+
 static php_http_client_datashare_ops_t php_http_client_datashare_curl_ops = {
-               &php_http_curlsh_resource_factory_ops,
-               php_http_client_datashare_curl_init,
-               NULL /* copy */,
-               php_http_client_datashare_curl_dtor,
-               NULL /*reset */,
-               php_http_client_datashare_curl_attach,
-               php_http_client_datashare_curl_detach,
-               php_http_client_datashare_curl_setopt,
+       &php_http_curlsh_resource_factory_ops,
+       php_http_client_datashare_curl_init,
+       NULL /* copy */,
+       php_http_client_datashare_curl_dtor,
+       NULL /*reset */,
+       php_http_client_datashare_curl_attach,
+       php_http_client_datashare_curl_detach,
+       php_http_client_datashare_curl_setopt,
+       (php_http_new_t) php_http_client_datashare_curl_object_new_ex,
+       get_class_entry
 };
 
 PHP_HTTP_API php_http_client_datashare_ops_t *php_http_client_datashare_curl_get_ops(void)
@@ -198,7 +205,7 @@ PHP_MINIT_FUNCTION(http_client_datashare_curl)
                return FAILURE;
        }
 
-       PHP_HTTP_REGISTER_CLASS(http\\Client\\DataShare, CURL, http_client_datashare_curl, php_http_client_datashare_class_entry, 0);
+       PHP_HTTP_REGISTER_CLASS(http\\Client\\DataShare, CURL, http_client_datashare_curl, php_http_client_datashare_get_class_entry(), 0);
        php_http_client_datashare_curl_class_entry->create_object = php_http_client_datashare_curl_object_new;
        return SUCCESS;
 }