X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_message_object.c;h=7d4530da6067b3eee99b2f302e7019736e229983;hb=bbe81747963aa5b1bd27dff95f923b6b446f5a04;hp=31ba73f3241d139fb69dd5b6eee7e8b5888219d0;hpb=f9e9575f957d183ac3637fe850a922e88590511c;p=m6w6%2Fext-http diff --git a/http_message_object.c b/http_message_object.c index 31ba73f..7d4530d 100644 --- a/http_message_object.c +++ b/http_message_object.c @@ -600,6 +600,10 @@ PHP_METHOD(HttpMessage, fromString) if (class_name && *class_name) { ce = zend_fetch_class(class_name, class_length, ZEND_FETCH_CLASS_DEFAULT TSRMLS_CC); + if (ce && !instanceof_function(ce, http_message_object_ce TSRMLS_CC)) { + http_error_ex(HE_WARNING, HTTP_E_RUNTIME, "Class %s does not extend HttpMessage", class_name); + ce = NULL; + } } if (ce) { ZVAL_OBJVAL(return_value, http_message_object_new_ex(ce, msg, NULL)); @@ -1104,7 +1108,7 @@ PHP_METHOD(HttpMessage, detach) zend_hash_copy(&msg->hdrs, &obj->message->hdrs, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); phpstr_append(&msg->body, PHPSTR_VAL(obj->message), PHPSTR_LEN(obj->message)); - RETURN_OBJVAL(http_message_object_new_ex(Z_OBJCE_P(getThis()), msg, NULL)); + ZVAL_OBJVAL(return_value, http_message_object_new_ex(Z_OBJCE_P(getThis()), msg, NULL)); } /* }}} */