cvs: ZendEngine2 / Makefile.am zend.c zend_default_classes.c zend_default_classes.h php4 configure.in

From: Date: Sun, 23 Mar 2003 04:32:23 +0000
Subject: cvs: ZendEngine2 / Makefile.am zend.c zend_default_classes.c zend_default_classes.h php4 configure.in
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-1063@lists.php.net to get a copy of this message
sterling Sat Mar 22 23:32:23 2003 EDT Added files: /ZendEngine2 zend_default_classes.c zend_default_classes.h Modified files: /php4 configure.in /ZendEngine2 Makefile.am zend.c Log: add a standard Exception class. Index: php4/configure.in diff -u php4/configure.in:1.431 php4/configure.in:1.432 --- php4/configure.in:1.431 Mon Mar 17 08:40:42 2003 +++ php4/configure.in Sat Mar 22 23:32:22 2003 @@ -1,4 +1,4 @@ -dnl ## $Id: configure.in,v 1.431 2003/03/17 13:40:42 wez Exp $ -*- sh -*- +dnl ## $Id: configure.in,v 1.432 2003/03/23 04:32:22 sterling Exp $ -*- sh -*- dnl ## Process this file with autoconf to produce a configure script. divert(1) @@ -1129,7 +1129,7 @@ zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \ zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \ zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \ - zend_ini.c zend_qsort.c zend_multibyte.c zend_ts_hash.c zend_stream.c) + zend_ini.c zend_qsort.c zend_multibyte.c zend_ts_hash.c zend_stream.c zend_default_classes.c) if test -r "$abs_srcdir/Zend/zend_objects.c"; then PHP_ADD_SOURCES(Zend, zend_objects.c zend_object_handlers.c zend_objects_API.c zend_mm.c) Index: ZendEngine2/Makefile.am diff -u ZendEngine2/Makefile.am:1.51 ZendEngine2/Makefile.am:1.52 --- ZendEngine2/Makefile.am:1.51 Mon Mar 17 06:23:42 2003 +++ ZendEngine2/Makefile.am Sat Mar 22 23:32:23 2003 @@ -14,7 +14,7 @@ zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \ zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \ zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \ - zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c + zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c zend_default_classes.c libZend_la_LDFLAGS = libZend_la_LIBADD = @ZEND_EXTRA_LIBS@ Index: ZendEngine2/zend.c diff -u ZendEngine2/zend.c:1.214 ZendEngine2/zend.c:1.215 --- ZendEngine2/zend.c:1.214 Sun Mar 2 05:04:53 2003 +++ ZendEngine2/zend.c Sat Mar 22 23:32:23 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.214 2003/03/02 10:04:53 zeev Exp $ */ +/* $Id: zend.c,v 1.215 2003/03/23 04:32:23 sterling Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -25,6 +25,7 @@ #include "zend_constants.h" #include "zend_list.h" #include "zend_API.h" +#include "zend_default_classes.h" #include "zend_builtin_functions.h" #include "zend_ini.h" @@ -609,6 +610,7 @@ if (start_builtin_functions) { zend_startup_builtin_functions(TSRMLS_C); } + zend_register_default_classes(TSRMLS_C); zend_ini_startup(TSRMLS_C); Index: ZendEngine2/zend_default_classes.c +++ ZendEngine2/zend_default_classes.c /* +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ | Copyright (c) 1998-2003 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.zend.com/license/2_00.txt. | | If you did not receive a copy of the Zend license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@zend.com so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Sterling Hughes <sterling@php.net> | +----------------------------------------------------------------------+ */ /* $Id: zend_default_classes.c,v 1.1 2003/03/23 04:32:23 sterling Exp $ */ #include "zend.h" #include "zend_API.h" zend_class_entry *default_exception_ptr; ZEND_FUNCTION(exception) { zval **message; zval **code; zval *tmp; zval *object; int argc = ZEND_NUM_ARGS(); if (zend_get_parameters_ex(argc, &message, &code) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); } object = getThis(); if (argc > 0) { convert_to_string_ex(message); zval_add_ref(message); zend_hash_update(Z_OBJPROP_P(object), "message", sizeof("message"), (void **) message, sizeof(zval *), NULL); } if (argc > 1) { convert_to_long_ex(code); zval_add_ref(code); zend_hash_update(Z_OBJPROP_P(object), "code", sizeof("code"), (void **) code, sizeof(zval *), NULL); } MAKE_STD_ZVAL(tmp); ZVAL_STRING(tmp, zend_get_executed_filename(TSRMLS_C), 1); zend_hash_update(Z_OBJPROP_P(object), "file", sizeof("file"), (void **) &tmp, sizeof(zval *), NULL); tmp = NULL; MAKE_STD_ZVAL(tmp); ZVAL_LONG(tmp, zend_get_executed_lineno(TSRMLS_C)); zend_hash_update(Z_OBJPROP_P(object), "line", sizeof("line"), (void **) &tmp, sizeof(zval *), NULL); } #define DEFAULT_0_PARAMS \ if (ZEND_NUM_ARGS() > 0) { \ ZEND_WRONG_PARAM_COUNT(); \ } static void _default_exception_get_entry(zval *object, char *name, int name_len, zval *return_value TSRMLS_DC) { zval **value; if (zend_hash_find(Z_OBJPROP_P(object), name, name_len, (void **) &value) == FAILURE) { RETURN_FALSE; } *return_value = **value; zval_copy_ctor(return_value); } ZEND_FUNCTION(getfile) { DEFAULT_0_PARAMS; _default_exception_get_entry(getThis(), "file", sizeof("file"), return_value); } ZEND_FUNCTION(getline) { DEFAULT_0_PARAMS; _default_exception_get_entry(getThis(), "line", sizeof("line"), return_value); } ZEND_FUNCTION(getmessage) { DEFAULT_0_PARAMS; _default_exception_get_entry(getThis(), "message", sizeof("message"), return_value); } ZEND_FUNCTION(getcode) { DEFAULT_0_PARAMS; _default_exception_get_entry(getThis(), "code", sizeof("code"), return_value); } static zend_function_entry default_exception_functions[] = { ZEND_FE(exception, NULL) ZEND_FE(getmessage, NULL) ZEND_FE(getcode, NULL) ZEND_FE(getfile, NULL) ZEND_FE(getline, NULL) {NULL, NULL, NULL} }; static void zend_register_default_exception(TSRMLS_C) { zend_class_entry default_exception; INIT_CLASS_ENTRY(default_exception, "exception", default_exception_functions); default_exception_ptr = zend_register_internal_class(&default_exception TSRMLS_CC); } ZEND_API void zend_register_default_classes(TSRMLS_D) { zend_register_default_exception(TSRMLS_CC); } /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * indent-tabs-mode: t * End: */ Index: ZendEngine2/zend_default_classes.h +++ ZendEngine2/zend_default_classes.h /* +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ | Copyright (c) 1998-2003 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.zend.com/license/2_00.txt. | | If you did not receive a copy of the Zend license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@zend.com so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Sterling Hughes <sterling@php.net> | +----------------------------------------------------------------------+ */ /* $Id: zend_default_classes.h,v 1.1 2003/03/23 04:32:23 sterling Exp $ */ #ifndef ZEND_DEFAULT_INTERFACES_H #define ZEND_DEFAULT_INTERFACES_H BEGIN_EXTERN_C() ZEND_API void zend_register_default_classes(TSRMLS_D); END_EXTERN_C() #endif /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * indent-tabs-mode: t * End: */

« previous php.zend-engine.cvs (#1063) next »