Commit Graph

240 Commits

Author SHA1 Message Date
Derick Rethans
6535933f7c - Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
  are run. (Derick)
2004-03-16 22:27:26 +00:00
Sascha Schumann
b74128db59 Enable ptr format check for GCC 3.1 and higher 2004-03-16 17:35:57 +00:00
Ilia Alshanetsky
365f0120fe Do not allow 3.0.4 for __attribute__. 2004-03-16 16:42:12 +00:00
Ilia Alshanetsky
fa5f52718a Fixed bug #27600 (GCC 3.0.4 does not like __attribute__ directive) 2004-03-16 16:36:54 +00:00
foobar
97f81830b8 - Fixed bug #24582 (extensions can not be loaded dynamically in Solaris/iPlanet) 2004-03-15 16:06:29 +00:00
Marcus Boerger
494d8207fe No longer needed 2004-03-09 15:53:42 +00:00
Hartmut Holzgraefe
1727c6a2bb more EXTERN_C wrapping of ZEND_API prototypes 2004-02-20 08:03:27 +00:00
Hartmut Holzgraefe
3a3f95a399 wrap ZEND_API prototypes into BEGIN_EXTERN_C/END_EXTERN_C
for C++ extension support
2004-02-18 22:44:40 +00:00
foobar
ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Zeev Suraski
e94e3e1775 Some cleanup 2003-12-14 12:32:02 +00:00
Ilia Alshanetsky
e2012609d6 Fixed extra byte allocation for TRUE/FALSE/ZEND_THREAD_SAFE/NULL constants. 2003-12-11 23:50:13 +00:00
Marcus Boerger
3c62b3b5ac Expand Interface C API.
In short: zend_class_entry->interface_gets_implemented()  allows to modify
the class entry of a class when an interface gets implemented.
2003-10-22 19:59:58 +00:00
Marcus Boerger
b0b82541e8 Fix class/iterator relationship & handling 2003-10-18 18:43:31 +00:00
Marcus Boerger
25aa8b715e Added c-api for iterators
# After 4 Month work and endless discussions...
2003-10-17 17:19:44 +00:00
Moriyoshi Koizumi
149f786025 Bug #25738 (alloca() related problems on the Darwin platform) 2003-10-03 22:02:55 +00:00
Marcus Boerger
1c86e53204 Bugfix #25528 (by Ard Biesheuvel) 2003-09-14 01:20:25 +00:00
Marcus Boerger
d45fd8a1b1 Make vspprintf available as zend utility function. Use it in exception output. 2003-08-31 09:35:54 +00:00
Sascha Schumann
744c68e447 older gccs don't understand attribute((format)) on function pointers 2003-08-28 17:31:31 +00:00
Sascha Schumann
83bd1f4398 ZEND_GCC_VERSION should always be defined to a number so we can use
simple comparisons all the time.
2003-08-28 17:04:16 +00:00
Sascha Schumann
2e36578cfd Add format attribute to a number of functions
Kill a few warnings
2003-08-28 16:41:20 +00:00
Sascha Schumann
169d43e5fa cleanup & centralize ZEND_GCC_VERSION and ZEND_ATTRIBUTE_MALLOC so that
they can be used by downstream applications
2003-08-28 14:53:02 +00:00
foobar
28447d62da - Fixed bug #25240 (spaces before pre-processor directives) 2003-08-25 23:24:29 +00:00
Zeev Suraski
49c4866a47 - Improve tracking
- Fix several overloading issues
2003-08-18 22:31:11 +00:00
Sascha Schumann
602d1b0045 One bit fields need to be unsigned, otherwise there is no storage for
the sign bit

"A signed bit field has a length of 1 bit."
2003-08-17 13:49:52 +00:00
Zeev Suraski
fe9b5870af Add logical XOR, proves to be quite useful lately 2003-08-04 07:52:36 +00:00
Zeev Suraski
f8bbafd604 ntroduce infrastructure for supplying information about arguments,
including:

- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance

Both user and builtin functions share the same data structures.

To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:

ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
    ZEND_ARG_OBJ_INFO(0, someone, Person, 1)
    ZEND_ARG_PASS_INFO(0)
    ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();

and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.

The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.

The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.
2003-08-03 17:40:44 +00:00
Zeev Suraski
2fd4ffce17 Add exec_finished() callback for modules - this is the last place where the
modules may touch the symbol table reliably
2003-07-30 16:13:52 +00:00
Stanislav Malyshev
237116aa27 Remove namespace leftovers 2003-07-23 08:58:46 +00:00
foobar
aad797691b Fix the HPUX alloca fix as suggested by Sascha 2003-07-19 13:10:24 +00:00
Andi Gutmans
99d0a5c86e - Don't use alloca on HP-UX (Moriyoshi Koizumi <moriyoshi@at.wakwak.com>) 2003-07-19 07:19:21 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Stanislav Malyshev
039c174337 rm namespace leftovers 2003-06-04 08:16:55 +00:00
Stanislav Malyshev
f7f5a5ea6b MEGA-patch: namespaces are R.I.P. 2003-06-02 12:13:11 +00:00
Derick Rethans
bfaf618b08 - Revert my symbol fix patch, and merge in Stas' fixes to Zend Engine 1. 2003-04-18 17:55:45 +00:00
Derick Rethans
bd77233ee3 - MacOSX also prepends the _ before symbols in bundles 2003-04-18 11:35:22 +00:00
Andrei Zmievski
5657b83691 Multi-purpose patch:
- The fields of zend_namespace were not completely initialized which
   led to a variety of problems.
 - The occurrence of class/interface/namespace definition is now
   captured.
 - Functions/classes/interfaces/namespaces can be preceded by doc
   comments which are stored for use by extensions.
2003-03-31 20:42:01 +00:00
Zeev Suraski
26dd8492ed Add support for interfaces 2003-03-05 11:14:44 +00:00
Zeev Suraski
955636af69 Avoid using a C++ reserved word 2003-02-18 17:18:28 +00:00
Wez Furlong
e52aac940f Implement simple stream support in the ZE scanners. 2003-02-18 09:37:54 +00:00
Stanislav Malyshev
a4c3b2ce80 Namespace patch. Big changes:
1. Nested classes are gone.
2. New syntax for namespaces:
namespace foo {
	class X { ... }
	function bar { ... }
	var x = 1;
	const ZZ = 2;
}
3. Namespaced symbol access: $x = new foo::X; - etc.
For now, namespaces are case insensitive, just like classes.
Also, there can be no global class and namespace with the same name
(to avoid ambiguities in :: resolution).
2003-02-16 11:12:43 +00:00
Zeev Suraski
c17c7a2bfa Centralize class initialization 2003-02-10 16:11:24 +00:00
Zeev Suraski
17439aa9c4 Rework static class properties - now supports access restrictions 2003-02-05 13:35:52 +00:00
Zeev Suraski
471947b188 Reimplement PPP properties 2003-02-04 12:12:34 +00:00
Zeev Suraski
31196cf679 whitespace 2003-02-02 16:29:42 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Sascha Schumann
7431b52291 Revert commit which turned the lengths of strings into zend_uint. 2003-01-15 19:10:14 +00:00
Stanislav Malyshev
d48ffd97d6 RIP handle_* functions. ZE2 will use __ handlers instead.
# Yes, I know this will break some things. I will fix those I can find shortly.
2003-01-12 17:16:07 +00:00
Sebastian Bergmann
24db7f182a ZTS fixes. 2003-01-12 14:25:58 +00:00
James Cox
24d034251d cvs is dev not alpha. 2003-01-08 17:30:49 +00:00
Sebastian Bergmann
2c5d4b8c23 Bump year. 2002-12-31 15:59:15 +00:00