mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
MFH
This commit is contained in:
parent
5cfa9c6312
commit
661b7c13e6
2 changed files with 23 additions and 16 deletions
|
@ -14,8 +14,7 @@
|
||||||
+----------------------------------------------------------------------+
|
+----------------------------------------------------------------------+
|
||||||
| Author: Sascha Schumann <sascha@schumann.cx> |
|
| Author: Sascha Schumann <sascha@schumann.cx> |
|
||||||
+----------------------------------------------------------------------+
|
+----------------------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
@ -31,7 +30,6 @@
|
||||||
"unserialize() gets called or provide a __autoload() function " \
|
"unserialize() gets called or provide a __autoload() function " \
|
||||||
"to load the class definition "
|
"to load the class definition "
|
||||||
|
|
||||||
|
|
||||||
static zend_object_handlers php_incomplete_object_handlers;
|
static zend_object_handlers php_incomplete_object_handlers;
|
||||||
|
|
||||||
/* {{{ incomplete_class_message
|
/* {{{ incomplete_class_message
|
||||||
|
@ -56,46 +54,55 @@ static void incomplete_class_message(zval *object, int error_type TSRMLS_DC)
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
static zval *incomplete_class_get_property(zval *object, zval *member, int type TSRMLS_DC)
|
static zval *incomplete_class_get_property(zval *object, zval *member, int type TSRMLS_DC) /* {{{ */
|
||||||
{
|
{
|
||||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||||
if(type == BP_VAR_W || type == BP_VAR_RW) {
|
|
||||||
|
if (type == BP_VAR_W || type == BP_VAR_RW) {
|
||||||
return EG(error_zval_ptr);
|
return EG(error_zval_ptr);
|
||||||
} else {
|
} else {
|
||||||
return EG(uninitialized_zval_ptr);
|
return EG(uninitialized_zval_ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static void incomplete_class_write_property(zval *object, zval *member, zval *value TSRMLS_DC)
|
static void incomplete_class_write_property(zval *object, zval *member, zval *value TSRMLS_DC) /* {{{ */
|
||||||
{
|
{
|
||||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member TSRMLS_DC)
|
static zval **incomplete_class_get_property_ptr_ptr(zval *object, zval *member TSRMLS_DC) /* {{{ */
|
||||||
{
|
{
|
||||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||||
return &EG(error_zval_ptr);
|
return &EG(error_zval_ptr);
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static void incomplete_class_unset_property(zval *object, zval *member TSRMLS_DC)
|
static void incomplete_class_unset_property(zval *object, zval *member TSRMLS_DC) /* {{{ */
|
||||||
{
|
{
|
||||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static int incomplete_class_has_property(zval *object, zval *member, int check_empty TSRMLS_DC)
|
static int incomplete_class_has_property(zval *object, zval *member, int check_empty TSRMLS_DC) /* {{{ */
|
||||||
{
|
{
|
||||||
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
incomplete_class_message(object, E_NOTICE TSRMLS_CC);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
static union _zend_function *incomplete_class_get_method(zval **object, char *method, int method_len TSRMLS_DC) {
|
static union _zend_function *incomplete_class_get_method(zval **object, char *method, int method_len TSRMLS_DC) /* {{{ */
|
||||||
|
{
|
||||||
incomplete_class_message(*object, E_ERROR TSRMLS_CC);
|
incomplete_class_message(*object, E_ERROR TSRMLS_CC);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
/* {{{ php_create_incomplete_class
|
/* {{{ php_create_incomplete_class
|
||||||
*/
|
*/
|
||||||
static zend_object_value php_create_incomplete_object(zend_class_entry *class_type TSRMLS_DC) {
|
static zend_object_value php_create_incomplete_object(zend_class_entry *class_type TSRMLS_DC)
|
||||||
|
{
|
||||||
zend_object *object;
|
zend_object *object;
|
||||||
zend_object_value value;
|
zend_object_value value;
|
||||||
|
|
||||||
|
@ -107,7 +114,7 @@ static zend_object_value php_create_incomplete_object(zend_class_entry *class_ty
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
zend_class_entry *php_create_incomplete_class(TSRMLS_D)
|
PHPAPI zend_class_entry *php_create_incomplete_class(TSRMLS_D)
|
||||||
{
|
{
|
||||||
zend_class_entry incomplete_class;
|
zend_class_entry incomplete_class;
|
||||||
|
|
||||||
|
@ -140,11 +147,12 @@ PHPAPI char *php_lookup_class_name(zval *object, zend_uint *nlen)
|
||||||
if (zend_hash_find(object_properties, MAGIC_MEMBER, sizeof(MAGIC_MEMBER), (void **) &val) == SUCCESS) {
|
if (zend_hash_find(object_properties, MAGIC_MEMBER, sizeof(MAGIC_MEMBER), (void **) &val) == SUCCESS) {
|
||||||
retval = estrndup(Z_STRVAL_PP(val), Z_STRLEN_PP(val));
|
retval = estrndup(Z_STRVAL_PP(val), Z_STRLEN_PP(val));
|
||||||
|
|
||||||
if (nlen)
|
if (nlen) {
|
||||||
*nlen = Z_STRLEN_PP(val);
|
*nlen = Z_STRLEN_PP(val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (retval);
|
return retval;
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
|
@ -52,9 +52,8 @@
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
zend_class_entry *php_create_incomplete_class(TSRMLS_D);
|
|
||||||
|
|
||||||
|
PHPAPI zend_class_entry *php_create_incomplete_class(TSRMLS_D);
|
||||||
PHPAPI char *php_lookup_class_name(zval *object, zend_uint *nlen);
|
PHPAPI char *php_lookup_class_name(zval *object, zend_uint *nlen);
|
||||||
PHPAPI void php_store_class_name(zval *object, const char *name, zend_uint len);
|
PHPAPI void php_store_class_name(zval *object, const char *name, zend_uint len);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue