- Provide appropriate way to destroy internal zval's.

- Allow internal zval's of type string and disallow complex types.
- Define the default string for extensions at class level instead of ctor.
This commit is contained in:
Marcus Boerger 2003-08-24 17:32:47 +00:00
parent cec053f707
commit 19ec7a09fc
8 changed files with 93 additions and 21 deletions

View file

@ -36,7 +36,6 @@ static zend_object_value zend_default_exception_new(zend_class_entry *class_type
zend_hash_init(object->properties, 0, NULL, ZVAL_PTR_DTOR, 0);
zend_hash_copy(object->properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
zend_update_property_string(class_type, &obj, "message", sizeof("message")-1, "Unknown exception" TSRMLS_CC);
zend_update_property_string(class_type, &obj, "file", sizeof("file")-1, zend_get_executed_filename(TSRMLS_C) TSRMLS_CC);
zend_update_property_long(class_type, &obj, "line", sizeof("line")-1, zend_get_executed_lineno(TSRMLS_C) TSRMLS_CC);
@ -125,7 +124,7 @@ static void zend_register_default_exception(TSRMLS_D)
default_exception_ptr = zend_register_internal_class(&default_exception TSRMLS_CC);
default_exception_ptr->create_object = zend_default_exception_new;
zend_declare_property_null(default_exception_ptr, "message", sizeof("message")-1, ZEND_ACC_PROTECTED);
zend_declare_property_string(default_exception_ptr, "message", sizeof("message")-1, "Unknown exception", ZEND_ACC_PROTECTED);
zend_declare_property_long(default_exception_ptr, "code", sizeof("code")-1, 0, ZEND_ACC_PROTECTED);
zend_declare_property_null(default_exception_ptr, "file", sizeof("file")-1, ZEND_ACC_PROTECTED);
zend_declare_property_null(default_exception_ptr, "line", sizeof("line")-1, ZEND_ACC_PROTECTED);