b5d7b616853b8a0dd52e67d700b290da9712c631
[feed/packages.git] / lang / php7-pecl-dio / patches / 0010-Replace-dio_convert_to_long.patch
1 From fb31b1cf4da2bfd0830d0a83754f5ecb125d1c4a Mon Sep 17 00:00:00 2001
2 From: Michael Heimpold <mhei@heimpold.de>
3 Date: Thu, 14 Jul 2016 00:38:52 +0200
4 Subject: [PATCH 10/16] Replace dio_convert_to_long
5
6 Signed-off-by: Michael Heimpold <mhei@heimpold.de>
7 ---
8 dio_common.c | 106 +++++++++++++++++++++++--------------------------------
9 php_dio_common.h | 2 --
10 2 files changed, 44 insertions(+), 64 deletions(-)
11
12 diff --git a/dio_common.c b/dio_common.c
13 index c50f56d..a5f4c63 100644
14 --- a/dio_common.c
15 +++ b/dio_common.c
16 @@ -52,29 +52,12 @@ void dio_init_stream_data(php_dio_stream_data *data) {
17 }
18 /* }}} */
19
20 -/* {{{ dio_convert_to_long
21 - * Returns as a long, the value of the zval regardless of its type.
22 - */
23 -long dio_convert_to_long(zval *val) {
24 - zval *copyval;
25 - long longval;
26 -
27 - ALLOC_INIT_ZVAL(copyval);
28 - *copyval = *val;
29 - convert_to_long(copyval);
30 - longval = Z_LVAL_P(copyval);
31 - zval_ptr_dtor(&copyval);
32 -
33 - return longval;
34 -}
35 -/* }}} */
36 -
37 /* {{{ dio_assoc_array_get_basic_options
38 * Retrieves the basic open option values from an associative array
39 */
40 void dio_assoc_array_get_basic_options(zval *options, php_dio_stream_data *data TSRMLS_DC) {
41 #if defined(DIO_HAS_FILEPERMS) || defined(DIO_NONBLOCK)
42 - zval **tmpzval;
43 + zval *tmpzval;
44 HashTable *opthash;
45
46 opthash = HASH_OF(options);
47 @@ -82,8 +65,8 @@ void dio_assoc_array_get_basic_options(zval *options, php_dio_stream_data *data
48
49 #ifdef DIO_HAS_FILEPERMS
50 /* This is the file mode flags used by open(). */
51 - if (zend_hash_find(opthash, "perms", sizeof("perms"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
52 - data->perms = (int)dio_convert_to_long(*tmpzval);
53 + if ((tmpzval = zend_hash_str_find(opthash, "perms", sizeof("perms"))) != NULL) {
54 + data->perms = (int)zval_get_long(tmpzval);
55 data->has_perms = 1;
56 }
57 #endif
58 @@ -91,20 +74,20 @@ void dio_assoc_array_get_basic_options(zval *options, php_dio_stream_data *data
59 #ifdef DIO_NONBLOCK
60 /* This sets the underlying stream to be blocking/non
61 block (i.e. O_NONBLOCK) */
62 - if (zend_hash_find(opthash, "is_blocking", sizeof("is_blocking"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
63 - data->is_blocking = dio_convert_to_long(*tmpzval) ? 1 : 0;
64 + if ((tmpzval = zend_hash_str_find(opthash, "is_blocking", sizeof("is_blocking"))) != NULL) {
65 + data->is_blocking = zval_get_long(tmpzval) ? 1 : 0;
66 }
67
68 /* This is the timeout value for reads in seconds. Only one of
69 timeout_secs or timeout_usecs need be defined to define a timeout. */
70 - if (zend_hash_find(opthash, "timeout_secs", sizeof("timeout_secs"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
71 - data->timeout_sec = dio_convert_to_long(*tmpzval);
72 + if ((tmpzval = zend_hash_str_find(opthash, "timeout_secs", sizeof("timeout_secs"))) != NULL) {
73 + data->timeout_sec = zval_get_long(tmpzval);
74 }
75
76 /* This is the timeout value for reads in microseconds. Only one of
77 timeout_secs or timeout_usecs need be defined to define a timeout. */
78 - if (zend_hash_find(opthash, "timeout_usecs", sizeof("timeout_usecs"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
79 - data->timeout_usec = dio_convert_to_long(*tmpzval);
80 + if ((tmpzval = zend_hash_str_find(opthash, "timeout_usecs", sizeof("timeout_usecs"))) != NULL) {
81 + data->timeout_usec = zval_get_long(tmpzval);
82 }
83
84 data->has_timeout = (data->timeout_sec | data->timeout_usec) ? 1 : 0;
85 @@ -116,33 +99,33 @@ void dio_assoc_array_get_basic_options(zval *options, php_dio_stream_data *data
86 * Retrieves the serial open option values from an associative array
87 */
88 void dio_assoc_array_get_serial_options(zval *options, php_dio_stream_data *data TSRMLS_DC) {
89 - zval **tmpzval;
90 + zval *tmpzval;
91 HashTable *opthash;
92
93 opthash = HASH_OF(options);
94
95 - if (zend_hash_find(opthash, "data_rate", sizeof("data_rate"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
96 - data->data_rate = dio_convert_to_long(*tmpzval);
97 + if ((tmpzval = zend_hash_str_find(opthash, "data_rate", sizeof("data_rate"))) != NULL) {
98 + data->data_rate = zval_get_long(tmpzval);
99 }
100
101 - if (zend_hash_find(opthash, "data_bits", sizeof("data_bits"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
102 - data->data_bits = (int)dio_convert_to_long(*tmpzval);
103 + if ((tmpzval = zend_hash_str_find(opthash, "data_bits", sizeof("data_bits"))) != NULL) {
104 + data->data_bits = (int)zval_get_long(tmpzval);
105 }
106
107 - if (zend_hash_find(opthash, "stop_bits", sizeof("stop_bits"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
108 - data->stop_bits = (int)dio_convert_to_long(*tmpzval);
109 + if ((tmpzval = zend_hash_str_find(opthash, "stop_bits", sizeof("stop_bits"))) != NULL) {
110 + data->stop_bits = (int)zval_get_long(tmpzval);
111 }
112
113 - if (zend_hash_find(opthash, "parity", sizeof("parity"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
114 - data->parity = (int)dio_convert_to_long(*tmpzval);
115 + if ((tmpzval = zend_hash_str_find(opthash, "parity", sizeof("parity"))) != NULL) {
116 + data->parity = (int)zval_get_long(tmpzval);
117 }
118
119 - if (zend_hash_find(opthash, "flow_control", sizeof("flow_control"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
120 - data->flow_control = (int)(dio_convert_to_long(*tmpzval) ? 1 : 0);
121 + if ((tmpzval = zend_hash_str_find(opthash, "flow_control", sizeof("flow_control"))) != NULL) {
122 + data->flow_control = zval_get_long(tmpzval) ? 1 : 0;
123 }
124
125 - if (zend_hash_find(opthash, "is_canonical", sizeof("is_canonical"), (void **)&tmpzval) == SUCCESS && tmpzval && *tmpzval) {
126 - data->canonical = (int)(dio_convert_to_long(*tmpzval) ? 1 : 0);
127 + if ((tmpzval = zend_hash_str_find(opthash, "is_canonical", sizeof("is_canonical"))) != NULL) {
128 + data->canonical = zval_get_long(tmpzval) ? 1 : 0;
129 }
130 }
131 /* }}} */
132 @@ -152,13 +135,13 @@ void dio_assoc_array_get_serial_options(zval *options, php_dio_stream_data *data
133 */
134 void dio_stream_context_get_basic_options(php_stream_context *context, php_dio_stream_data *data TSRMLS_DC) {
135 #if defined(DIO_HAS_FILEPERMS) || defined(DIO_NONBLOCK)
136 - zval **tmpzval;
137 + zval *tmpzval;
138 #endif
139
140 #ifdef DIO_HAS_FILEPERMS
141 /* This is the file mode flags used by open(). */
142 - if (php_stream_context_get_option(context, "dio", "perms", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
143 - data->perms = (int)dio_convert_to_long(*tmpzval);
144 + if ((tmpzval = php_stream_context_get_option(context, "dio", "perms")) != NULL) {
145 + data->perms = (int)zval_get_long(tmpzval);
146 data->has_perms = 1;
147 }
148 #endif
149 @@ -166,20 +149,20 @@ void dio_stream_context_get_basic_options(php_stream_context *context, php_dio_s
150 #ifdef DIO_NONBLOCK
151 /* This sets the underlying stream to be blocking/non
152 block (i.e. O_NONBLOCK) */
153 - if (php_stream_context_get_option(context, "dio", "is_blocking", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
154 - data->is_blocking = dio_convert_to_long(*tmpzval) ? 1 : 0;
155 + if ((tmpzval = php_stream_context_get_option(context, "dio", "is_blocking")) != NULL) {
156 + data->is_blocking = zval_get_long(tmpzval) ? 1 : 0;
157 }
158
159 /* This is the timeout value for reads in seconds. Only one of
160 timeout_secs or timeout_usecs need be defined to define a timeout. */
161 - if (php_stream_context_get_option(context, "dio", "timeout_secs", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
162 - data->timeout_sec = dio_convert_to_long(*tmpzval);
163 + if ((tmpzval = php_stream_context_get_option(context, "dio", "timeout_secs")) != NULL) {
164 + data->timeout_sec = zval_get_long(tmpzval);
165 }
166
167 /* This is the timeout value for reads in microseconds. Only one of
168 timeout_secs or timeout_usecs need be defined to define a timeout. */
169 - if (php_stream_context_get_option(context, "dio", "timeout_usecs", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
170 - data->timeout_usec = dio_convert_to_long(*tmpzval);
171 + if ((tmpzval = php_stream_context_get_option(context, "dio", "timeout_usecs")) != NULL) {
172 + data->timeout_usec = zval_get_long(tmpzval);
173 }
174
175 data->has_timeout = (data->timeout_sec | data->timeout_usec) ? 1 : 0;
176 @@ -191,30 +174,30 @@ void dio_stream_context_get_basic_options(php_stream_context *context, php_dio_s
177 * Extracts the option values for dio.serial mode from a context
178 */
179 void dio_stream_context_get_serial_options(php_stream_context *context, php_dio_stream_data *data TSRMLS_DC) {
180 - zval **tmpzval;
181 + zval *tmpzval;
182
183 - if (php_stream_context_get_option(context, "dio", "data_rate", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
184 - data->data_rate = dio_convert_to_long(*tmpzval);
185 + if ((tmpzval = php_stream_context_get_option(context, "dio", "data_rate")) != NULL) {
186 + data->data_rate = zval_get_long(tmpzval);
187 }
188
189 - if (php_stream_context_get_option(context, "dio", "data_bits", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
190 - data->data_bits = (int)dio_convert_to_long(*tmpzval);
191 + if ((tmpzval = php_stream_context_get_option(context, "dio", "data_bits")) != NULL) {
192 + data->data_bits = (int)zval_get_long(tmpzval);
193 }
194
195 - if (php_stream_context_get_option(context, "dio", "stop_bits", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
196 - data->stop_bits = (int)dio_convert_to_long(*tmpzval);
197 + if ((tmpzval = php_stream_context_get_option(context, "dio", "stop_bits")) != NULL) {
198 + data->stop_bits = (int)zval_get_long(tmpzval);
199 }
200
201 - if (php_stream_context_get_option(context, "dio", "parity", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
202 - data->parity = (int)dio_convert_to_long(*tmpzval);
203 + if ((tmpzval = php_stream_context_get_option(context, "dio", "parity")) != NULL) {
204 + data->parity = (int)zval_get_long(tmpzval);
205 }
206
207 - if (php_stream_context_get_option(context, "dio", "flow_control", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
208 - data->flow_control = (int)(dio_convert_to_long(*tmpzval) ? 1 : 0);
209 + if ((tmpzval = php_stream_context_get_option(context, "dio", "flow_control")) != NULL) {
210 + data->flow_control = zval_get_long(tmpzval) ? 1 : 0;
211 }
212
213 - if (php_stream_context_get_option(context, "dio", "is_canonical", &tmpzval) == SUCCESS && tmpzval && *tmpzval) {
214 - data->canonical = (int)(dio_convert_to_long(*tmpzval) ? 1 : 0);
215 + if ((tmpzval = php_stream_context_get_option(context, "dio", "is_canonical")) != NULL) {
216 + data->canonical = zval_get_long(tmpzval) ? 1 : 0;
217 }
218 }
219 /* }}} */
220 @@ -227,4 +210,3 @@ void dio_stream_context_get_serial_options(php_stream_context *context, php_dio_
221 * vim600: fdm=marker
222 * vim: sw=4 ts=4 noet
223 */
224 -
225 diff --git a/php_dio_common.h b/php_dio_common.h
226 index f6e4d98..6b14040 100644
227 --- a/php_dio_common.h
228 +++ b/php_dio_common.h
229 @@ -35,8 +35,6 @@
230 #define DIO_STREAM_TYPE_RAW 1
231 #define DIO_STREAM_TYPE_SERIAL 2
232
233 -long dio_convert_to_long(zval *val);
234 -
235 php_dio_stream_data * dio_create_stream_data(void);
236
237 void dio_init_stream_data(php_dio_stream_data *data);
238 --
239 2.5.0
240