Commit Graph

389 Commits

Author SHA1 Message Date
Dmitry Stogov
2ca2dc0b08 Restored old behavior of zend_statup_module() 2005-06-30 13:43:00 +00:00
Stanislav Malyshev
9727e938ee add comment 2005-06-29 08:43:38 +00:00
Stanislav Malyshev
d5a1296008 fix various "Class entry requested for an object without PHP class" messages
when working with non-PHP objects.
# Using Z_OBJCE(object)->name is usually bad idea unless you know it's
# a pure PHP object
2005-06-27 18:13:13 +00:00
Antony Dovgal
baf8cadeff improve error messages when error raised from an internal class (do not hide class name) 2005-06-17 11:25:31 +00:00
Dmitry Stogov
c0c7a9f010 Improved PHP extension loading mechanism with support for module dependencies and conflicts. 2005-06-17 09:36:26 +00:00
Dmitry Stogov
8b7a03c889 Fixed bug #30332 (zend.ze1_compatibility_mode isnt fully compatable with array_push()) 2005-04-29 07:59:04 +00:00
Dmitry Stogov
c81db6bc56 Fixed bug #29210 (Function: is_callable - no support for private and protected classes) 2005-04-27 15:45:36 +00:00
Dmitry Stogov
5f600cdf57 Fixed bug #30702 (cannot initialize class variable from class constant) 2005-04-26 09:27:28 +00:00
Marcus Boerger
67a226d910 - Add ReflectionProperty::getDocComment() 2005-04-19 22:04:59 +00:00
Andrei Zmievski
9bf6a7f229 internal_function->fn_flags is not initialized at this point 2005-03-21 06:20:17 +00:00
Wez Furlong
7de1d279cc don't call rshutdown twice for dl()'d modules.
Spotted by Andrei.
2005-03-16 04:18:42 +00:00
Wez Furlong
35b0b8de99 fix shutdown so that dl()'d modules are unloaded after all the dtors have
been called.
2005-03-15 23:46:29 +00:00
Marcus Boerger
c17d3dbbb7 - A little optimization to prevent problems when trying to reimplement an
interface inherited from an interfaces that was just implemented......
2005-02-17 21:05:04 +00:00
Marcus Boerger
c88da2bd92 - No C++ ruleZ here 2005-02-17 20:54:56 +00:00
Marcus Boerger
82ccc25113 - Actually we must do this in two steps: 1st resize the table and set all
interfaces, 2nd implement the interfaces
2005-02-17 20:49:56 +00:00
Marcus Boerger
02c35975c0 - Incrementation is done elsewhere 2005-02-17 20:28:46 +00:00
Marcus Boerger
a7e4f84c5d - Fix windows build (funny MS compiler) 2005-02-17 20:15:40 +00:00
Hartmut Holzgraefe
d88c2b18d4 added some missing zend_[declare|update]_property_...() convenience
functions for bool, double and binary safe string data
2005-02-04 20:24:21 +00:00
Marcus Boerger
1d5c13bdad - Fix #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.) 2005-01-22 12:23:01 +00:00
Andi Gutmans
4908642c8c - Unload on MAC OS X (shouldn't be a reason not to) 2005-01-15 00:11:20 +00:00
Rasmus Lerdorf
2a3ca10a61 Fix OSX DL_UNLOAD macro and actually use it to make shared extensions
work on OSX.
2005-01-10 21:57:30 +00:00
Sebastian Bergmann
9a92e31cdd Patch by Joe Orton <jorton@redhat.com>. 2004-11-02 13:10:37 +00:00
Marcus Boerger
aa247a3276 - MFB (synch correctly not only for one problem) 2004-09-29 20:57:07 +00:00
Marcus Boerger
0ec6eb7aad - Refix the fix
# This somehow got lost and was then readded by Andi in 1.258 at the wrong
# position. Obviously we need to separate the argument first and convert it
# afterwards as done in 5.0.*.
2004-09-29 20:24:35 +00:00
Marcus Boerger
e39f3f3f48 Simplify/Optmize magic method calls (__get/__set/__call/__clone/__destruct) 2004-09-28 22:55:22 +00:00
Anantha Kesari H Y
b82a18c8da selectively avoiding module cleanup code for apache 1 build and removing a duplicate code 2004-09-24 15:40:22 +00:00
Anantha Kesari H Y
5af07c3c8b Aligned the ifdef NETWARE blocks to first column. 2004-09-22 14:31:21 +00:00
Anantha Kesari H Y
8478f5e38e When Apache is unloaded, it calls dlclose on all the PHP extensions
that are loaded in memory. In the case of Apache 1.3, this call is blocking indefinitely. As a work around, this call is bypassed for Apache 1.3 build on NetWare only. This means that none of the loaded PHP extensions are unloaded. They will have to be manually unloaded before re-loading the Apache 1.3 again.
2004-09-22 13:29:08 +00:00
Andi Gutmans
6bd3c36a53 - Recommit:
- Check signature of magic methods
  - Register __get/__set/__call for internal classes
2004-09-09 16:51:45 +00:00
Andi Gutmans
96ab56e146 - Roll back VM commit 2004-09-09 16:47:22 +00:00
Marcus Boerger
be24e2455c - Check signature of magic methods
- Register __get/__set/__call for internal classes
2004-09-09 09:51:43 +00:00
Andi Gutmans
f20f992ddd - Fix the fix. 2004-09-09 00:15:39 +00:00
Andi Gutmans
d7422e3821 - Don't destroy object when calling overloaded cast method in
- zend_parse_parameters()
2004-09-04 17:03:45 +00:00
Marcus Boerger
87187da066 - Add missing brackets 2004-08-24 18:47:18 +00:00
Marcus Boerger
a6276a2414 Fix #28641: Instance of Interface 2004-06-05 14:59:21 +00:00
Marcus Boerger
c8e72410be - Need to operate on module pointer in hash table 2004-05-18 21:19:15 +00:00
Stanislav Malyshev
da26db3054 Z_TYPE_P is for zvals 2004-05-18 16:13:57 +00:00
Wez Furlong
b949bfe651 Register according to the type specified by the module.
(Helps to fix dl() bug)
2004-05-18 15:26:13 +00:00
Marcus Boerger
aa7454aba4 - Centralize register and hash operations for startup/register_module
in new zend_register_module_ex().
2004-05-12 23:05:28 +00:00
Marcus Boerger
950ddcc9c2 - Revert to 1.249 2004-05-12 23:03:38 +00:00
Marcus Boerger
f571b188f9 Don't load modules twice 2004-05-01 20:34:15 +00:00
Marcus Boerger
5230321731 - Fix Reflection class names
- Add ability to get the extension an internal class was defined in
# This is the patch Andi and me used to search for underscrores...
2004-03-30 18:36:53 +00:00
Marcus Boerger
16a4376f53 Use lowercasing here 2004-03-28 23:56:18 +00:00
Marcus Boerger
aea24b2a79 Force destructors to have empty signatures 2004-03-26 20:05:35 +00:00
Marcus Boerger
50ee116f08 Clearify the different method/class flags (as discussed with Andi). 2004-03-09 16:38:37 +00:00
Marcus Boerger
8d45fece42 Fix zend_parse_method_parameters_ex() and make it consistant with
zend_parse_method_parameters().
# Obviously its only place of use is in pdo just right now.
2004-03-02 16:17:58 +00:00
Marcus Boerger
7fdd68af8b Add some comments 2004-02-27 18:20:53 +00:00
Marcus Boerger
f449c8fdf7 Fixes for abstract classes/methods 2004-02-27 09:14:55 +00:00
Zeev Suraski
7086634a0b - Improve ARG_INFO() macros to support supplying required_num_args
- Initial fix for foreach($o->mthd()->arr) crash (now leaks)
2004-02-25 14:56:45 +00:00
Zeev Suraski
36a751840d - Abstract methods cannot have defaults for arguments
- Make function foo($a, $b=null) satisfy both foo($a) and foo($a, $b)
  prototypes
2004-02-25 09:25:37 +00:00
Marcus Boerger
ce8f77f7b1 Fix class flags when handling abstract methods 2004-02-24 23:39:12 +00:00
Zeev Suraski
e7e0f7d4b4 - Check return-by-reference bit when implementing interface prototypes
- Add infrastructure for built-in functions to hint whether they
  return by reference or not.  It is NOT currently used for anything,
  except for interface prototypes (you can use it to request that the
  function that implements your prototype returns by reference or
  doesn't return by reference).
  For downwards compatibility - by default, interface prototypes are
  agnostic as to whether the function that implements them returns
  by reference or not.  Use ZEND_BEGIN_ARG_INFO_EX() with
  ZEND_RETURN_VALUE/ZEND_RETURN_REFERENCE to change that.
- Fix ArrayAccess::getOffset() to conduct additional checks.
  If your getOffset() should work with multidimensional arrays - it
  must return by reference.
2004-02-12 13:49:55 +00:00
Marcus Boerger
3ca44539a1 Switch from ZEND_ACC_DYNAMIC to ZEND_ACC_ALLOW_STATIC and disallow calling
internal non-static methods statically.
# As discussed with Zeev:
# - For BC standard userspace methods allow this with an E_STRICT message.
# - If you want to implement an internal method taht can be called both
#   statically and non-statically then use flag ZEND_ACC_ALLOW_STATIC.
# - Magic user space methods __*() cannot and __construct, __destruct,
# __clone can never be called statically.
2004-01-24 16:59:24 +00:00
Marcus Boerger
6020ffd007 Simplify detection of methods that must be called dynamic (with object) 2004-01-23 22:04:42 +00:00
Marcus Boerger
7c2e02d380 Disallow static declaration of clone 2004-01-23 20:52:39 +00:00
Marcus Boerger
805dfab890 Add zend_get_module_started() to quickly check whether a module is present
and its MINIT function has been called.
2004-01-19 00:39:29 +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
Stanislav Malyshev
bced21b357 Fix bug #26543 - check parent:: and self:: in class names 2004-01-05 12:10:35 +00:00
Derick Rethans
6923a16c26 - Fixed var_export() to show public, protected and private modifiers properly.
- Exported (un)mangle_property_name.
2004-01-03 13:51:02 +00:00
Marcus Boerger
2a6ec5ccb4 WS 2003-12-28 16:20:06 +00:00
Wez Furlong
273c19334b export these symbols for use by SPL as a shared extension 2003-12-22 13:09:15 +00:00
Andi Gutmans
23b231d0eb - Revert the revert of these patches. This overloading can only be used
- by C extensions such as SimpleXML and *NOT* PHP code. Reasons given
- on the mailing list and problem with reentrancy inside the opcodes.
2003-12-02 21:09:24 +00:00
Andi Gutmans
ee64b61e94 - Revert auto-conversion in parameter API 2003-12-01 11:50:57 +00:00
Ilia Alshanetsky
7203684680 Add removed lcname, it is still needed. 2003-11-28 14:42:25 +00:00
Marcus Boerger
1586f714fe Convert objects to string if string is required by newer parameter parsing
since we do this for older parameter parsing does so too.
2003-11-27 19:24:38 +00:00
Andi Gutmans
d344648b07 - Fix __autoload() to preserve class case.
- Heads up, this patch might break stuff so please let me know if you
- bump into any problems.
2003-11-24 18:13:29 +00:00
Marcus Boerger
26bfe3f83a Add zend_make_callable() which allows to make zval's callable zval's.
At the moment this function only converts strings of the form class::method
to an array(class,method).
2003-10-25 22:58:06 +00:00
Marcus Boerger
b28db6a2d3 Revert accidental commit 2003-10-24 18:42:00 +00:00
Marcus Boerger
071eaf8576 Zend/ZEND_CHANGES 2003-10-24 18:24:28 +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
4073a08488 Add oo support function zend_class_implements() 2003-10-15 06:24:17 +00:00
Moriyoshi Koizumi
4859431fc1 Fixed bug #24766 (strange result array from unpack()) 2003-10-03 22:41:43 +00:00
Marcus Boerger
87045df4ce Add missing check 2003-09-18 10:21:38 +00:00
Marcus Boerger
95649ab260 Tests show updating consts must happen once at runtime (revert optimization).
Add tests for static properties.
2003-09-04 16:00:01 +00:00
Marcus Boerger
7bbbd5035d Fix handling of static properties initialized to arrays 2003-09-03 18:01:22 +00:00
Marcus Boerger
1b39a5aa2c Fix static properties.
#
# There's only an errormessage missing which i'll wommit as soon as i find out
# how to do it best. But besides that damn message everything works now and all
# inheritance rules apply.
#
2003-09-03 16:13:40 +00:00
Marcus Boerger
e569b5aee5 Allow redeclaring of protected properties as public (for internal classes).
# See http://news.php.net/article.php?group=php.zend-engine.cvs&article=1737
# for the part not fixed (e.g. property redeclaration of userland classes)
2003-09-02 20:49:42 +00:00
Marcus Boerger
0f3374615b Currently we cannot support static ctor/dtor 2003-09-02 13:26:25 +00:00
Marcus Boerger
047a574e6c - Add zend_merge_properties() which is designed to serve *_fetch_object().
- Explain drawbacks of object_and_properties_init and zend_merge_properties.
#
# I guess we can live with the purity problem of potentially calling __set()
# of an object which wasn't already ctored.
#
2003-08-29 23:27:22 +00:00
Marcus Boerger
f9cebab0cb Add missing check 2003-08-24 22:45:59 +00:00
Marcus Boerger
9603e44eb6 Fix memory source of string duplication for non internal properties 2003-08-24 18:47:11 +00:00
Marcus Boerger
19ec7a09fc - 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.
2003-08-24 17:32:47 +00:00
Zeev Suraski
ea36fc4143 Use ""'s if you want empty strings. We want to crash on errors. 2003-08-24 16:27:01 +00:00
Marcus Boerger
b84e9db3b8 Allow NULL, too 2003-08-24 16:13:23 +00:00
Marcus Boerger
3605be8a29 Fix fn_flags handling 2003-08-24 11:07:30 +00:00
Marcus Boerger
38805f2809 Add property read code and use that in default exception class 2003-08-24 00:36:53 +00:00
Marcus Boerger
baaa4c903d Internal classes can now have default properties. 2003-08-23 19:37:39 +00:00
Marcus Boerger
fbda310a41 - Flag ctor/dtor methods
- Use this to prevent memleaks when an exception gets thrown in ctors.
# I added the dtor flags for consistency, atm a compareable check in
# isn't necessary for destruction. But anyway i'll use this for the
# Relection API too.
2003-08-23 15:38:58 +00:00
Marcus Boerger
fda38bf2ff If ce not given than any object would do 2003-08-21 15:24:33 +00:00
Marcus Boerger
80b3498839 Paramspec 'O' / zend_parse_method_params(): only if given check the class type 2003-08-21 14:39:17 +00:00
Zeev Suraski
0dba58c373 Improve tracking 2003-08-18 21:17:26 +00:00
Marcus Boerger
82050ae8bc - Show class names in error messages when dealing with methods
- Mark class as abstract if it gets an abstract method
2003-08-17 00:57:35 +00:00
Marcus Boerger
fe1a086d19 Simplify abstract method declaration 2003-08-16 20:46:22 +00:00
Marcus Boerger
e08aedf5ff - Show classes in case of methods
- Using sprintf here was a bad idea
2003-08-13 07:02:44 +00:00
Zeev Suraski
ef5a79bfed Ensure functions have a valid access level 2003-08-03 21:06:23 +00:00
Zeev Suraski
e3f4147931 Default to public 2003-08-03 21:04:39 +00:00
Marcus Boerger
8c614ddda4 Not needed, will be copied from ptr->flags later 2003-08-03 20:49:27 +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
7112d3a3f8 No need for this initialization - this function initializes all of the
elements of zend_internal_function
2003-08-03 10:32:40 +00:00
Marcus Boerger
4f1e331c4d Initialize all struct members: Necessary for reflection 2003-08-02 19:03:14 +00:00
Wez Furlong
0b6f7bddf4 fix usage of instanceof here too 2003-08-02 11:43:55 +00:00
Wez Furlong
5c4de2664c better fix... 2003-08-01 17:51:56 +00:00
Wez Furlong
ad12b3da82 Fix "O" format for zend_parse_parameters 2003-08-01 16:48:11 +00:00
Zeev Suraski
4f6b315211 Use instanceof_function() 2003-07-31 16:30:15 +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
Andi Gutmans
af1254e458 - WS 2003-07-12 14:54:53 +00:00
Andi Gutmans
939ab68637 - Add support for Z in zend_parse_parameters(). It will allow the extension
- to retreive the zval **, thus allowing it to use the convert_to_*_ex()
- family of functions to do type conversions without effecting the value in
- the engine itself. (Josh Fuhs <fuhs@purdue.edu>)
2003-07-11 10:21:39 +00:00
Zeev Suraski
134338522f Rework zend_do_declare_property and related code into one code base 2003-07-07 16:22:56 +00:00
Zeev Suraski
376c7a1771 Fix bug 2003-07-07 16:04:42 +00:00
George Schlossnagle
daf3ac65ea add convenience functions or adding class properties. Ok'd for commit by Andi. 2003-07-06 19:55:20 +00:00
Stanislav Malyshev
5a7b07701b Fix bug #19859 - allow fast_call_user_function to support __call 2003-07-03 09:18:41 +00:00
Andi Gutmans
288dacca0c - ZE coding style requires if ( instead of if( 2003-06-30 20:22:35 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Stanislav Malyshev
565985acfc Support 'self' and 'parent' in call_user_func() 2003-06-09 10:55:37 +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
Marcus Boerger
66b9125968 Make use optimized string lowering 2003-05-21 22:57:51 +00:00
Marcus Boerger
7af8eadd57 Make zend_str_tolower_copy() a copy function (like stccpy).
Supply a dup version (like estrdup).
Fix tolower() handling.
# Havin copy and dup allows to use the faster version even with
# memory not allocated by emalloc.
2003-05-21 21:59:40 +00:00
Sterling Hughes
d141ffd9de use zend_str_tolower_copy() 2003-05-21 12:15:33 +00:00
Marcus Boerger
bd74e75b41 Fix namespace issue: Only CG is needed here 2003-05-04 23:01:39 +00:00
Marcus Boerger
29a3586f7b Allow functions in internal namespaces (for example factories) 2003-05-04 22:49:31 +00:00
Stanislav Malyshev
ad01495a48 Change get_class() so that it returns qualified names for namespaced
classes.

*HEADS UP*: get_class_name() handler interface is changed, now it should
allocate the space it returns with emalloc, and the users free it. If
anyone has problems with it or has suggestions how to do it without this -
please tell.

Also: make function_exists() understand namespaces.
2003-04-21 17:01:34 +00:00
Andrei Zmievski
e5f4c783bc Rename zend_register_internal_class_in_ns() to a better, less filling,
but with the same great taste zend_register_internal_ns_class().
2003-04-08 17:40:56 +00:00
Stanislav Malyshev
6ed305945d Fix namespace issues 2003-04-04 12:25:47 +00:00
Andrei Zmievski
e3f1641527 Patch from Timm Friede for when EG(active_namespace) is NULL initially. 2003-04-03 19:05:25 +00:00
Andrei Zmievski
91eff553e3 Initialize all relevant zend_class_entry fields to avoid accidental
crashes.
2003-04-03 14:44:41 +00:00
Andrei Zmievski
3d62a3491e - Add zend_register_internal_namespace() API function.
- Add zend_register_internal_class_in_ns() API function.
2003-04-02 20:27:44 +00:00
Zeev Suraski
5097be302e Initial support for enforcing prototype of abstract/interface method implementations 2003-03-29 11:19:38 +00:00
Sebastian Bergmann
3fc852824f Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry(). 2003-03-26 07:44:11 +00:00
Sebastian Bergmann
866332a4b8 Eliminate TSRMLS_FETCH() calls in zend_objects_new() and zend_objects_get_address(). 2003-03-26 06:32:53 +00:00
Andrei Zmievski
3a297fac22 Lowercase the function name when used as key in the function name. The
original case is still preserved in zend_function structure.
2003-03-19 21:07:49 +00:00
Andrei Zmievski
dedfa808bb Fix warning in va_start(). 2003-03-13 20:41:58 +00:00
Andrei Zmievski
0c571538a8 Initialize the namespace when registering functions.
# Correct me if I'm wrong..
2003-03-12 21:43:42 +00:00
Harald Radi
3f8c08b5e1 add missing strtolower 2003-03-03 01:56:14 +00:00
Harald Radi
a700180f5d commiting zend_disable_class patch for George:
disabled classes will be replaced by dummy classes
that print a warning upon instanciation
2003-03-03 01:22:43 +00:00
Sebastian Bergmann
6d300baf84 ZTS fixes 2003-02-16 11:34:49 +00:00
Ilia Alshanetsky
a2bd043e7b Removed zend_get_module(), this function is not used by anything and more
importantly. it does not work. It tries to find data based on numeric keys
in hash table using string keys.
2003-02-12 16:50:51 +00:00
Zeev Suraski
c17c7a2bfa Centralize class initialization 2003-02-10 16:11:24 +00:00
Zeev Suraski
5e12de9510 Add missing destructors 2003-02-10 11:03:22 +00:00
Georg Richter
325f9edb07 fixed zend_parse_method_param 2003-02-08 20:54:02 +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
Harald Radi
c4528f82a0 extend the parameter parsing API by two functions
for parsing method parameters with automatic
detection if the function was called as such or as
a class method (with a valid this ptr).
if called as a function the first parameter has to be
the object it is operating on, if called as a method
this is used.

#not yet testet, only commiting so that georg can
#continue working on ext/mysqli
2003-02-02 23:30:14 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Sascha Schumann
0ceb4a93b2 Replace snprintf() call using zend_error's capabilities 2003-01-26 23:15:30 +00:00
Stanislav Malyshev
5340b204ca fix memory leaks and key size 2003-01-14 15:12:35 +00:00
Stanislav Malyshev
eccc536883 Make add_property_ functions work via write_property handler 2003-01-14 12:15:09 +00:00
Andrei Zmievski
efaa31e940 Automatically register constructor, destructor, and clone function when
class methods are registered.
2003-01-10 14:41:53 +00:00
Zeev Suraski
9b09ba614d Win32 build fix 2003-01-01 12:38:55 +00:00
Zeev Suraski
57b9b0112d Fix Wez's problem 2003-01-01 09:34:39 +00:00