andrei          Fri Oct 27 21:22:06 2006 UTC

  Modified files:              
    /ZendEngine2        zend.h zend_API.c zend_API.h zend_compile.c 
                        zend_compile.h zend_globals.h zend_language_scanner.l 
    /php-src/ext/reflection     php_reflection.c 
  Log:
  Turn doc comments into zstr strings with corresponding adjustments.
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend.h?r1=1.329&r2=1.330&diff_format=u
Index: ZendEngine2/zend.h
diff -u ZendEngine2/zend.h:1.329 ZendEngine2/zend.h:1.330
--- ZendEngine2/zend.h:1.329    Mon Oct 16 21:13:13 2006
+++ ZendEngine2/zend.h  Fri Oct 27 21:22:05 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend.h,v 1.329 2006/10/16 21:13:13 andrei Exp $ */
+/* $Id: zend.h,v 1.330 2006/10/27 21:22:05 andrei Exp $ */
 
 #ifndef ZEND_H
 #define ZEND_H
@@ -399,7 +399,7 @@
        char *filename;
        zend_uint line_start;
        zend_uint line_end;
-       char *doc_comment;
+       zstr doc_comment;
        zend_uint doc_comment_len;
 
        struct _zend_module_entry *module;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.c?r1=1.413&r2=1.414&diff_format=u
Index: ZendEngine2/zend_API.c
diff -u ZendEngine2/zend_API.c:1.413 ZendEngine2/zend_API.c:1.414
--- ZendEngine2/zend_API.c:1.413        Tue Oct 17 22:15:19 2006
+++ ZendEngine2/zend_API.c      Fri Oct 27 21:22:05 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_API.c,v 1.413 2006/10/17 22:15:19 andrei Exp $ */
+/* $Id: zend_API.c,v 1.414 2006/10/27 21:22:05 andrei Exp $ */
 
 #include "zend.h"
 #include "zend_execute.h"
@@ -2902,7 +2902,7 @@
        return module->version;
 }
 
-ZEND_API int zend_u_declare_property_ex(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type, char *doc_comment, 
int doc_comment_len TSRMLS_DC)
+ZEND_API int zend_u_declare_property_ex(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type, zstr doc_comment, 
int doc_comment_len TSRMLS_DC)
 {
        zend_property_info property_info;
        HashTable *target_symbol_table;
@@ -2977,19 +2977,19 @@
        return SUCCESS;
 }
 
-ZEND_API int zend_declare_property_ex(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type, char *doc_comment, int 
doc_comment_len TSRMLS_DC)
+ZEND_API int zend_declare_property_ex(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type, zstr doc_comment, int 
doc_comment_len TSRMLS_DC)
 {
-       return zend_u_declare_property_ex(ce, IS_STRING, ZSTR(name), 
name_length, property, access_type, NULL, 0 TSRMLS_CC);
+       return zend_u_declare_property_ex(ce, IS_STRING, ZSTR(name), 
name_length, property, access_type, doc_comment, doc_comment_len TSRMLS_CC);
 }
 
 ZEND_API int zend_u_declare_property(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type TSRMLS_DC)
 {
-       return zend_u_declare_property_ex(ce, type, name, name_length, 
property, access_type, NULL, 0 TSRMLS_CC);
+       return zend_u_declare_property_ex(ce, type, name, name_length, 
property, access_type, NULL_ZSTR, 0 TSRMLS_CC);
 }
 
 ZEND_API int zend_declare_property(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type TSRMLS_DC)
 {
-       return zend_u_declare_property_ex(ce, IS_STRING, ZSTR(name), 
name_length, property, access_type, NULL, 0 TSRMLS_CC);
+       return zend_u_declare_property_ex(ce, IS_STRING, ZSTR(name), 
name_length, property, access_type, NULL_ZSTR, 0 TSRMLS_CC);
 }
 
 ZEND_API int zend_declare_property_null(zend_class_entry *ce, char *name, int 
name_length, int access_type TSRMLS_DC)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.h?r1=1.267&r2=1.268&diff_format=u
Index: ZendEngine2/zend_API.h
diff -u ZendEngine2/zend_API.h:1.267 ZendEngine2/zend_API.h:1.268
--- ZendEngine2/zend_API.h:1.267        Tue Oct 24 12:46:33 2006
+++ ZendEngine2/zend_API.h      Fri Oct 27 21:22:05 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_API.h,v 1.267 2006/10/24 12:46:33 tony2001 Exp $ */
+/* $Id: zend_API.h,v 1.268 2006/10/27 21:22:05 andrei Exp $ */
 
 #ifndef ZEND_API_H
 #define ZEND_API_H
@@ -224,7 +224,7 @@
 ZEND_API char *zend_get_module_version(char *module_name);
 ZEND_API int zend_get_module_started(char *module_name);
 ZEND_API int zend_declare_property(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type TSRMLS_DC);
-ZEND_API int zend_declare_property_ex(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type, char *doc_comment, int 
doc_comment_len TSRMLS_DC);
+ZEND_API int zend_declare_property_ex(zend_class_entry *ce, char *name, int 
name_length, zval *property, int access_type, zstr doc_comment, int 
doc_comment_len TSRMLS_DC);
 ZEND_API int zend_declare_property_null(zend_class_entry *ce, char *name, int 
name_length, int access_type TSRMLS_DC);
 ZEND_API int zend_declare_property_bool(zend_class_entry *ce, char *name, int 
name_length, long value, int access_type TSRMLS_DC);
 ZEND_API int zend_declare_property_long(zend_class_entry *ce, char *name, int 
name_length, long value, int access_type TSRMLS_DC);
@@ -233,7 +233,7 @@
 ZEND_API int zend_declare_property_stringl(zend_class_entry *ce, char *name, 
int name_length, char *value, int value_len, int access_type TSRMLS_DC);
 
 ZEND_API int zend_u_declare_property(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type TSRMLS_DC);
-ZEND_API int zend_u_declare_property_ex(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type, char *doc_comment, 
int doc_comment_len TSRMLS_DC);
+ZEND_API int zend_u_declare_property_ex(zend_class_entry *ce, zend_uchar type, 
zstr name, int name_length, zval *property, int access_type, zstr doc_comment, 
int doc_comment_len TSRMLS_DC);
 
 ZEND_API int zend_declare_class_constant(zend_class_entry *ce, char *name, 
size_t name_length, zval *value TSRMLS_DC);
 ZEND_API int zend_declare_class_constant_null(zend_class_entry *ce, char 
*name, size_t name_length TSRMLS_DC);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1.726&r2=1.727&diff_format=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.726 ZendEngine2/zend_compile.c:1.727
--- ZendEngine2/zend_compile.c:1.726    Mon Oct 16 21:13:13 2006
+++ ZendEngine2/zend_compile.c  Fri Oct 27 21:22:05 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.c,v 1.726 2006/10/16 21:13:13 andrei Exp $ */
+/* $Id: zend_compile.c,v 1.727 2006/10/27 21:22:05 andrei Exp $ */
 
 #include <zend_language_parser.h>
 #include "zend.h"
@@ -41,11 +41,14 @@
 
        if (UG(unicode)) {
                property_info->name.u = eustrndup(property_info->name.u, 
property_info->name_length);
+               if (property_info->doc_comment.u) {
+                       property_info->doc_comment.u = 
eustrndup(property_info->doc_comment.u, property_info->doc_comment_len);
+               }
        } else {
                property_info->name.s = estrndup(property_info->name.s, 
property_info->name_length);
-       }
-       if (property_info->doc_comment) {
-               property_info->doc_comment = 
estrndup(property_info->doc_comment, property_info->doc_comment_len);
+               if (property_info->doc_comment.s) {
+                       property_info->doc_comment.s = 
estrndup(property_info->doc_comment.s, property_info->doc_comment_len);
+               }
        }
 }
 
@@ -65,8 +68,8 @@
 static void zend_destroy_property_info(zend_property_info *property_info)
 {
        efree(property_info->name.v);
-       if (property_info->doc_comment) {
-               efree(property_info->doc_comment);
+       if (property_info->doc_comment.v) {
+               efree(property_info->doc_comment.v);
        }
 }
 
@@ -1250,10 +1253,10 @@
                }
        }
 
-       if (CG(doc_comment)) {
+       if (CG(doc_comment).v) {
                CG(active_op_array)->doc_comment = CG(doc_comment);
                CG(active_op_array)->doc_comment_len = CG(doc_comment_len);
-               CG(doc_comment) = NULL;
+               CG(doc_comment) = NULL_ZSTR;
                CG(doc_comment_len) = 0;
        }
 
@@ -2936,10 +2939,10 @@
        opline->result.op_type = IS_CONST;
        CG(implementing_class) = opline->result;
 
-       if (CG(doc_comment)) {
+       if (CG(doc_comment).v) {
                CG(active_class_entry)->doc_comment = CG(doc_comment);
                CG(active_class_entry)->doc_comment_len = CG(doc_comment_len);
-               CG(doc_comment) = NULL;
+               CG(doc_comment) = NULL_ZSTR;
                CG(doc_comment_len) = 0;
        }
 }
@@ -3147,7 +3150,7 @@
 {
        zval *property;
        zend_property_info *existing_property_info;
-       char *comment = NULL;
+       zstr comment = NULL_ZSTR;
        int comment_len = 0;
 
        if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
@@ -3177,10 +3180,10 @@
                Z_TYPE_P(property) = IS_NULL;
        }
 
-       if (CG(doc_comment)) {
+       if (CG(doc_comment).v) {
                comment = CG(doc_comment);
                comment_len = CG(doc_comment_len);
-               CG(doc_comment) = NULL;
+               CG(doc_comment) = NULL_ZSTR;
                CG(doc_comment_len) = 0;
        }
 
@@ -4337,7 +4340,7 @@
        ce->constants_updated = 0;
        ce->ce_flags = 0;
 
-       ce->doc_comment = NULL;
+       ce->doc_comment = NULL_ZSTR;
        ce->doc_comment_len = 0;
 
        zend_u_hash_init_ex(&ce->default_properties, 0, NULL, 
zval_ptr_dtor_func, persistent_hashes, UG(unicode), 0);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.348&r2=1.349&diff_format=u
Index: ZendEngine2/zend_compile.h
diff -u ZendEngine2/zend_compile.h:1.348 ZendEngine2/zend_compile.h:1.349
--- ZendEngine2/zend_compile.h:1.348    Thu Oct 26 09:28:44 2006
+++ ZendEngine2/zend_compile.h  Fri Oct 27 21:22:05 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.h,v 1.348 2006/10/26 09:28:44 tony2001 Exp $ */
+/* $Id: zend_compile.h,v 1.349 2006/10/27 21:22:05 andrei Exp $ */
 
 #ifndef ZEND_COMPILE_H
 #define ZEND_COMPILE_H
@@ -42,11 +42,11 @@
 
 #define RESET_DOC_COMMENT()        \
     {                              \
-        if (CG(doc_comment)) {     \
-          efree(CG(doc_comment));  \
-          CG(doc_comment) = NULL;  \
-        }                          \
-        CG(doc_comment_len) = 0;   \
+               if (CG(doc_comment.v)) {     \
+                       efree(CG(doc_comment.v));  \
+                       CG(doc_comment) = NULL_ZSTR;  \
+               }                          \
+               CG(doc_comment_len) = 0;   \
     }
 
 typedef struct _zend_op_array zend_op_array;
@@ -152,7 +152,7 @@
        zstr name;
        int name_length;
        ulong h;
-       char *doc_comment;
+       zstr doc_comment;
        int doc_comment_len;
        zend_class_entry *ce;
 } zend_property_info;
@@ -220,7 +220,7 @@
        char *script_encoding;
        zend_uint line_start;
        zend_uint line_end;
-       char *doc_comment;
+       zstr doc_comment;
        zend_uint doc_comment_len;
 
        void *reserved[ZEND_MAX_RESERVED_RESOURCES];
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_globals.h?r1=1.164&r2=1.165&diff_format=u
Index: ZendEngine2/zend_globals.h
diff -u ZendEngine2/zend_globals.h:1.164 ZendEngine2/zend_globals.h:1.165
--- ZendEngine2/zend_globals.h:1.164    Fri Sep 29 20:59:26 2006
+++ ZendEngine2/zend_globals.h  Fri Oct 27 21:22:05 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_globals.h,v 1.164 2006/09/29 20:59:26 andrei Exp $ */
+/* $Id: zend_globals.h,v 1.165 2006/10/27 21:22:05 andrei Exp $ */
 
 #ifndef ZEND_GLOBALS_H
 #define ZEND_GLOBALS_H
@@ -126,7 +126,7 @@
 
        zend_uint access_type;
 
-       char *doc_comment;
+       zstr doc_comment;
        zend_uint doc_comment_len;
 
        zend_uchar literal_type;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.158&r2=1.159&diff_format=u
Index: ZendEngine2/zend_language_scanner.l
diff -u ZendEngine2/zend_language_scanner.l:1.158 
ZendEngine2/zend_language_scanner.l:1.159
--- ZendEngine2/zend_language_scanner.l:1.158   Mon Sep 18 17:59:10 2006
+++ ZendEngine2/zend_language_scanner.l Fri Oct 27 21:22:05 2006
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_language_scanner.l,v 1.158 2006/09/18 17:59:10 andrei Exp $ */
+/* $Id: zend_language_scanner.l,v 1.159 2006/10/27 21:22:05 andrei Exp $ */
 
 #define yyleng SCNG(yy_leng)
 #define yytext SCNG(yy_text)
@@ -130,7 +130,7 @@
 {
        CG(heredoc) = NULL;
        CG(heredoc_len) = 0;
-       CG(doc_comment) = NULL;
+       CG(doc_comment) = NULL_ZSTR;
        CG(doc_comment_len) = 0;
        SCNG(yy_start_stack_ptr) = 0;
        SCNG(yy_start_stack_depth) = 0;
@@ -2167,9 +2167,14 @@
 }
 
 <ST_DOC_COMMENT>"*/" {
-       CG(doc_comment) = estrndup(yytext, yyleng);
-       CG(doc_comment_len) = yyleng;
+       zval temp;
+
        HANDLE_NEWLINES(yytext, yyleng);
+       if (!zend_copy_scanner_string(&temp, yytext, yyleng, 
UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       CG(doc_comment) = temp.value.uni.val;
+       CG(doc_comment_len) = temp.value.uni.len;
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.265&r2=1.266&diff_format=u
Index: php-src/ext/reflection/php_reflection.c
diff -u php-src/ext/reflection/php_reflection.c:1.265 
php-src/ext/reflection/php_reflection.c:1.266
--- php-src/ext/reflection/php_reflection.c:1.265       Tue Oct 24 17:37:17 2006
+++ php-src/ext/reflection/php_reflection.c     Fri Oct 27 21:22:05 2006
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_reflection.c,v 1.265 2006/10/24 17:37:17 andrei Exp $ */
+/* $Id: php_reflection.c,v 1.266 2006/10/27 21:22:05 andrei Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -292,8 +292,8 @@
        string_printf(&sub_indent, "%s    ", indent);
 
        /* TBD: Repair indenting of doc comment (or is this to be done in the 
parser?) */
-       if (ce->type == ZEND_USER_CLASS && ce->doc_comment) {
-               string_printf(str, "%s%s", indent, ce->doc_comment);
+       if (ce->type == ZEND_USER_CLASS && ce->doc_comment.v) {
+               string_printf(str, "%s%v", indent, ce->doc_comment.v);
                string_write(str, "\n", 1);
        }
 
@@ -708,8 +708,8 @@
         * What's "wrong" is that any whitespace before the doc comment start 
is 
         * swallowed, leading to an unaligned comment.
         */
-       if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment) {
-               string_printf(str, "%s%s\n", indent, 
fptr->op_array.doc_comment);
+       if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment.v) {
+               string_printf(str, "%s%v\n", indent, 
fptr->op_array.doc_comment.v);
        }
 
        string_printf(str, fptr->common.scope ? "%sMethod [ " : "%sFunction [ 
", indent);
@@ -1537,12 +1537,8 @@
 
        METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0);
        GET_REFLECTION_OBJECT_PTR(fptr);
-       if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment) {
-               /* FIXME
-                * It should use the encoding in which the doc comment was 
written, aka
-                * the script encoding for the file that the class was defined 
in.
-                */
-               RETURN_RT_STRINGL(fptr->op_array.doc_comment, 
fptr->op_array.doc_comment_len, 1);
+       if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.doc_comment.v) {
+               RETURN_ZSTRL(fptr->op_array.doc_comment, 
fptr->op_array.doc_comment_len, ZEND_STR_TYPE, 1);
        }
        RETURN_FALSE;
 }
@@ -2957,13 +2953,8 @@
 
        METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0);
        GET_REFLECTION_OBJECT_PTR(ce);
-       if (ce->type == ZEND_USER_CLASS && ce->doc_comment) {
-               /* FIXME
-                * It should use the encoding in which the doc comment was 
written, aka
-                * the script encoding for the file that the class was defined 
in. We
-                * don't have access to that yet.
-                */
-               RETURN_RT_STRINGL(ce->doc_comment, ce->doc_comment_len, 1);
+       if (ce->type == ZEND_USER_CLASS && ce->doc_comment.v) {
+               RETURN_ZSTRL(ce->doc_comment, ce->doc_comment_len, 
ZEND_STR_TYPE, 1);
        }
        RETURN_FALSE;
 }
@@ -4162,13 +4153,8 @@
 
        METHOD_NOTSTATIC_NUMPARAMS(reflection_property_ptr, 0);
        GET_REFLECTION_OBJECT_PTR(ref);
-       if (ref->prop->doc_comment) {
-               /* FIXME
-                * It should use the encoding in which the doc comment was 
written, aka
-                * the script encoding for the file that the class was defined 
in. We
-                * don't have access to that yet.
-                */
-               RETURN_RT_STRINGL(ref->prop->doc_comment, 
ref->prop->doc_comment_len, 1);
+       if (ref->prop->doc_comment.v) {
+               RETURN_ZSTRL(ref->prop->doc_comment, 
ref->prop->doc_comment_len, ZEND_STR_TYPE, 1);
        }
        RETURN_FALSE;
 }
@@ -4962,7 +4948,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Reflection", "enabled");
 
-       php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.265 
2006/10/24 17:37:17 andrei Exp $");
+       php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.266 
2006/10/27 21:22:05 andrei Exp $");
 
        php_info_print_table_end();
 } /* }}} */

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

Reply via email to