+ if (!header_ce) {
+ RETURN_ZVAL(header, 1, 1);
+ } else if (instanceof_function(header_ce, php_http_header_get_class_entry() TSRMLS_CC)) {
+ zval *header_name, **argv[2];
+
+ MAKE_STD_ZVAL(header_name);
+ ZVAL_STRINGL(header_name, header_str, header_len, 1);
+ Z_ADDREF_P(header);
+
+ argv[0] = &header_name;
+ argv[1] = &header;
+
+ object_init_ex(return_value, header_ce);
+ php_http_method_call(return_value, ZEND_STRL("__construct"), 2, argv, NULL TSRMLS_CC);
+
+ zval_ptr_dtor(&header_name);
+ zval_ptr_dtor(&header);
+
+ return;
+ } else {
+ php_http_error(HE_WARNING, PHP_HTTP_E_INVALID_PARAM, "Class '%s' is not as descendant of http\\Header", header_ce->name);
+ }