Skip to content

Commit 0fdbc50

Browse files
author
Andrew Zenin
committed
Some php7 migration
PHP7 is coming!
1 parent 0b7e66d commit 0fdbc50

File tree

3 files changed

+99
-48
lines changed

3 files changed

+99
-48
lines changed

Source/PHP.INC

+4-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ backward compatibility between PHP versions.
6262
{$DEFINE ZEND_WIN32}
6363
{$DEFINE PHP_COMPILER_ID}
6464
{$ENDIF}
65-
{$IFDEF PHP700}
65+
{$IFDEF PHP7}
6666
{$DEFINE COMPILER_VC14}
6767
{$DEFINE PHP560}
6868
{$ENDIF}
@@ -84,7 +84,9 @@ backward compatibility between PHP versions.
8484
{$IFDEF PHP_COMPILER_ID}
8585
{.$DEFINE COMPILER_VC6}
8686
{$DEFINE COMPILER_VC9}
87-
{$IFDEF PHP550} {$DEFINE COMPILER_VC11} {$ENDIF}
87+
{$IFNDEF PHP7}
88+
{$IFDEF PHP550} {$DEFINE COMPILER_VC11} {$ENDIF}
89+
{$ENDIF}
8890
{$ENDIF}
8991

9092
{$IFDEF PHP5}

Source/ZENDAPI.pas

+88-41
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ interface
3232
const
3333
PHPWin =
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}
8888
var
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;
119119
var
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;
540540
function zend_get_parameters_ex(number: integer; var Params: pzval_array): integer;
541541
function 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

545546
var
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

548550
procedure 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;
752754
function ToStrA(V: Variant): AnsiString;
753755
function ToStr(V: Variant): String;
754756
function 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

758760
procedure ZVAL_STRING(z: pzval; s: PAnsiChar; duplicate: boolean);
759761
procedure ZVAL_STRINGU(z: pzval; s: PUtf8Char; duplicate: boolean);
@@ -804,14 +806,14 @@ function strdup(strSource : PAnsiChar) : PAnsiChar; cdecl; external MSCRT name
804806
{$ELSE}
805807
function DupStr(strSource : PAnsiChar) : PAnsiChar; cdecl;
806808
{$ENDIF}
807-
809+
{$IFNDEF PHP7}
808810
function ZEND_FAST_ALLOC: pzval;
809811
function ALLOC_ZVAL: pzval; overload;
810812
procedure ALLOC_ZVAL(out Result: pzval); overload;
813+
{$ENDIF}
811814
procedure INIT_PZVAL(p: pzval);
812815
function MAKE_STD_ZVAL: pzval; overload;
813816
procedure MAKE_STD_ZVAL(out Result: pzval); overload;
814-
815817
{$IFNDEF QUIET_LOAD}
816818
procedure CheckZendErrors;
817819
{$ENDIF}
@@ -1161,7 +1163,7 @@ function ZValArrayKeyExists(v: pzval; idx: Integer): Boolean; overload;
11611163
function ZValArrayKeyExists(v: pzval; key: AnsiString; out pData: pzval)
11621164
: Boolean; overload;
11631165
var
1164-
tmp: ppzval;
1166+
tmp: {$IFNDEF PHP700} ppzval {$ELSE} pzval{$ENDIF};
11651167
begin
11661168
Result := ZValArrayKeyExists(v, key);
11671169
if Result then
@@ -1175,7 +1177,7 @@ function ZValArrayKeyExists(v: pzval; key: AnsiString; out pData: pzval)
11751177
function ZValArrayKeyExists(v: pzval; idx: Integer; out pData: pzval)
11761178
: Boolean; overload;
11771179
var
1178-
tmp: ppzval;
1180+
tmp: {$IFNDEF PHP700} ppzval {$ELSE} pzval{$ENDIF};
11791181
begin
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;
12031205
end;
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;
12071209
var
12081210
keyStr: PAnsiChar;
@@ -1215,14 +1217,16 @@ function ZValArrayKeyFind(v: pzval; key: AnsiString; out pData: ppzval)
12151217
zend_hash_func(keyStr, KeyLength), pData) = SUCCESS;
12161218
end;
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;
12201222
begin
12211223
Result := zend_hash_quick_find(v.value.ht, nil, 0, idx, pData) = SUCCESS;
12221224
end;
12231225
procedure MAKE_STD_ZVAL(out Result: pzval);
12241226
begin
1225-
ALLOC_ZVAL(Result);
1227+
{$IFNDEF PHP7}
1228+
ALLOC_ZVAL(Result);
1229+
{$ENDIF}
12261230
INIT_PZVAL(Result);
12271231
end;
12281232

@@ -1424,7 +1428,7 @@ function toWChar(s: PAnsiChar): PWideChar;
14241428
Result := PWideChar(ss);
14251429
end;
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;
14301434
begin
@@ -1436,7 +1440,7 @@ function ZendToVariant(const Value: pppzval): Variant; overload;
14361440
end;
14371441
end;
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;
14421446
begin
@@ -1452,7 +1456,7 @@ function ZendToVariant(const Value: ppzval): Variant; overload;
14521456
procedure HashToArray(HT: PHashTable; var AR: TArrayVariant); overload;
14531457
Var
14541458
Len,I: Integer;
1455-
tmp : pppzval;
1459+
tmp : {$IFNDEF PHP700} pppzval {$ELSE} pzval{$ENDIF};
14561460
begin
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}
27372780
end;
2738-
2781+
{$IFNDEF PHP7}
27392782
function ZEND_FAST_ALLOC: pzval;
27402783
begin
27412784
Result := emalloc(sizeof(zval));
@@ -2750,7 +2793,7 @@ procedure ALLOC_ZVAL(out Result: pzval);
27502793
begin
27512794
Result := emalloc(sizeof(zval));
27522795
end;
2753-
2796+
{$ENDIF}
27542797
procedure INIT_PZVAL(p: pzval);
27552798
begin
27562799
p^.refcount := 1;
@@ -2770,7 +2813,9 @@ procedure UNLOCK_ZVAL(p: pzval);
27702813

27712814
function MAKE_STD_ZVAL: pzval;
27722815
begin
2773-
Result := ALLOC_ZVAL;
2816+
{$IFNDEF PHP7}
2817+
Result := ALLOC_ZVAL;
2818+
{$ENDIF}
27742819
INIT_PZVAL(Result);
27752820
end;
27762821

@@ -2793,7 +2838,7 @@ function zend_get_parameters_ex(number: integer; var Params: pzval_array): integ
27932838
function zend_get_parameters_my(number: integer; var Params: pzval_array; TSRMLS_DC: Pointer): integer;
27942839
var
27952840
i : integer;
2796-
p: pppzval;
2841+
p: {$IFNDEF PHP700} pppzval {$ELSE} pzval{$ENDIF};
27972842
begin
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

Comments
 (0)