Skip to content

Commit 6d12d3b

Browse files
committed
Refactored ext/dba (tests passes, but segfaults need to be fixed)
1 parent 5d4f9df commit 6d12d3b

File tree

9 files changed

+100
-86
lines changed

9 files changed

+100
-86
lines changed

ext/dba/dba.c

+85-71
Large diffs are not rendered by default.

ext/dba/dba_db1.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ DBA_OPEN_FUNC(db1)
5151
int filemode = 0644;
5252

5353
if (info->argc > 0) {
54-
convert_to_long_ex(info->argv[0]);
55-
filemode = Z_LVAL_PP(info->argv[0]);
54+
convert_to_long_ex(&info->argv[0]);
55+
filemode = Z_LVAL(info->argv[0]);
5656
}
5757

5858
gmode = 0;

ext/dba/dba_db2.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ DBA_OPEN_FUNC(db2)
7272
}
7373

7474
if (info->argc > 0) {
75-
convert_to_long_ex(info->argv[0]);
76-
filemode = Z_LVAL_PP(info->argv[0]);
75+
convert_to_long_ex(&info->argv[0]);
76+
filemode = Z_LVAL(info->argv[0]);
7777
}
7878

7979
if (db_open(info->path, type, gmode, filemode, NULL, NULL, &dbp)) {

ext/dba/dba_db3.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ DBA_OPEN_FUNC(db3)
8181
}
8282

8383
if (info->argc > 0) {
84-
convert_to_long_ex(info->argv[0]);
85-
filemode = Z_LVAL_PP(info->argv[0]);
84+
convert_to_long_ex(&info->argv[0]);
85+
filemode = Z_LVAL(info->argv[0]);
8686
}
8787

8888
#ifdef DB_FCNTL_LOCKING

ext/dba/dba_db4.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ DBA_OPEN_FUNC(db4)
118118
}
119119

120120
if (info->argc > 0) {
121-
convert_to_long_ex(info->argv[0]);
122-
filemode = Z_LVAL_PP(info->argv[0]);
121+
convert_to_long_ex(&info->argv[0]);
122+
filemode = Z_LVAL(info->argv[0]);
123123
}
124124

125125
if ((err=db_create(&dbp, NULL, 0)) == 0) {

ext/dba/dba_dbm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ DBA_OPEN_FUNC(dbm)
6060
int filemode = 0644;
6161

6262
if(info->argc > 0) {
63-
convert_to_long_ex(info->argv[0]);
64-
filemode = Z_LVAL_PP(info->argv[0]);
63+
convert_to_long_ex(&info->argv[0]);
64+
filemode = Z_LVAL(info->argv[0]);
6565
}
6666

6767
if(info->mode == DBA_TRUNC) {

ext/dba/dba_gdbm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ DBA_OPEN_FUNC(gdbm)
5454
return FAILURE; /* not possible */
5555

5656
if(info->argc > 0) {
57-
convert_to_long_ex(info->argv[0]);
58-
filemode = Z_LVAL_PP(info->argv[0]);
57+
convert_to_long_ex(&info->argv[0]);
58+
filemode = Z_LVAL(info->argv[0]);
5959
}
6060

6161
dbf = gdbm_open(info->path, 0, gmode, filemode, NULL);

ext/dba/dba_ndbm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ DBA_OPEN_FUNC(ndbm)
5959
}
6060

6161
if(info->argc > 0) {
62-
convert_to_long_ex(info->argv[0]);
63-
filemode = Z_LVAL_PP(info->argv[0]);
62+
convert_to_long_ex(&info->argv[0]);
63+
filemode = Z_LVAL(info->argv[0]);
6464
}
6565

6666
dbf = dbm_open(info->path, gmode, filemode);

ext/dba/php_dba.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ typedef struct dba_info {
4646
int fd;
4747
/* arg[cv] are only available when the dba_open handler is called! */
4848
int argc;
49-
zval ***argv;
49+
zval *argv;
5050
/* private */
5151
int flags; /* whether and how dba did locking and other flags*/
5252
struct dba_handler *hnd;

0 commit comments

Comments
 (0)