[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/NEWS branches/PHP_5_4/ext/reflection/php_reflection.c branches/PHP_5_4/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt branches/PH

2011-08-26 Thread Sebastian Bergmann
sebastianFri, 26 Aug 2011 07:40:31 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315538

Log:
Close #55490.

Bug: https://bugs.php.net/55490 (Open) Allow instantiating objects without 
invoking the constructor
  
Changed paths:
U   php/php-src/branches/PHP_5_4/NEWS
U   php/php-src/branches/PHP_5_4/ext/reflection/php_reflection.c
A   
php/php-src/branches/PHP_5_4/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt
U   
php/php-src/branches/PHP_5_4/ext/reflection/tests/ReflectionClass_toString_001.phpt
U   php/php-src/trunk/ext/reflection/php_reflection.c
A   
php/php-src/trunk/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt
U   php/php-src/trunk/ext/reflection/tests/ReflectionClass_toString_001.phpt

Modified: php/php-src/branches/PHP_5_4/NEWS
===
--- php/php-src/branches/PHP_5_4/NEWS	2011-08-26 07:34:58 UTC (rev 315537)
+++ php/php-src/branches/PHP_5_4/NEWS	2011-08-26 07:40:31 UTC (rev 315538)
@@ -23,6 +23,10 @@
 - Improved NSAPI SAPI: (Uwe Schindler)
   . Don't set $_SERVER['HTTPS'] on unsecure connection (bug #55403).

+- Improved Reflection extension:
+  . Added ReflectionClass::newInstanceWithoutConstructor() to create a new
+instance of a class without invoking its constructor. FR #55490. (Sebastian)
+
 04 Aug 2011, PHP 5.4.0 Alpha 3
 - Added features:
  . Short array syntax, see UPGRADING guide for full details (rsky0711 at gmail

Modified: php/php-src/branches/PHP_5_4/ext/reflection/php_reflection.c
===
--- php/php-src/branches/PHP_5_4/ext/reflection/php_reflection.c	2011-08-26 07:34:58 UTC (rev 315537)
+++ php/php-src/branches/PHP_5_4/ext/reflection/php_reflection.c	2011-08-26 07:40:31 UTC (rev 315538)
@@ -4129,6 +4129,25 @@
 }
 /* }}} */

+/* {{{ proto public stdclass ReflectionClass::newInstanceWithoutConstructor()
+   Returns an instance of this class without invoking its constructor */
+ZEND_METHOD(reflection_class, newInstanceWithoutConstructor)
+{
+	zval *retval_ptr = NULL;
+	reflection_object *intern;
+	zend_class_entry *ce;
+
+	METHOD_NOTSTATIC(reflection_class_ptr);
+	GET_REFLECTION_OBJECT_PTR(ce);
+
+	if (ce-create_object != NULL) {
+		zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, Class %s is an internal class that cannot be instantiated without invoking its constructor, ce-name);
+	}
+
+	object_init_ex(return_value, ce);
+}
+/* }}} */
+
 /* {{{ proto public stdclass ReflectionClass::newInstanceArgs([array args])
Returns an instance of this class */
 ZEND_METHOD(reflection_class, newInstanceArgs)
@@ -5694,6 +5713,9 @@
 	ZEND_ARG_INFO(0, args)
 ZEND_END_ARG_INFO()

+ZEND_BEGIN_ARG_INFO(arginfo_reflection_class_newInstanceWithoutConstructor, 0)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(arginfo_reflection_class_newInstanceArgs, 0, 0, 0)
 	ZEND_ARG_ARRAY_INFO(0, args, 0)
 ZEND_END_ARG_INFO()
@@ -5742,6 +5764,7 @@
 	ZEND_ME(reflection_class, getModifiers, arginfo_reflection__void, 0)
 	ZEND_ME(reflection_class, isInstance, arginfo_reflection_class_isInstance, 0)
 	ZEND_ME(reflection_class, newInstance, arginfo_reflection_class_newInstance, 0)
+	ZEND_ME(reflection_class, newInstanceWithoutConstructor, arginfo_reflection_class_newInstanceWithoutConstructor, 0)
 	ZEND_ME(reflection_class, newInstanceArgs, arginfo_reflection_class_newInstanceArgs, 0)
 	ZEND_ME(reflection_class, getParentClass, arginfo_reflection__void, 0)
 	ZEND_ME(reflection_class, isSubclassOf, arginfo_reflection_class_isSubclassOf, 0)

Added: php/php-src/branches/PHP_5_4/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt
===
--- php/php-src/branches/PHP_5_4/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt	(rev 0)
+++ php/php-src/branches/PHP_5_4/ext/reflection/tests/ReflectionClass_newInstanceWithoutConstructor.phpt	2011-08-26 07:40:31 UTC (rev 315538)
@@ -0,0 +1,33 @@
+--TEST--
+ReflectionClass::newInstanceWithoutConstructor()
+--CREDITS--
+Sebastian Bergmann sebast...@php.net
+--FILE--
+?php
+class Foo
+{
+public function __construct()
+{
+print __METHOD__;
+}
+}
+
+$class = new ReflectionClass('Foo');
+var_dump($class-newInstanceWithoutConstructor());
+
+$class = new ReflectionClass('StdClass');
+var_dump($class-newInstanceWithoutConstructor());
+
+$class = new ReflectionClass('DateTime');
+var_dump($class-newInstanceWithoutConstructor());
+--EXPECTF--
+object(Foo)#%d (0) {
+}
+object(stdClass)#%d (0) {
+}
+
+Fatal error: Uncaught exception 'ReflectionException' with message 'Class DateTime is an internal class that cannot be instantiated without invoking its constructor' in %s/tests/ReflectionClass_newInstanceWithoutConstructor.php:%d
+Stack trace:
+#0 

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd.c branches/PHP_5_4/ext/mysqlnd/mysqlnd.c trunk/ext/mysqlnd/mysqlnd.c

2011-08-26 Thread Andrey Hristov
andrey   Fri, 26 Aug 2011 12:14:31 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315549

Log:
fix valgrind warnings in debug builds

Changed paths:
U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
U   php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c
U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2011-08-26 11:34:18 UTC 
(rev 315548)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2011-08-26 12:14:31 UTC 
(rev 315549)
@@ -1407,7 +1407,7 @@
char buff[4];

DBG_ENTER(mysqlnd_conn::kill);
-   DBG_INF_FMT(conn=%llu pid=%lu, conn-thread_id, pid);
+   DBG_INF_FMT(conn=%llu pid=%u, conn-thread_id, pid);

int4store(buff, pid);


Modified: php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c
===
--- php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c  2011-08-26 11:34:18 UTC 
(rev 315548)
+++ php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c  2011-08-26 12:14:31 UTC 
(rev 315549)
@@ -1523,7 +1523,7 @@
zend_uchar buff[4];

DBG_ENTER(mysqlnd_conn::kill);
-   DBG_INF_FMT(conn=%llu pid=%lu, conn-thread_id, pid);
+   DBG_INF_FMT(conn=%llu pid=%u, conn-thread_id, pid);

int4store(buff, pid);


Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c 2011-08-26 11:34:18 UTC (rev 
315548)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c 2011-08-26 12:14:31 UTC (rev 
315549)
@@ -1523,7 +1523,7 @@
zend_uchar buff[4];

DBG_ENTER(mysqlnd_conn::kill);
-   DBG_INF_FMT(conn=%llu pid=%lu, conn-thread_id, pid);
+   DBG_INF_FMT(conn=%llu pid=%u, conn-thread_id, pid);

int4store(buff, pid);


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/trunk/ext/mbstring/libmbfl/filters/ mbfilter_sjis_mobile.h mbfilter_utf8_mobile.c

2011-08-26 Thread Rui Hirokawa
hirokawa Sat, 27 Aug 2011 00:07:20 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315589

Log:
update pua conversion tables.

Changed paths:
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h   
2011-08-26 23:57:48 UTC (rev 315588)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h   
2011-08-27 00:07:20 UTC (rev 315589)
@@ -47,6 +47,11 @@
 extern const struct mbfl_convert_vtbl vtbl_sjis_sb_wchar;
 extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_sb;

+extern const unsigned short mbfl_docomo2uni_pua[4][3];
+extern const unsigned short mbfl_kddi2uni_pua[6][3];
+extern const unsigned short mbfl_sb2uni_pua[6][3];
+extern const unsigned short mbfl_kddi2uni_pua_b[8][3];
+
 int mbfl_filt_conv_sjis_mobile_wchar(int c, mbfl_convert_filter *filter);
 int mbfl_filt_conv_wchar_sjis_mobile(int c, mbfl_convert_filter *filter);
 int mbfl_filt_conv_sjis_mobile_flush(mbfl_convert_filter *filter);

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c   
2011-08-26 23:57:48 UTC (rev 315588)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c   
2011-08-27 00:07:20 UTC (rev 315589)
@@ -37,10 +37,6 @@
 #include mbfilter_sjis_mobile.h

 extern int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter);
-extern const int mbfl_docomo2uni_pua[4][3];
-extern const int mbfl_kddi2uni_pua[6][3];
-extern const int mbfl_sb2uni_pua[6][3];
-extern const int mbfl_kddi2uni_pua_b[8][3];

 extern const unsigned char mblen_table_utf8[];


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/ mbfilter_sjis_mobile.h mbfilter_utf8_mobile.c

2011-08-26 Thread Rui Hirokawa
hirokawa Sat, 27 Aug 2011 00:08:02 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315590

Log:
MFH: update pua conversion tables.

Changed paths:
U   
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
U   
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c

Modified: 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
===
--- 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
2011-08-27 00:07:20 UTC (rev 315589)
+++ 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.h
2011-08-27 00:08:02 UTC (rev 315590)
@@ -47,6 +47,11 @@
 extern const struct mbfl_convert_vtbl vtbl_sjis_sb_wchar;
 extern const struct mbfl_convert_vtbl vtbl_wchar_sjis_sb;

+extern const unsigned short mbfl_docomo2uni_pua[4][3];
+extern const unsigned short mbfl_kddi2uni_pua[6][3];
+extern const unsigned short mbfl_sb2uni_pua[6][3];
+extern const unsigned short mbfl_kddi2uni_pua_b[8][3];
+
 int mbfl_filt_conv_sjis_mobile_wchar(int c, mbfl_convert_filter *filter);
 int mbfl_filt_conv_wchar_sjis_mobile(int c, mbfl_convert_filter *filter);
 int mbfl_filt_conv_sjis_mobile_flush(mbfl_convert_filter *filter);

Modified: 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
===
--- 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
2011-08-27 00:07:20 UTC (rev 315589)
+++ 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
2011-08-27 00:08:02 UTC (rev 315590)
@@ -37,10 +37,6 @@
 #include mbfilter_sjis_mobile.h

 extern int mbfl_filt_ident_utf8(int c, mbfl_identify_filter *filter);
-extern const int mbfl_docomo2uni_pua[4][3];
-extern const int mbfl_kddi2uni_pua[6][3];
-extern const int mbfl_sb2uni_pua[6][3];
-extern const int mbfl_kddi2uni_pua_b[8][3];

 extern const unsigned char mblen_table_utf8[];


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/trunk/ext/mbstring/libmbfl/filters/ mbfilter_utf8.c mbfilter_utf8_mobile.c

2011-08-26 Thread Rui Hirokawa
hirokawa Sat, 27 Aug 2011 01:25:10 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315598

Log:
corrected valid unicode area.

Changed paths:
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
U   php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8.c  
2011-08-27 01:23:12 UTC (rev 315597)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8.c  
2011-08-27 01:25:10 UTC (rev 315598)
@@ -116,7 +116,7 @@
filter-cache = 0;
if ((status == 0x10  s = 0x80) ||
(status == 0x21  s = 0x800  (s  0xd800 || s  
0xdfff)) ||
-   (status == 0x32  s = 0x1  s  0x20)) {
+   (status == 0x32  s = 0x1  s  0x11)) {
CK((*filter-output_function)(s, filter-data));
} else {
w = s  MBFL_WCSGROUP_MASK;

Modified: php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
===
--- php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c   
2011-08-27 01:23:12 UTC (rev 315597)
+++ php/php-src/trunk/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c   
2011-08-27 01:25:10 UTC (rev 315598)
@@ -207,7 +207,7 @@
filter-cache = 0;
if ((status == 0x10  s = 0x80) ||
(status == 0x21  s = 0x800  (s  0xd800 || s  
0xdfff)) ||
-   (status == 0x32  s = 0x1  s  0x20)) {
+   (status == 0x32  s = 0x1  s  0x11)) {

if (filter-from-no_encoding == 
mbfl_no_encoding_utf8_docomo 
mbfilter_conv_r_map_tbl(s, s1, 
mbfl_docomo2uni_pua, 4)  0) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/ mbfilter_utf8.c mbfilter_utf8_mobile.c

2011-08-26 Thread Rui Hirokawa
hirokawa Sat, 27 Aug 2011 01:25:24 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=315599

Log:
MFH: corrected valid unicode area.

Changed paths:
U   
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
U   
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c

Modified: 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
===
--- php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
2011-08-27 01:25:10 UTC (rev 315598)
+++ php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8.c   
2011-08-27 01:25:24 UTC (rev 315599)
@@ -116,7 +116,7 @@
filter-cache = 0;
if ((status == 0x10  s = 0x80) ||
(status == 0x21  s = 0x800  (s  0xd800 || s  
0xdfff)) ||
-   (status == 0x32  s = 0x1  s  0x20)) {
+   (status == 0x32  s = 0x1  s  0x11)) {
CK((*filter-output_function)(s, filter-data));
} else {
w = s  MBFL_WCSGROUP_MASK;

Modified: 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
===
--- 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
2011-08-27 01:25:10 UTC (rev 315598)
+++ 
php/php-src/branches/PHP_5_4/ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.c
2011-08-27 01:25:24 UTC (rev 315599)
@@ -207,7 +207,7 @@
filter-cache = 0;
if ((status == 0x10  s = 0x80) ||
(status == 0x21  s = 0x800  (s  0xd800 || s  
0xdfff)) ||
-   (status == 0x32  s = 0x1  s  0x20)) {
+   (status == 0x32  s = 0x1  s  0x11)) {

if (filter-from-no_encoding == 
mbfl_no_encoding_utf8_docomo 
mbfilter_conv_r_map_tbl(s, s1, 
mbfl_docomo2uni_pua, 4)  0) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php