2000-03-25 15:57:04 +00:00
|
|
|
/*
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2001-12-11 15:32:16 +00:00
|
|
|
| PHP Version 4 |
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2002-12-31 16:08:15 +00:00
|
|
|
| Copyright (c) 1997-2003 The PHP Group |
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2000-05-18 15:34:45 +00:00
|
|
|
| This source file is subject to version 2.02 of the PHP license, |
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
|
|
| available at through the world-wide-web at |
|
2000-07-24 05:41:02 +00:00
|
|
|
| http://www.php.net/license/2_02.txt. |
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
| Author: Sam Ruby (rubys@us.ibm.com) |
|
|
|
|
+----------------------------------------------------------------------+
|
2000-07-24 05:41:02 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/* $Id$ */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2001-10-31 00:20:34 +00:00
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
/*
|
|
|
|
* This module implements Zend OO syntax overloading support for Java
|
|
|
|
* components using JNI and reflection.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "php.h"
|
|
|
|
#include "zend_compile.h"
|
|
|
|
#include "php_ini.h"
|
|
|
|
#include "php_globals.h"
|
|
|
|
|
2002-08-14 16:22:20 +00:00
|
|
|
#if HAVE_JAVAVM_JAVAVM_H
|
|
|
|
#include <JavaVM/JavaVM.h>
|
2002-08-21 04:42:58 +00:00
|
|
|
#include <JavaVM/jni.h>
|
2002-08-14 16:22:20 +00:00
|
|
|
#define JNI_12
|
|
|
|
#else
|
|
|
|
#include <jni.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2000-08-17 10:14:50 +00:00
|
|
|
#ifdef PHP_WIN32
|
2002-08-14 16:22:20 +00:00
|
|
|
#include "win32/winutil.h"
|
2002-12-04 08:18:02 +00:00
|
|
|
#define DL_ERROR php_win_err
|
2000-08-17 10:14:50 +00:00
|
|
|
#endif
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#define IS_EXCEPTION 86
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef KAFFE
|
|
|
|
#ifndef JNI_11
|
|
|
|
#ifndef JNI_12
|
|
|
|
|
|
|
|
#ifdef JNI_VERSION_1_2
|
|
|
|
#define JNI_12
|
|
|
|
#else
|
|
|
|
#define JNI_11
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2000-02-12 14:38:31 +00:00
|
|
|
#ifdef PHP_WIN32
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
#ifdef JNI_12
|
2000-03-25 15:57:04 +00:00
|
|
|
#define JAVALIB "jvm.dll"
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
#else
|
2000-03-25 15:57:04 +00:00
|
|
|
#define JAVALIB "javai.dll"
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
static int le_jobject = 0;
|
|
|
|
|
|
|
|
static char *classpath = 0;
|
|
|
|
static char *libpath = 0;
|
|
|
|
static char *javahome = 0;
|
2000-03-25 15:57:04 +00:00
|
|
|
static char *javalib = 0;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2000-03-25 15:57:04 +00:00
|
|
|
static void *dl_handle = 0;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ ZEND_BEGIN_MODULE_GLOBALS
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
ZEND_BEGIN_MODULE_GLOBALS(java)
|
2000-07-09 04:16:31 +00:00
|
|
|
JavaVM *jvm;
|
|
|
|
JNIEnv *jenv;
|
|
|
|
jobject php_reflect;
|
|
|
|
jclass reflect_class;
|
2001-07-31 23:47:35 +00:00
|
|
|
ZEND_END_MODULE_GLOBALS(java)
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-07-09 04:16:31 +00:00
|
|
|
|
|
|
|
#ifdef ZTS
|
2001-07-31 23:47:35 +00:00
|
|
|
# define JG(v) TSRMG(java_globals_id, zend_java_globals *, v)
|
2000-07-09 04:16:31 +00:00
|
|
|
#else
|
2001-07-31 23:47:35 +00:00
|
|
|
# define JG(v) (java_globals.v)
|
2000-07-09 04:16:31 +00:00
|
|
|
#endif
|
|
|
|
|
2001-07-31 23:47:35 +00:00
|
|
|
ZEND_DECLARE_MODULE_GLOBALS(java)
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
static zend_class_entry java_class_entry;
|
|
|
|
|
2001-07-30 06:18:13 +00:00
|
|
|
static PHP_INI_MH(OnIniUpdate)
|
|
|
|
{
|
|
|
|
if (new_value) *(char**)mh_arg1 = new_value;
|
|
|
|
return SUCCESS;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ PHP_INI_BEGIN
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
PHP_INI_BEGIN()
|
2002-12-04 08:18:02 +00:00
|
|
|
PHP_INI_ENTRY1("java.class.path", NULL, PHP_INI_SYSTEM, OnIniUpdate, &classpath)
|
2000-03-15 10:35:38 +00:00
|
|
|
#ifndef JNI_11
|
2002-12-04 08:18:02 +00:00
|
|
|
PHP_INI_ENTRY1("java.home", NULL, PHP_INI_SYSTEM, OnIniUpdate, &javahome)
|
|
|
|
PHP_INI_ENTRY1("java.library.path", NULL, PHP_INI_SYSTEM,OnIniUpdate, &libpath)
|
2000-03-15 10:35:38 +00:00
|
|
|
#endif
|
2000-03-25 15:57:04 +00:00
|
|
|
#ifdef JAVALIB
|
2002-12-04 08:18:02 +00:00
|
|
|
PHP_INI_ENTRY1("java.library", JAVALIB, PHP_INI_SYSTEM, OnIniUpdate, &javalib)
|
2000-03-25 15:57:04 +00:00
|
|
|
#else
|
2002-12-04 08:18:02 +00:00
|
|
|
PHP_INI_ENTRY1("java.library", NULL, PHP_INI_SYSTEM, OnIniUpdate, &javalib)
|
2000-03-25 15:57:04 +00:00
|
|
|
#endif
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
PHP_INI_END()
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ jvm_destroy
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
/*
|
|
|
|
* Destroy a Java Virtual Machine.
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
void jvm_destroy(TSRMLS_D)
|
|
|
|
{
|
2000-07-09 04:16:31 +00:00
|
|
|
if (JG(php_reflect)) (*JG(jenv))->DeleteGlobalRef(JG(jenv), JG(php_reflect));
|
|
|
|
JG(php_reflect) = 0;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ addJVMOption
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
/*
|
|
|
|
* Create a Java Virtual Machine.
|
|
|
|
* - class.path, home, and library.path are read out of the INI file
|
|
|
|
* - appropriate (pre 1.1, JDK 1.1, and JDK 1.2) initialization is performed
|
|
|
|
* - net.php.reflect class file is located
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef JNI_12
|
2001-07-31 23:47:35 +00:00
|
|
|
static void addJVMOption(JavaVMInitArgs *vm_args, char *name, char *value)
|
|
|
|
{
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
char *option = (char*) malloc(strlen(name) + strlen(value) + 1);
|
|
|
|
strcpy(option, name);
|
|
|
|
strcat(option, value);
|
|
|
|
vm_args->options[vm_args->nOptions++].optionString = option;
|
|
|
|
}
|
|
|
|
#endif
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ jvm_create
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
static int jvm_create(TSRMLS_D)
|
|
|
|
{
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
int rc;
|
2000-07-09 04:16:31 +00:00
|
|
|
jobject local_php_reflect;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
jthrowable error;
|
|
|
|
|
2001-08-11 16:39:07 +00:00
|
|
|
jint (JNICALL *JNI_CreateVM)(const void*, const void*, void*);
|
2000-03-25 15:57:04 +00:00
|
|
|
#ifndef JNI_12
|
|
|
|
jint (JNICALL *JNI_DefaultArgs)(void*);
|
|
|
|
#endif
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
#ifdef JNI_11
|
|
|
|
JDK1_1InitArgs vm_args;
|
|
|
|
#else
|
|
|
|
JavaVMInitArgs vm_args;
|
|
|
|
#ifdef JNI_12
|
|
|
|
JavaVMOption options[3];
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2000-03-25 15:57:04 +00:00
|
|
|
if (javalib) {
|
|
|
|
dl_handle = DL_LOAD(javalib);
|
|
|
|
|
|
|
|
if (!dl_handle) {
|
2000-08-17 10:14:50 +00:00
|
|
|
php_error(E_ERROR, "Unable to load Java Library %s, error: %s",
|
2002-12-04 08:18:02 +00:00
|
|
|
javalib, DL_ERROR());
|
2000-03-25 15:57:04 +00:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#ifndef JAVALIB
|
|
|
|
if (!dl_handle)
|
|
|
|
JNI_CreateVM = &JNI_CreateJavaVM;
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
|
2001-08-11 16:39:07 +00:00
|
|
|
JNI_CreateVM = (jint (JNICALL *)(const void*, const void*, void*))
|
2000-03-25 15:57:04 +00:00
|
|
|
DL_FETCH_SYMBOL(dl_handle, "JNI_CreateJavaVM");
|
|
|
|
|
|
|
|
if (!JNI_CreateVM) {
|
|
|
|
php_error(E_ERROR, "Unable to locate CreateJavaVM function");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
#ifdef JNI_12
|
|
|
|
|
|
|
|
vm_args.version = JNI_VERSION_1_2;
|
1999-11-21 10:45:01 +00:00
|
|
|
vm_args.ignoreUnrecognized = JNI_FALSE;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
vm_args.options = options;
|
|
|
|
vm_args.nOptions = 0;
|
|
|
|
|
|
|
|
if (classpath) addJVMOption(&vm_args, "-Djava.class.path=", classpath);
|
|
|
|
if (javahome) addJVMOption(&vm_args, "-Djava.home=", javahome);
|
|
|
|
if (libpath) addJVMOption(&vm_args, "-Djava.library.path=", libpath);
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
2000-03-25 15:57:04 +00:00
|
|
|
#ifndef JAVALIB
|
|
|
|
if (!dl_handle)
|
|
|
|
JNI_DefaultArgs = &JNI_GetDefaultJavaVMInitArgs;
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
|
|
|
|
JNI_DefaultArgs = (jint (JNICALL *)(void*))
|
|
|
|
DL_FETCH_SYMBOL(dl_handle, "JNI_GetDefaultJavaVMInitArgs");
|
|
|
|
|
|
|
|
if (!JNI_DefaultArgs) {
|
|
|
|
php_error(E_ERROR, "Unable to locate GetDefaultJavaVMInitArgs function");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
vm_args.version=0x00010001;
|
2000-03-25 15:57:04 +00:00
|
|
|
(*JNI_DefaultArgs)(&vm_args);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
if (!classpath) classpath = "";
|
|
|
|
vm_args.classpath = classpath;
|
|
|
|
#ifdef KAFFE
|
|
|
|
vm_args.classhome = javahome;
|
|
|
|
vm_args.libraryhome = libpath;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
rc = (*JNI_CreateVM)(&JG(jvm), &JG(jenv), &vm_args);
|
2000-03-25 15:57:04 +00:00
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
if (rc) {
|
|
|
|
php_error(E_ERROR, "Unable to create Java Virtual Machine");
|
|
|
|
return rc;
|
|
|
|
}
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
JG(reflect_class) = (*JG(jenv))->FindClass(JG(jenv), "net/php/reflect");
|
|
|
|
error = (*JG(jenv))->ExceptionOccurred(JG(jenv));
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
if (error) {
|
2000-03-15 10:35:38 +00:00
|
|
|
jclass errClass;
|
|
|
|
jmethodID toString;
|
|
|
|
jobject errString;
|
|
|
|
const char *errAsUTF;
|
|
|
|
jboolean isCopy;
|
2000-07-09 04:16:31 +00:00
|
|
|
JNIEnv *jenv = JG(jenv);
|
2000-03-15 10:35:38 +00:00
|
|
|
(*jenv)->ExceptionClear(jenv);
|
|
|
|
errClass = (*jenv)->GetObjectClass(jenv, error);
|
|
|
|
toString = (*jenv)->GetMethodID(jenv, errClass, "toString",
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
"()Ljava/lang/String;");
|
2000-03-15 10:35:38 +00:00
|
|
|
errString = (*jenv)->CallObjectMethod(jenv, error, toString);
|
|
|
|
errAsUTF = (*jenv)->GetStringUTFChars(jenv, errString, &isCopy);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
php_error(E_ERROR, "%s", errAsUTF);
|
2000-03-15 10:35:38 +00:00
|
|
|
if (isCopy) (*jenv)->ReleaseStringUTFChars(jenv, error, errAsUTF);
|
2001-07-31 23:47:35 +00:00
|
|
|
jvm_destroy(TSRMLS_C);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
local_php_reflect = (*JG(jenv))->AllocObject(JG(jenv), JG(reflect_class));
|
|
|
|
JG(php_reflect) = (*JG(jenv))->NewGlobalRef(JG(jenv), local_php_reflect);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return rc;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ _java_makeObject
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
static jobject _java_makeObject(pval* arg TSRMLS_DC)
|
|
|
|
{
|
2000-07-21 22:08:50 +00:00
|
|
|
JNIEnv *jenv = JG(jenv);
|
|
|
|
jobject result;
|
|
|
|
pval **handle;
|
|
|
|
int type;
|
|
|
|
jmethodID makeArg;
|
|
|
|
jclass hashClass;
|
|
|
|
|
2001-09-25 21:58:48 +00:00
|
|
|
switch (Z_TYPE_P(arg)) {
|
2000-07-21 22:08:50 +00:00
|
|
|
case IS_STRING:
|
2001-09-25 21:58:48 +00:00
|
|
|
result=(*jenv)->NewByteArray(jenv, Z_STRLEN_P(arg));
|
2001-08-11 16:39:07 +00:00
|
|
|
(*jenv)->SetByteArrayRegion(jenv, (jbyteArray)result, 0,
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_STRLEN_P(arg), Z_STRVAL_P(arg));
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case IS_OBJECT:
|
2001-08-13 16:02:45 +00:00
|
|
|
zend_hash_index_find(Z_OBJPROP_P(arg), 0, (void*)&handle);
|
2001-09-25 21:58:48 +00:00
|
|
|
result = zend_list_find(Z_LVAL_PP(handle), &type);
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case IS_BOOL:
|
|
|
|
makeArg = (*jenv)->GetMethodID(jenv, JG(reflect_class), "MakeArg",
|
|
|
|
"(Z)Ljava/lang/Object;");
|
|
|
|
result = (*jenv)->CallObjectMethod(jenv, JG(php_reflect), makeArg,
|
2001-09-25 21:58:48 +00:00
|
|
|
(jboolean)(Z_LVAL_P(arg)));
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case IS_LONG:
|
|
|
|
makeArg = (*jenv)->GetMethodID(jenv, JG(reflect_class), "MakeArg",
|
|
|
|
"(J)Ljava/lang/Object;");
|
|
|
|
result = (*jenv)->CallObjectMethod(jenv, JG(php_reflect), makeArg,
|
2001-09-25 21:58:48 +00:00
|
|
|
(jlong)(Z_LVAL_P(arg)));
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
makeArg = (*jenv)->GetMethodID(jenv, JG(reflect_class), "MakeArg",
|
|
|
|
"(D)Ljava/lang/Object;");
|
|
|
|
result = (*jenv)->CallObjectMethod(jenv, JG(php_reflect), makeArg,
|
2001-09-25 21:58:48 +00:00
|
|
|
(jdouble)(Z_DVAL_P(arg)));
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case IS_ARRAY:
|
|
|
|
{
|
|
|
|
jobject jkey, jval;
|
|
|
|
zval **value;
|
|
|
|
zval key;
|
|
|
|
char *string_key;
|
|
|
|
ulong num_key;
|
|
|
|
jobject jold;
|
|
|
|
jmethodID put, init;
|
|
|
|
|
|
|
|
hashClass = (*jenv)->FindClass(jenv, "java/util/Hashtable");
|
|
|
|
init = (*jenv)->GetMethodID(jenv, hashClass, "<init>", "()V");
|
|
|
|
result = (*jenv)->NewObject(jenv, hashClass, init);
|
|
|
|
|
|
|
|
put = (*jenv)->GetMethodID(jenv, hashClass, "put",
|
|
|
|
"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
|
|
|
|
|
|
|
|
/* Iterate through hash */
|
2001-09-25 21:58:48 +00:00
|
|
|
zend_hash_internal_pointer_reset(Z_ARRVAL_P(arg));
|
|
|
|
while(zend_hash_get_current_data(Z_ARRVAL_P(arg), (void**)&value) == SUCCESS) {
|
2001-07-31 23:47:35 +00:00
|
|
|
jval = _java_makeObject(*value TSRMLS_CC);
|
2000-07-21 22:08:50 +00:00
|
|
|
|
2001-09-25 21:58:48 +00:00
|
|
|
switch (zend_hash_get_current_key(Z_ARRVAL_P(arg), &string_key, &num_key, 0)) {
|
2000-07-21 22:08:50 +00:00
|
|
|
case HASH_KEY_IS_STRING:
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE(key) = IS_STRING;
|
|
|
|
Z_STRVAL(key) = string_key;
|
|
|
|
Z_STRLEN(key) = strlen(string_key);
|
2001-07-31 23:47:35 +00:00
|
|
|
jkey = _java_makeObject(&key TSRMLS_CC);
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
case HASH_KEY_IS_LONG:
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE(key) = IS_LONG;
|
|
|
|
Z_LVAL(key) = num_key;
|
2001-07-31 23:47:35 +00:00
|
|
|
jkey = _java_makeObject(&key TSRMLS_CC);
|
2000-07-21 22:08:50 +00:00
|
|
|
break;
|
|
|
|
default: /* HASH_KEY_NON_EXISTANT */
|
|
|
|
jkey = 0;
|
|
|
|
}
|
|
|
|
jold = (*jenv)->CallObjectMethod(jenv, result, put, jkey, jval);
|
2001-09-25 21:58:48 +00:00
|
|
|
if (Z_TYPE_PP(value) != IS_OBJECT) (*jenv)->DeleteLocalRef(jenv, jval);
|
|
|
|
zend_hash_move_forward(Z_ARRVAL_P(arg));
|
2000-07-21 22:08:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
default:
|
|
|
|
result=0;
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-07-21 22:08:50 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ _java_makeArray
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
static jobjectArray _java_makeArray(int argc, pval** argv TSRMLS_DC)
|
|
|
|
{
|
2000-07-09 04:16:31 +00:00
|
|
|
JNIEnv *jenv = JG(jenv);
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
jclass objectClass = (*jenv)->FindClass(jenv, "java/lang/Object");
|
|
|
|
jobjectArray result = (*jenv)->NewObjectArray(jenv, argc, objectClass, 0);
|
|
|
|
jobject arg;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
for (i=0; i<argc; i++) {
|
2001-07-31 23:47:35 +00:00
|
|
|
arg = _java_makeObject(argv[i] TSRMLS_CC);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
(*jenv)->SetObjectArrayElement(jenv, result, i, arg);
|
2001-09-25 21:58:48 +00:00
|
|
|
if (Z_TYPE_P(argv[i]) != IS_OBJECT) (*jenv)->DeleteLocalRef(jenv, arg);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ checkError
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
static int checkError(pval *value)
|
|
|
|
{
|
2001-09-25 21:58:48 +00:00
|
|
|
if (Z_TYPE_P(value) == IS_EXCEPTION) {
|
|
|
|
php_error(E_WARNING, "%s", Z_STRVAL_P(value));
|
|
|
|
efree(Z_STRVAL_P(value));
|
2001-07-11 12:42:25 +00:00
|
|
|
ZVAL_FALSE(value);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return 1;
|
|
|
|
};
|
|
|
|
return 0;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
1999-11-29 15:36:25 +00:00
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ java_call_function_handler
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
/*
|
|
|
|
* Invoke a method on an object. If method name is "java", create a new
|
|
|
|
* object instead.
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
void java_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
2000-07-09 04:16:31 +00:00
|
|
|
JNIEnv *jenv;
|
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
pval *object = property_reference->object;
|
|
|
|
zend_overloaded_element *function_name = (zend_overloaded_element *)
|
2000-04-10 20:21:02 +00:00
|
|
|
property_reference->elements_list->tail->data;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2000-06-05 19:47:54 +00:00
|
|
|
int arg_count = ZEND_NUM_ARGS();
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
jlong result = 0;
|
2003-01-15 14:05:41 +00:00
|
|
|
zval ***arguments = (zval ***) emalloc(sizeof(zval *)*arg_count);
|
2000-08-04 18:39:47 +00:00
|
|
|
|
2003-01-15 14:05:41 +00:00
|
|
|
zend_get_parameters_array_ex(arg_count, arguments);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2001-07-31 23:47:35 +00:00
|
|
|
if (!JG(jenv)) jvm_create(TSRMLS_C);
|
2000-07-09 04:16:31 +00:00
|
|
|
if (!JG(jenv)) return;
|
|
|
|
jenv = JG(jenv);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2001-09-26 08:35:48 +00:00
|
|
|
if (!strcmp("java", Z_STRVAL(function_name->element))) {
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/* construct a Java object:
|
|
|
|
First argument is the class name. Any additional arguments will
|
|
|
|
be treated as constructor parameters. */
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
jmethodID co = (*jenv)->GetMethodID(jenv, JG(reflect_class), "CreateObject",
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
"(Ljava/lang/String;[Ljava/lang/Object;J)V");
|
2000-07-22 16:13:20 +00:00
|
|
|
jstring className;
|
2000-08-04 18:55:49 +00:00
|
|
|
result = (jlong)(long)object;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2000-07-22 16:13:20 +00:00
|
|
|
if (ZEND_NUM_ARGS() < 1) {
|
|
|
|
php_error(E_ERROR, "Missing classname in new Java() call");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2003-01-15 02:54:54 +00:00
|
|
|
className=(*jenv)->NewStringUTF(jenv, Z_STRVAL_PP(arguments[0]));
|
2000-07-09 04:16:31 +00:00
|
|
|
(*jenv)->CallVoidMethod(jenv, JG(php_reflect), co,
|
2003-01-15 02:54:54 +00:00
|
|
|
className, _java_makeArray(arg_count-1, *(arguments+1) TSRMLS_CC), result);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
(*jenv)->DeleteLocalRef(jenv, className);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
pval **handle;
|
|
|
|
int type;
|
|
|
|
jobject obj;
|
|
|
|
jstring method;
|
|
|
|
|
|
|
|
/* invoke a method on the given object */
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
jmethodID invoke = (*jenv)->GetMethodID(jenv, JG(reflect_class), "Invoke",
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
"(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;J)V");
|
2001-08-13 16:02:45 +00:00
|
|
|
zend_hash_index_find(Z_OBJPROP_P(object), 0, (void**) &handle);
|
2001-09-25 21:58:48 +00:00
|
|
|
obj = zend_list_find(Z_LVAL_PP(handle), &type);
|
2001-09-26 08:35:48 +00:00
|
|
|
method = (*jenv)->NewStringUTF(jenv, Z_STRVAL(function_name->element));
|
2000-08-04 18:55:49 +00:00
|
|
|
result = (jlong)(long)return_value;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
(*jenv)->CallVoidMethod(jenv, JG(php_reflect), invoke,
|
2003-01-15 02:54:54 +00:00
|
|
|
obj, method, _java_makeArray(arg_count, *arguments TSRMLS_CC), result);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
(*jenv)->DeleteLocalRef(jenv, method);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
efree(arguments);
|
|
|
|
pval_destructor(&function_name->element);
|
|
|
|
|
|
|
|
checkError((pval*)(long)result);
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2001-12-05 23:01:21 +00:00
|
|
|
/* {{{ proto object java_last_exception_get(void)
|
|
|
|
Get last Java exception */
|
2000-07-08 10:35:50 +00:00
|
|
|
PHP_FUNCTION(java_last_exception_get)
|
|
|
|
{
|
|
|
|
jlong result = 0;
|
|
|
|
jmethodID lastEx;
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
if (ZEND_NUM_ARGS()!=0) WRONG_PARAM_COUNT;
|
|
|
|
|
2000-08-04 18:55:49 +00:00
|
|
|
result = (jlong)(long)return_value;
|
2000-07-08 10:35:50 +00:00
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
lastEx = (*JG(jenv))->GetMethodID(JG(jenv), JG(reflect_class),
|
|
|
|
"lastException", "(J)V");
|
2000-07-08 10:35:50 +00:00
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
(*JG(jenv))->CallVoidMethod(JG(jenv), JG(php_reflect), lastEx, result);
|
2000-07-08 10:35:50 +00:00
|
|
|
}
|
|
|
|
|
2001-12-05 23:01:21 +00:00
|
|
|
/* }}} */
|
|
|
|
|
2000-07-08 10:35:50 +00:00
|
|
|
/***************************************************************************/
|
|
|
|
|
2001-12-05 23:01:21 +00:00
|
|
|
/* {{{ proto void java_last_exception_clear(void)
|
|
|
|
Clear last java extension */
|
2000-07-08 10:35:50 +00:00
|
|
|
PHP_FUNCTION(java_last_exception_clear)
|
|
|
|
{
|
|
|
|
jlong result = 0;
|
|
|
|
jmethodID clearEx;
|
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
if (ZEND_NUM_ARGS()!=0) WRONG_PARAM_COUNT;
|
|
|
|
|
2000-08-04 18:55:49 +00:00
|
|
|
result = (jlong)(long)return_value;
|
2000-07-08 10:35:50 +00:00
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
clearEx = (*JG(jenv))->GetMethodID(JG(jenv), JG(reflect_class),
|
|
|
|
"clearException", "()V");
|
2000-07-08 10:35:50 +00:00
|
|
|
|
2000-07-09 04:16:31 +00:00
|
|
|
(*JG(jenv))->CallVoidMethod(JG(jenv), JG(php_reflect), clearEx);
|
2000-07-08 10:35:50 +00:00
|
|
|
}
|
|
|
|
|
2001-12-05 23:01:21 +00:00
|
|
|
/* }}} */
|
|
|
|
|
2000-07-08 10:35:50 +00:00
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ _java_getset_property
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
static pval _java_getset_property
|
2001-07-31 23:47:35 +00:00
|
|
|
(zend_property_reference *property_reference, jobjectArray value TSRMLS_DC)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
pval presult;
|
|
|
|
jlong result = 0;
|
|
|
|
pval **pobject;
|
|
|
|
jobject obj;
|
|
|
|
int type;
|
|
|
|
|
|
|
|
/* get the property name */
|
2000-04-10 20:21:02 +00:00
|
|
|
zend_llist_element *element = property_reference->elements_list->head;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
zend_overloaded_element *property=(zend_overloaded_element *)element->data;
|
2000-08-04 18:39:47 +00:00
|
|
|
jstring propName;
|
|
|
|
|
|
|
|
JNIEnv *jenv;
|
|
|
|
jenv = JG(jenv);
|
|
|
|
|
2001-09-26 08:35:48 +00:00
|
|
|
propName = (*jenv)->NewStringUTF(jenv, Z_STRVAL(property->element));
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/* get the object */
|
2001-08-13 16:02:45 +00:00
|
|
|
zend_hash_index_find(Z_OBJPROP_P(property_reference->object),
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
0, (void **) &pobject);
|
2001-09-25 21:58:48 +00:00
|
|
|
obj = zend_list_find(Z_LVAL_PP(pobject), &type);
|
2000-11-16 22:19:48 +00:00
|
|
|
result = (jlong)(long) &presult;
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE(presult) = IS_NULL;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
if (!obj || (type!=le_jobject)) {
|
|
|
|
php_error(E_ERROR,
|
|
|
|
"Attempt to access a Java property on a non-Java object");
|
|
|
|
} else {
|
|
|
|
/* invoke the method */
|
2000-07-09 04:16:31 +00:00
|
|
|
jmethodID gsp = (*jenv)->GetMethodID(jenv, JG(reflect_class), "GetSetProp",
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
"(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;J)V");
|
2000-07-09 04:16:31 +00:00
|
|
|
(*jenv)->CallVoidMethod
|
|
|
|
(jenv, JG(php_reflect), gsp, obj, propName, value, result);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
(*jenv)->DeleteLocalRef(jenv, propName);
|
|
|
|
pval_destructor(&property->element);
|
|
|
|
return presult;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ java_get_property_handler
|
|
|
|
*/
|
2001-08-07 19:02:01 +00:00
|
|
|
pval java_get_property_handler(zend_property_reference *property_reference)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
2001-08-08 01:52:22 +00:00
|
|
|
pval presult;
|
2001-08-07 19:02:01 +00:00
|
|
|
TSRMLS_FETCH();
|
|
|
|
|
2001-08-08 01:52:22 +00:00
|
|
|
presult = _java_getset_property(property_reference, 0 TSRMLS_CC);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
checkError(&presult);
|
|
|
|
return presult;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ java_set_property_handler
|
|
|
|
*/
|
2001-08-07 19:02:01 +00:00
|
|
|
int java_set_property_handler(zend_property_reference *property_reference, pval *value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
2000-08-04 18:39:47 +00:00
|
|
|
pval presult;
|
2001-08-07 19:02:01 +00:00
|
|
|
TSRMLS_FETCH();
|
2001-07-31 23:47:35 +00:00
|
|
|
|
|
|
|
presult = _java_getset_property(property_reference, _java_makeArray(1, &value TSRMLS_CC) TSRMLS_CC);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return checkError(&presult) ? FAILURE : SUCCESS;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ _php_java_destructor
|
|
|
|
*/
|
2001-07-31 05:44:11 +00:00
|
|
|
static void _php_java_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
|
2000-10-20 18:25:16 +00:00
|
|
|
{
|
|
|
|
void *jobject = (void *)rsrc->ptr;
|
2001-07-31 05:44:11 +00:00
|
|
|
|
|
|
|
if (JG(jenv)) (*JG(jenv))->DeleteGlobalRef(JG(jenv), jobject);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ alloc_java_globals_ctor
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
static void alloc_java_globals_ctor(zend_java_globals *java_globals TSRMLS_DC)
|
2001-07-31 05:44:11 +00:00
|
|
|
{
|
2001-07-31 23:47:35 +00:00
|
|
|
memset(java_globals, 0, sizeof(zend_java_globals));
|
2000-07-09 04:16:31 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-07-09 04:16:31 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ PHP_MINIT_FUNCTION
|
|
|
|
*/
|
2001-07-30 01:56:43 +00:00
|
|
|
PHP_MINIT_FUNCTION(java)
|
|
|
|
{
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
INIT_OVERLOADED_CLASS_ENTRY(java_class_entry, "java", NULL,
|
|
|
|
java_call_function_handler,
|
|
|
|
java_get_property_handler,
|
|
|
|
java_set_property_handler);
|
|
|
|
|
2001-07-30 01:56:43 +00:00
|
|
|
zend_register_internal_class(&java_class_entry TSRMLS_CC);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2000-10-25 17:44:02 +00:00
|
|
|
le_jobject = zend_register_list_destructors_ex(_php_java_destructor, NULL, "java", module_number);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
REGISTER_INI_ENTRIES();
|
2000-03-15 10:35:38 +00:00
|
|
|
|
|
|
|
if (!classpath) classpath = getenv("CLASSPATH");
|
|
|
|
|
|
|
|
if (!libpath) {
|
|
|
|
libpath=PG(extension_dir);
|
|
|
|
}
|
|
|
|
|
2001-07-31 23:47:35 +00:00
|
|
|
ZEND_INIT_MODULE_GLOBALS(java, alloc_java_globals_ctor, NULL);
|
2000-07-09 04:16:31 +00:00
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return SUCCESS;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ PHP_MSHUTDOWN_FUNCTION
|
|
|
|
*/
|
2001-07-31 23:47:35 +00:00
|
|
|
PHP_MSHUTDOWN_FUNCTION(java)
|
|
|
|
{
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
UNREGISTER_INI_ENTRIES();
|
2001-07-31 23:47:35 +00:00
|
|
|
if (JG(jvm)) jvm_destroy(TSRMLS_C);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
return SUCCESS;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2001-07-31 23:47:35 +00:00
|
|
|
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
function_entry java_functions[] = {
|
2000-07-08 10:35:50 +00:00
|
|
|
PHP_FE(java_last_exception_get, NULL)
|
|
|
|
PHP_FE(java_last_exception_clear, NULL)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{NULL, NULL, NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static PHP_MINFO_FUNCTION(java) {
|
|
|
|
DISPLAY_INI_ENTRIES();
|
|
|
|
}
|
|
|
|
|
1999-12-17 20:55:31 +00:00
|
|
|
zend_module_entry java_module_entry = {
|
2001-10-11 23:33:59 +00:00
|
|
|
STANDARD_MODULE_HEADER,
|
|
|
|
"java",
|
|
|
|
java_functions,
|
|
|
|
PHP_MINIT(java),
|
|
|
|
PHP_MSHUTDOWN(java),
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
PHP_MINFO(java),
|
|
|
|
NO_VERSION_YET,
|
|
|
|
STANDARD_MODULE_PROPERTIES
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
};
|
|
|
|
|
2000-05-02 00:30:36 +00:00
|
|
|
ZEND_GET_MODULE(java)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromString
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromString
|
2000-05-12 09:51:16 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jbyteArray jvalue)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
2000-03-15 10:35:38 +00:00
|
|
|
jboolean isCopy;
|
2000-05-12 09:51:16 +00:00
|
|
|
jbyte *value = (*jenv)->GetByteArrayElements(jenv, jvalue, &isCopy);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
pval *presult = (pval*)(long)result;
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(presult)=IS_STRING;
|
|
|
|
Z_STRLEN_P(presult)=(*jenv)->GetArrayLength(jenv, jvalue);
|
|
|
|
Z_STRVAL_P(presult)=emalloc(Z_STRLEN_P(presult)+1);
|
|
|
|
memcpy(Z_STRVAL_P(presult), value, Z_STRLEN_P(presult));
|
|
|
|
Z_STRVAL_P(presult)[Z_STRLEN_P(presult)]=0;
|
2000-05-12 09:51:16 +00:00
|
|
|
if (isCopy) (*jenv)->ReleaseByteArrayElements(jenv, jvalue, value, 0);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromLong
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromLong
|
1999-11-29 15:36:25 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jlong value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
pval *presult = (pval*)(long)result;
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(presult)=IS_LONG;
|
|
|
|
Z_LVAL_P(presult)=(long)value;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromDouble
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromDouble
|
1999-11-29 15:36:25 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jdouble value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
pval *presult = (pval*)(long)result;
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(presult)=IS_DOUBLE;
|
|
|
|
Z_DVAL_P(presult)=value;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromBoolean
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromBoolean
|
1999-11-29 15:36:25 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jboolean value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
pval *presult = (pval*)(long)result;
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(presult)=IS_BOOL;
|
|
|
|
Z_LVAL_P(presult)=value;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromObject
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromObject
|
1999-11-29 15:36:25 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jobject value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
/* wrapper the java object in a pval object */
|
|
|
|
pval *presult = (pval*)(long)result;
|
|
|
|
pval *handle;
|
2001-08-14 07:09:20 +00:00
|
|
|
TSRMLS_FETCH();
|
|
|
|
|
2001-09-25 21:58:48 +00:00
|
|
|
if (Z_TYPE_P(presult) != IS_OBJECT) {
|
2001-08-13 16:02:45 +00:00
|
|
|
object_init_ex(presult, &java_class_entry);
|
|
|
|
presult->is_ref=1;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
presult->refcount=1;
|
2001-08-13 16:02:45 +00:00
|
|
|
}
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
1999-12-26 21:21:33 +00:00
|
|
|
ALLOC_ZVAL(handle);
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(handle) = IS_LONG;
|
|
|
|
Z_LVAL_P(handle) =
|
2001-08-11 16:39:07 +00:00
|
|
|
zend_list_insert((*jenv)->NewGlobalRef(jenv, value), le_jobject);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
pval_copy_constructor(handle);
|
|
|
|
INIT_PZVAL(handle);
|
2001-08-13 16:02:45 +00:00
|
|
|
zend_hash_index_update(Z_OBJPROP_P(presult), 0, &handle, sizeof(pval *), NULL);
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setResultFromArray
|
|
|
|
*/
|
2000-02-20 12:09:34 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromArray
|
|
|
|
(JNIEnv *jenv, jclass self, jlong result)
|
|
|
|
{
|
|
|
|
array_init( (pval*)(long)result );
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-02-20 12:09:34 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_nextElement
|
|
|
|
*/
|
2000-02-20 12:09:34 +00:00
|
|
|
JNIEXPORT jlong JNICALL Java_net_php_reflect_nextElement
|
|
|
|
(JNIEnv *jenv, jclass self, jlong array)
|
|
|
|
{
|
|
|
|
pval *result;
|
|
|
|
pval *handle = (pval*)(long)array;
|
|
|
|
ALLOC_ZVAL(result);
|
2001-09-25 21:58:48 +00:00
|
|
|
zend_hash_next_index_insert(Z_ARRVAL_P(handle), &result, sizeof(zval *), NULL);
|
2000-02-20 12:09:34 +00:00
|
|
|
return (jlong)(long)result;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-02-20 12:09:34 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_hashIndexUpdate
|
|
|
|
*/
|
2000-07-22 20:36:11 +00:00
|
|
|
JNIEXPORT jlong JNICALL Java_net_php_reflect_hashIndexUpdate
|
|
|
|
(JNIEnv *jenv, jclass self, jlong array, jlong key)
|
|
|
|
{
|
|
|
|
pval *result;
|
|
|
|
pval *handle = (pval*)(long)array;
|
|
|
|
ALLOC_ZVAL(result);
|
2001-09-25 21:58:48 +00:00
|
|
|
zend_hash_index_update(Z_ARRVAL_P(handle), (unsigned long)key,
|
2000-07-22 20:36:11 +00:00
|
|
|
&result, sizeof(zval *), NULL);
|
|
|
|
return (jlong)(long)result;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-07-22 20:36:11 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_hashUpdate
|
|
|
|
*/
|
2000-07-22 17:32:32 +00:00
|
|
|
JNIEXPORT jlong JNICALL Java_net_php_reflect_hashUpdate
|
|
|
|
(JNIEnv *jenv, jclass self, jlong array, jbyteArray key)
|
|
|
|
{
|
|
|
|
pval *result;
|
|
|
|
pval pkey;
|
|
|
|
pval *handle = (pval*)(long)array;
|
|
|
|
ALLOC_ZVAL(result);
|
|
|
|
Java_net_php_reflect_setResultFromString(jenv, self, (jlong)(long)&pkey, key);
|
2001-09-25 21:58:48 +00:00
|
|
|
zend_hash_update(Z_ARRVAL_P(handle), Z_STRVAL(pkey), Z_STRLEN(pkey)+1,
|
2000-07-22 17:32:32 +00:00
|
|
|
&result, sizeof(zval *), NULL);
|
|
|
|
return (jlong)(long)result;
|
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
2000-07-22 17:32:32 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setException
|
|
|
|
*/
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setException
|
2000-06-30 04:48:46 +00:00
|
|
|
(JNIEnv *jenv, jclass self, jlong result, jbyteArray value)
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
{
|
|
|
|
pval *presult = (pval*)(long)result;
|
|
|
|
Java_net_php_reflect_setResultFromString(jenv, self, result, value);
|
2001-09-25 21:58:48 +00:00
|
|
|
Z_TYPE_P(presult)=IS_EXCEPTION;
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
1999-11-29 15:36:25 +00:00
|
|
|
|
2002-08-06 22:08:23 +00:00
|
|
|
/* {{{ Java_net_php_reflect_setEnv
|
|
|
|
*/
|
1999-11-29 15:36:25 +00:00
|
|
|
JNIEXPORT void JNICALL Java_net_php_reflect_setEnv
|
2001-07-31 23:47:35 +00:00
|
|
|
(JNIEnv *newJenv, jclass self TSRMLS_DC)
|
1999-11-29 15:36:25 +00:00
|
|
|
{
|
2000-07-09 04:16:31 +00:00
|
|
|
jobject local_php_reflect;
|
|
|
|
|
|
|
|
JG(jenv)=newJenv;
|
|
|
|
|
|
|
|
if (!self) self = (*JG(jenv))->FindClass(JG(jenv), "net/php/reflect");
|
|
|
|
JG(reflect_class) = self;
|
|
|
|
|
|
|
|
if (JG(php_reflect)) (*JG(jenv))->DeleteGlobalRef(JG(jenv), JG(php_reflect));
|
|
|
|
local_php_reflect = (*JG(jenv))->AllocObject(JG(jenv), JG(reflect_class));
|
|
|
|
JG(php_reflect) = (*JG(jenv))->NewGlobalRef(JG(jenv), local_php_reflect);
|
1999-11-29 15:36:25 +00:00
|
|
|
}
|
2002-08-06 22:08:23 +00:00
|
|
|
/* }}} */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Local variables:
|
|
|
|
* tab-width: 4
|
|
|
|
* c-basic-offset: 4
|
|
|
|
* End:
|
|
|
|
* vim600: sw=4 ts=4 fdm=marker
|
|
|
|
* vim<600: sw=4 ts=4
|
|
|
|
*/
|