@@ -32,7 +32,7 @@ interface
3232const
3333PHPWin =
3434{ $IFDEF PHP_DEBUG}
35- { $IFDEF PHP700 }
35+ { $IFDEF PHP7 }
3636 ' php7phpdbg.dll'
3737{ $ELSE}
3838 { $IFDEF PHP5}
@@ -43,7 +43,7 @@ interface
4343 { $ENDIF}
4444{ $ELSE}
4545 { $IFDEF PHP5}
46- { $IFDEF PHP700 }
46+ { $IFDEF PHP7 }
4747 { $IFDEF LINUX}
4848 ' php7ts.so'
4949 { $ENDIF}
@@ -86,10 +86,10 @@ function ZENDLoaded: boolean;
8686
8787{ Memory management functions}
8888var
89- { $IFDEF PHP700}
90- zend_strndup : function(const s: PChar; length: integer): PChar; cdecl;
91- { $ELSE}
89+ { $IFNDEF PHP7}
9290 zend_strndup : function(s: PAnsiChar; length: Integer): PAnsiChar; cdecl;
91+ { $ELSE}
92+ zend_strndup : function(s:PAnsiChar; length:size_t):PAnsiChar; cdecl;
9393 { $ENDIF}
9494 _emalloc : function(size: size_t; __zend_filename: PAnsiChar; __zend_lineno: uint; __zend_orig_filename: PAnsiChar; __zend_orig_line_no: uint): pointer; cdecl;
9595 _efree : procedure(ptr: pointer; __zend_filename: PAnsiChar; __zend_lineno: uint; __zend_orig_filename: PAnsiChar; __zend_orig_line_no: uint); cdecl;
@@ -119,9 +119,9 @@ function STR_EMPTY_ALLOC : PAnsiChar;
119119var
120120
121121 zend_register_resource : function (rsrc_result : pzval; rsrc_pointer : pointer; rsrc_type : integer) : integer; cdecl;
122- zend_fetch_resource : function (passed_id : ppzval; TSRMLS_DC : pointer; default_id : integer; resource_type_name : PAnsiChar; found_resource_type : pointer; num_resource_types: integer; resource_type: integer) : pointer; cdecl;
122+ zend_fetch_resource : function (passed_id :{ $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ; TSRMLS_DC : pointer; default_id : integer; resource_type_name : PAnsiChar; found_resource_type : pointer; num_resource_types: integer; resource_type: integer) : pointer; cdecl;
123123 zend_list_insert : function (ptr : pointer; _type: integer) : integer; cdecl;
124- { $IFNDEF PHP700 }
124+ { $IFNDEF PHP7 }
125125 _zend_list_addref : function (id : integer; TSRMLS_DC : pointer) : integer; cdecl;
126126 _zend_list_delete : function (id : integer; TSRMLS_DC : pointer) : integer; cdecl;
127127 _zend_list_find : function (id : integer; _type : pointer; TSRMLS_DC : pointer) : pointer; cdecl;
@@ -536,14 +536,16 @@ procedure convert_to_string(op: pzval);
536536 zend_indent : procedure; cdecl;
537537
538538 ZendGetParameters : function: integer; cdecl;
539- zend_get_params_ex : function(param_count : Integer; Args : ppzval) :integer; cdecl varargs;
539+ zend_get_params_ex : function(param_count : Integer; Args : { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ) :integer; cdecl varargs;
540540function zend_get_parameters_ex (number: integer; var Params: pzval_array): integer;
541541function zend_get_parameters_my (number: integer; var Params: pzval_array; TSRMLS_DC: Pointer): integer;
542542
543- function zend_get_parameters (ht: integer; param_count: integer; Params: array of ppzval): integer;
543+ function zend_get_parameters (ht: integer; param_count: integer; Params: array of
544+ { $IFNDEF PHP700} ppzval { $ELSE} pzval{ $ENDIF} ): integer;
544545
545546var
546- _zend_get_parameters_array_ex : function(param_count: integer; argument_array: pppzval; TSRMLS_CC: pointer): integer; cdecl;
547+ _zend_get_parameters_array_ex : function(param_count: integer; argument_array:
548+ { $IFNDEF PHP700} pppzval { $ELSE} pzval{ $ENDIF} ; TSRMLS_CC: pointer): integer; cdecl;
547549
548550procedure dispose_pzval_array (Params: pzval_array);
549551
@@ -601,7 +603,7 @@ procedure dispose_pzval_array(Params: pzval_array);
601603 TSRMLS_DC: Pointer): integer; cdecl;
602604
603605 call_user_function_ex : function(function_table: PHashTable; object_pp: pzval;
604- function_name: pzval; return_ptr_ptr: ppzval; param_count: zend_uint;
606+ function_name: pzval; return_ptr_ptr: { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ; param_count: zend_uint;
605607 params: pzval_array;
606608 no_separation: zend_uint; symbol_table: PHashTable;
607609 TSRMLS_DC: Pointer): integer; cdecl;
@@ -752,8 +754,8 @@ procedure ArrayToHash(Keys,AR: Array of Variant; var HT: pzval); overload;
752754function ToStrA (V: Variant): AnsiString;
753755function ToStr (V: Variant): String;
754756function toWChar (s: PAnsiChar): PWideChar;
755- function ZendToVariant (const Value : pppzval): Variant; overload;
756- function ZendToVariant (const Value : ppzval): Variant; overload;
757+ function ZendToVariant (const Value : { $IFNDEF PHP700 } pppzval { $ELSE } pzval { $ENDIF } ): Variant; overload;
758+ function ZendToVariant (const Value : { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ): Variant; overload;
757759
758760procedure ZVAL_STRING (z: pzval; s: PAnsiChar; duplicate: boolean);
759761procedure ZVAL_STRINGU (z: pzval; s: PUtf8Char; duplicate: boolean);
@@ -804,14 +806,14 @@ function strdup(strSource : PAnsiChar) : PAnsiChar; cdecl; external MSCRT name
804806{ $ELSE}
805807function DupStr (strSource : PAnsiChar) : PAnsiChar; cdecl;
806808{ $ENDIF}
807-
809+ { $IFNDEF PHP7 }
808810function ZEND_FAST_ALLOC : pzval;
809811function ALLOC_ZVAL : pzval; overload;
810812procedure ALLOC_ZVAL (out Result: pzval); overload;
813+ { $ENDIF}
811814procedure INIT_PZVAL (p: pzval);
812815function MAKE_STD_ZVAL : pzval; overload;
813816procedure MAKE_STD_ZVAL (out Result: pzval); overload;
814-
815817{ $IFNDEF QUIET_LOAD}
816818procedure CheckZendErrors ;
817819{ $ENDIF}
@@ -1161,7 +1163,7 @@ function ZValArrayKeyExists(v: pzval; idx: Integer): Boolean; overload;
11611163function ZValArrayKeyExists (v: pzval; key: AnsiString; out pData: pzval)
11621164 : Boolean; overload;
11631165var
1164- tmp: ppzval;
1166+ tmp: { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ;
11651167begin
11661168 Result := ZValArrayKeyExists(v, key);
11671169 if Result then
@@ -1175,7 +1177,7 @@ function ZValArrayKeyExists(v: pzval; key: AnsiString; out pData: pzval)
11751177function ZValArrayKeyExists (v: pzval; idx: Integer; out pData: pzval)
11761178 : Boolean; overload;
11771179var
1178- tmp: ppzval;
1180+ tmp: { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ;
11791181begin
11801182 Result := ZValArrayKeyExists(v, idx);
11811183 if Result then
@@ -1202,7 +1204,7 @@ function ZValArrayKeyDel(v: pzval; idx: Integer): Boolean; overload;
12021204 HASH_DEL_INDEX) = SUCCESS;
12031205end ;
12041206
1205- function ZValArrayKeyFind (v: pzval; key: AnsiString; out pData: ppzval)
1207+ function ZValArrayKeyFind (v: pzval; key: AnsiString; out pData: { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } )
12061208 : Boolean; overload;
12071209var
12081210 keyStr: PAnsiChar;
@@ -1215,14 +1217,16 @@ function ZValArrayKeyFind(v: pzval; key: AnsiString; out pData: ppzval)
12151217 zend_hash_func(keyStr, KeyLength), pData) = SUCCESS;
12161218end ;
12171219
1218- function ZValArrayKeyFind (v: pzval; idx: Integer; out pData: ppzval)
1220+ function ZValArrayKeyFind (v: pzval; idx: Integer; out pData: { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } )
12191221 : Boolean; overload;
12201222begin
12211223 Result := zend_hash_quick_find(v.value .ht, nil , 0 , idx, pData) = SUCCESS;
12221224end ;
12231225procedure MAKE_STD_ZVAL (out Result: pzval);
12241226begin
1225- ALLOC_ZVAL(Result);
1227+ { $IFNDEF PHP7}
1228+ ALLOC_ZVAL(Result);
1229+ { $ENDIF}
12261230 INIT_PZVAL(Result);
12271231end ;
12281232
@@ -1424,7 +1428,7 @@ function toWChar(s: PAnsiChar): PWideChar;
14241428 Result := PWideChar(ss);
14251429end ;
14261430
1427- function ZendToVariant (const Value : pppzval): Variant; overload;
1431+ function ZendToVariant (const Value : { $IFNDEF PHP700 } pppzval { $ELSE } pzval { $ENDIF } ): Variant; overload;
14281432 Var
14291433 S: String;
14301434begin
@@ -1436,7 +1440,7 @@ function ZendToVariant(const Value: pppzval): Variant; overload;
14361440 end ;
14371441end ;
14381442
1439- function ZendToVariant (const Value : ppzval): Variant; overload;
1443+ function ZendToVariant (const Value : { $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ): Variant; overload;
14401444 Var
14411445 S: String;
14421446begin
@@ -1452,7 +1456,7 @@ function ZendToVariant(const Value: ppzval): Variant; overload;
14521456procedure HashToArray (HT: PHashTable; var AR: TArrayVariant); overload;
14531457 Var
14541458 Len,I: Integer;
1455- tmp : pppzval;
1459+ tmp : { $IFNDEF PHP700 } pppzval { $ELSE } pzval { $ENDIF } ;
14561460begin
14571461 len := zend_hash_num_elements(HT);
14581462 SetLength(AR,len);
@@ -2029,7 +2033,7 @@ function LoadZEND(const DllFilename: AnsiString = PHPWin) : boolean;
20292033 zend_register_resource := GetProcAddress(PHPLib, ' zend_register_resource' );
20302034 zend_fetch_resource := GetProcAddress(PHPLib, ' zend_fetch_resource' );
20312035 zend_list_insert := GetProcAddress(PHPLib, ' zend_list_insert' );
2032- { $IFNDEF PHP700 }
2036+ { $IFNDEF PHP7 }
20332037 _zend_list_addref := GetProcAddress(PHPLib, ' _zend_list_addref' );
20342038 _zend_list_delete := GetProcAddress(PHPLib, ' _zend_list_delete' );
20352039 _zend_list_find := GetProcAddress(PHPLib, ' _zend_list_find' );
@@ -2053,33 +2057,72 @@ function LoadZEND(const DllFilename: AnsiString = PHPWin) : boolean;
20532057 ts_free_id := GetProcAddress(PHPLib, ' ts_free_id' );
20542058
20552059 // -- zend_strndup
2056- zend_strndup := GetProcAddress(PHPLib, ' zend_strndup' );
2057-
2060+ zend_strndup := GetProcAddress(PHPLib,
2061+ { $IFNDEF PHP7}
2062+ ' zend_strndup'
2063+ { $ELSE}
2064+ ' zend_strndup@@8'
2065+ { $ENDIF} );
20582066
20592067 // -- _emalloc
2060- _emalloc := GetProcAddress(PHPLib, ' _emalloc' );
2068+ _emalloc := GetProcAddress(PHPLib,
2069+ { $IFNDEF PHP7}
2070+ ' _emalloc'
2071+ { $ELSE}
2072+ ' _emalloc@@4'
2073+ { $ENDIF} );
20612074
20622075
20632076 // -- _efree
2064- _efree := GetProcAddress(PHPLib, ' _efree' );
2077+ _efree := GetProcAddress(PHPLib,
2078+ { $IFNDEF PHP7}
2079+ ' _efree'
2080+ { $ELSE}
2081+ ' _efree@@4'
2082+ { $ENDIF} );
20652083
20662084
20672085 // -- _ecalloc
2068- _ecalloc := GetProcAddress(PHPLib, ' _ecalloc' );
2086+ _ecalloc := GetProcAddress(PHPLib,
2087+ { $IFNDEF PHP7}
2088+ ' _ecalloc'
2089+ { $ELSE}
2090+ ' _ecalloc@@8'
2091+ { $ENDIF} );
20692092
20702093
20712094 // -- _erealloc
2072- _erealloc := GetProcAddress(PHPLib, ' _erealloc' );
2095+ _erealloc := GetProcAddress(PHPLib,
2096+ { $IFNDEF PHP7}
2097+ ' _erealloc'
2098+ { $else}
2099+ ' _erealloc@@8'
2100+ { $ENDIF} );
20732101
20742102
20752103 // -- _estrdup
2076- _estrdup := GetProcAddress(PHPLib, ' _estrdup' );
2104+ _estrdup := GetProcAddress(PHPLib,
2105+ { $IFNDEF PHP7}
2106+ ' _estrdup'
2107+ { $ELSE}
2108+ ' _estrdup@@4'
2109+ { $ENDIF} );
20772110
20782111 // -- _estrndup
2079- _estrndup := GetProcAddress(PHPLib, ' _estrndup' );
2112+ _estrndup := GetProcAddress(PHPLib,
2113+ { $IFNDEF PHP7}
2114+ ' _estrndup'
2115+ { $ELSE}
2116+ ' _estrndup@@8'
2117+ { $ENDIF} );
20802118
20812119 // -- _estrndup Unicode
2082- _estrndupu := GetProcAddress(PHPLib, ' _estrndup' );
2120+ _estrndupu := GetProcAddress(PHPLib,
2121+ { $IFNDEF PHP7}
2122+ ' _estrndup'
2123+ { $ELSE}
2124+ ' _estrndup@@8'
2125+ { $ENDIF} );
20832126
20842127 // -- zend_set_memory_limit
20852128 zend_set_memory_limit := GetProcAddress(PHPLib, ' zend_set_memory_limit' );
@@ -2735,7 +2778,7 @@ procedure INIT_CLASS_ENTRY(var class_container: Tzend_class_entry; class_name: P
27352778 class_container.handle_property_set := nil ;
27362779 { $ENDIF}
27372780end ;
2738-
2781+ { $IFNDEF PHP7 }
27392782function ZEND_FAST_ALLOC : pzval;
27402783begin
27412784 Result := emalloc(sizeof(zval));
@@ -2750,7 +2793,7 @@ procedure ALLOC_ZVAL(out Result: pzval);
27502793begin
27512794 Result := emalloc(sizeof(zval));
27522795end ;
2753-
2796+ { $ENDIF }
27542797procedure INIT_PZVAL (p: pzval);
27552798begin
27562799 p^.refcount := 1 ;
@@ -2770,7 +2813,9 @@ procedure UNLOCK_ZVAL(p: pzval);
27702813
27712814function MAKE_STD_ZVAL : pzval;
27722815begin
2773- Result := ALLOC_ZVAL;
2816+ { $IFNDEF PHP7}
2817+ Result := ALLOC_ZVAL;
2818+ { $ENDIF}
27742819 INIT_PZVAL(Result);
27752820end ;
27762821
@@ -2793,7 +2838,7 @@ function zend_get_parameters_ex(number: integer; var Params: pzval_array): integ
27932838function zend_get_parameters_my (number: integer; var Params: pzval_array; TSRMLS_DC: Pointer): integer;
27942839var
27952840 i : integer;
2796- p: pppzval;
2841+ p: { $IFNDEF PHP700 } pppzval { $ELSE } pzval { $ENDIF } ;
27972842begin
27982843 SetLength(Params, number);
27992844 if number = 0 then
@@ -2803,15 +2848,16 @@ function zend_get_parameters_my(number: integer; var Params: pzval_array; TSRMLS
28032848 end ;
28042849 for i := 0 to number - 1 do
28052850 New(Params[i]);
2806-
2851+ { $IFNDEF PHP700 }
28072852 p := emalloc(number * sizeOf(ppzval));
2853+ { $ENDIF}
28082854 Result := _zend_get_parameters_array_ex(number, p, TSRMLS_DC);
28092855
28102856 for i := 0 to number - 1 do
28112857 begin
2812- Params[i]^ := p^^;
2858+ { $IFNDEF PHP700 } Params[i]^ := p^^ { $ELSE } Params[i] := p { $ENDIF } ;
28132859 if i <> number then
2814- inc(integer(p^ ), sizeof(ppzval));
2860+ inc(integer({ $IFNDEF PHP700 } p^ { $ELSE } p { $ENDIF } ), sizeof({ $IFNDEF PHP700 } ppzval { $ELSE } pzval { $ENDIF } ));
28152861 end ;
28162862
28172863 efree(p);
@@ -2877,7 +2923,7 @@ procedure CheckZendErrors;
28772923 if @zend_register_resource = nil then raise EPHP4DelphiException.Create(' zend_register_resource' );
28782924 if @zend_fetch_resource = nil then raise EPHP4DelphiException.Create(' zend_fetch_resource' );
28792925 if @zend_list_insert = nil then raise EPHP4DelphiException.Create(' zend_list_insert' );
2880- { $IFNDEF PHP700 }
2926+ { $IFNDEF PHP7 }
28812927 if @_zend_list_addref = nil then raise EPHP4DelphiException.Create(' zend_list_addref' );
28822928 if @_zend_list_delete = nil then raise EPHP4DelphiException.Create(' zend_list_delete' );
28832929 if @_zend_list_find = nil then raise EPHP4DelphiException.Create(' _zend_list_find' );
@@ -2890,6 +2936,7 @@ procedure CheckZendErrors;
28902936 if @ts_allocate_id = nil then raise EPHP4DelphiException.Create(' ts_allocate_id' );
28912937 if @ts_free_id = nil then raise EPHP4DelphiException.Create(' ts_free_id' );
28922938 if @zend_strndup = nil then raise EPHP4DelphiException.Create(' zend_strndup' );
2939+
28932940 if @_emalloc = nil then raise EPHP4DelphiException.Create(' _emalloc' );
28942941 if @_efree = nil then raise EPHP4DelphiException.Create(' _efree' );
28952942 if @_ecalloc = nil then raise EPHP4DelphiException.Create(' _ecalloc' );
0 commit comments