File: php74_shim.h

package info (click to toggle)
php-apcu 5.1.17%2B4.0.11-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,888 kB
  • sloc: ansic: 11,028; php: 1,705; xml: 859; pascal: 5; makefile: 1
file content (106 lines) | stat: -rw-r--r-- 2,204 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#ifndef PHP74_SHIM_H
#define PHP74_SHIM_H

#if PHP_VERSION_ID < 70400

#define ZEND_TRY_ASSIGN_NULL(zv) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_NULL(zv); \
} while (0)

#define ZEND_TRY_ASSIGN_FALSE(zv) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_FALSE(zv); \
} while (0)

#define ZEND_TRY_ASSIGN_TRUE(zv) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_TRUE(zv); \
} while (0)

#define ZEND_TRY_ASSIGN_BOOL(zv, bval) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_BOOL(zv, bval); \
} while (0)

#define ZEND_TRY_ASSIGN_LONG(zv, lval) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_LONG(zv, lval); \
} while (0)

#define ZEND_TRY_ASSIGN_DOUBLE(zv, dval) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_DOUBLE(zv, dval); \
} while (0)

#define ZEND_TRY_ASSIGN_EMPTY_STRING(zv) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_EMPTY_STRING(zv); \
} while (0)

#define ZEND_TRY_ASSIGN_STR(zv, str) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_STR(zv, str); \
} while (0)

#define ZEND_TRY_ASSIGN_NEW_STR(zv, str) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_NEW_STR(zv, str); \
} while (0)

#define ZEND_TRY_ASSIGN_STRING(zv, string) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_STRING(zv, string); \
} while (0)

#define ZEND_TRY_ASSIGN_STRINGL(zv, string, len) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_STRINGL(zv, string, len); \
} while (0)

#define ZEND_TRY_ASSIGN_RES(zv, res) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_RES(zv, res); \
} while (0)

#define ZEND_TRY_ASSIGN_VALUE(zv, other) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_COPY_VALUE(zv, res); \
} while (0)

#define ZEND_TRY_ASSIGN_COPY(zv, other) do { \
	ZVAL_DEREF(zv); \
	zval_ptr_dtor(zv); \
	ZVAL_COPY(zv, res); \
} while (0)

/* Initializes a reference to an empty array and returns dereferenced zval,
 * or NULL if the initialization failed. */
static zend_always_inline zval *zend_try_array_init(zval *zv) {
	ZVAL_DEREF(zv);
	array_init(zv);
	return zv;
}

static zend_always_inline zval *zend_try_array_init_size(zval *zv, uint32_t size) {
	ZVAL_DEREF(zv);
	array_init_size(zv, size);
	return zv;
}

#endif

#endif