]> granicus.if.org Git - php/commitdiff
Fix warning issue (compile errors inside require()'d files were incorrectly supressed)
authorZeev Suraski <zeev@php.net>
Tue, 15 Aug 2000 16:44:40 +0000 (16:44 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 15 Aug 2000 16:44:40 +0000 (16:44 +0000)
Zend/zend-scanner.l
Zend/zend.c
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_execute.c
Zend/zend_extensions.h

index ada9c08cff3727e3e67b2e9700429a8797843a80..666329ddf8638bc8e1047f16d2035da1579584e8 100644 (file)
@@ -325,7 +325,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
 END_EXTERN_C()
 
 
-ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle CLS_DC)
+ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS_DC)
 {
        zend_lex_state original_lex_state;
        zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
@@ -347,7 +347,12 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle CLS_DC)
        retval = op_array; /* success oriented */
 
        if (open_file_for_scanning(file_handle CLS_CC)==FAILURE) {
-               zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+               if (type==ZEND_REQUIRE) {
+                       zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
+                       zend_bailout();         
+               } else {
+                       zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+               }
                compilation_successful=0;
        } else {
                init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE CLS_CC);
@@ -382,7 +387,6 @@ zend_op_array *compile_filename(int type, zval *filename CLS_DC ELS_DC)
        zend_file_handle file_handle;
        zval tmp;
        zend_op_array *retval;
-       int error_reporting=0;
 
        if (filename->type != IS_STRING) {
                tmp = *filename;
@@ -396,24 +400,9 @@ zend_op_array *compile_filename(int type, zval *filename CLS_DC ELS_DC)
        file_handle.opened_path = NULL;
 
 
-       if (type==ZEND_REQUIRE) {
-               /* We don't want to hear about inclusion failures;  If we fail,
-                * we'll generate a require failure
-                */
-               error_reporting = EG(error_reporting);
-               EG(error_reporting) = 0;
-       }
-       retval = zend_compile_file(&file_handle CLS_CC);
+       retval = zend_compile_file(&file_handle, type CLS_CC);
        zend_destroy_file_handle(&file_handle CLS_CC);
 
-       if (type==ZEND_REQUIRE) {
-               EG(error_reporting) = error_reporting;
-               if (!retval) {
-                       zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, filename->value.str.val);
-                       zend_bailout();         
-               }
-       }
-
        if (filename==&tmp) {
                zval_dtor(&tmp);
        }
index f18beea9f4363712dbd265297fa39fb38191f165..3b3a1debdb3d49ab322ca42fb6a1fae122abfd98 100644 (file)
@@ -706,7 +706,7 @@ ZEND_API int zend_execute_scripts(int type CLS_DC ELS_DC, int file_count, ...)
                if (!file_handle) {
                        continue;
                }
-               EG(active_op_array) = zend_compile_file(file_handle CLS_CC);
+               EG(active_op_array) = zend_compile_file(file_handle, ZEND_INCLUDE CLS_CC);
                zend_destroy_file_handle(file_handle CLS_CC);
                if (EG(active_op_array)) {
                        zend_execute(EG(active_op_array) ELS_CC);
index e2d8089f32610003d6de1405000c1924dbcc43cc..6c694618629cd1b6372a81ffa9b35cc1a03c2dcb 100644 (file)
@@ -26,7 +26,7 @@
 #include "zend_fast_cache.h"
 
 
-ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle CLS_DC);
+ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type CLS_DC);
 
 
 #ifndef ZTS
index c0f64c3880470828b672a74e3c90bd6c9d2785a7..64b54ff0bca93af774a974ee1e44af930d4b2448 100644 (file)
@@ -212,7 +212,7 @@ BEGIN_EXTERN_C()
 void init_compiler(CLS_D ELS_DC);
 void shutdown_compiler(CLS_D);
 
-extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle CLS_DC);
+extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type CLS_DC);
 
 void zend_activate(CLS_D ELS_DC);
 void zend_deactivate(CLS_D ELS_DC);
@@ -375,7 +375,7 @@ ZEND_API void function_add_ref(zend_function *function);
 
 
 /* helper functions in zend-scanner.l */
-ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle CLS_DC);
+ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS_DC);
 ZEND_API zend_op_array *compile_string(zval *source_string CLS_DC);    
 ZEND_API zend_op_array *compile_filename(int type, zval *filename CLS_DC ELS_DC);
 ZEND_API int zend_execute_scripts(int type CLS_DC ELS_DC, int file_count, ...);
index 871a4394efac2da262271420d463861fbeee86e2..d4ee94ff83aefc678a00d0d713009cb9d4f2980c 100644 (file)
@@ -1986,7 +1986,7 @@ send_by_ref:
 
                                                                if (file_handle.handle.fp) {
                                                                        if (!opened_path || zend_hash_add(&EG(included_files), opened_path, strlen(opened_path)+1, (void *)&dummy, sizeof(int), NULL)==SUCCESS) {
-                                                                               new_op_array = zend_compile_file(&file_handle CLS_CC);
+                                                                               new_op_array = zend_compile_file(&file_handle, (opline->op2.u.constant.value.lval==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) CLS_CC);
                                                                                zend_destroy_file_handle(&file_handle CLS_CC);
                                                                                opened_path = NULL; /* zend_destroy_file_handle() already frees it */
                                                                        } else {
index 9291451c8123c86cfbf32e4140c33a4469175f86..0e87cd19d63b278d673b40140929ee5df4d27468 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "zend_compile.h"
 
-#define ZEND_EXTENSION_API_NO          20000809
+#define ZEND_EXTENSION_API_NO          20000815
 
 typedef struct _zend_extension_version_info {
        int zend_extension_api_no;