Skip to content

Commit 7754abc

Browse files
authored
fix: PHPValue() and GoValue() types (#1879)
* fix: PHPValue() return type * fix: GoValue() argument type
1 parent 52a0be5 commit 7754abc

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

types.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func goArray(arr unsafe.Pointer, ordered bool) (map[string]any, []string) {
8282
v := C.get_ht_packed_data(hashTable, i)
8383
if v != nil && C.zval_get_type(v) != C.IS_UNDEF {
8484
strIndex := strconv.Itoa(int(i))
85-
entries[strIndex] = GoValue(v)
85+
entries[strIndex] = goValue(v)
8686
if ordered {
8787
order = append(order, strIndex)
8888
}
@@ -98,7 +98,7 @@ func goArray(arr unsafe.Pointer, ordered bool) (map[string]any, []string) {
9898
continue
9999
}
100100

101-
v := GoValue(&bucket.val)
101+
v := goValue(&bucket.val)
102102

103103
if bucket.key != nil {
104104
keyStr := GoString(unsafe.Pointer(bucket.key))
@@ -141,7 +141,7 @@ func GoPackedArray(arr unsafe.Pointer) []any {
141141
for i := C.uint32_t(0); i < nNumUsed; i++ {
142142
v := C.get_ht_packed_data(hashTable, i)
143143
if v != nil && C.zval_get_type(v) != C.IS_UNDEF {
144-
result = append(result, GoValue(v))
144+
result = append(result, goValue(v))
145145
}
146146
}
147147

@@ -152,7 +152,7 @@ func GoPackedArray(arr unsafe.Pointer) []any {
152152
for i := C.uint32_t(0); i < nNumUsed; i++ {
153153
bucket := C.get_ht_bucket_data(hashTable, i)
154154
if bucket != nil && C.zval_get_type(&bucket.val) != C.IS_UNDEF {
155-
result = append(result, GoValue(&bucket.val))
155+
result = append(result, goValue(&bucket.val))
156156
}
157157
}
158158

@@ -176,13 +176,13 @@ func phpArray(entries map[string]any, order []string) unsafe.Pointer {
176176
zendArray = createNewArray((uint32)(len(order)))
177177
for _, key := range order {
178178
val := entries[key]
179-
zval := PHPValue(val)
179+
zval := phpValue(val)
180180
C.zend_hash_str_update(zendArray, toUnsafeChar(key), C.size_t(len(key)), zval)
181181
}
182182
} else {
183183
zendArray = createNewArray((uint32)(len(entries)))
184184
for key, val := range entries {
185-
zval := PHPValue(val)
185+
zval := phpValue(val)
186186
C.zend_hash_str_update(zendArray, toUnsafeChar(key), C.size_t(len(key)), zval)
187187
}
188188
}
@@ -197,7 +197,7 @@ func phpArray(entries map[string]any, order []string) unsafe.Pointer {
197197
func PHPPackedArray(slice []any) unsafe.Pointer {
198198
zendArray := createNewArray((uint32)(len(slice)))
199199
for _, val := range slice {
200-
zval := PHPValue(val)
200+
zval := phpValue(val)
201201
C.zend_hash_next_index_insert(zendArray, zval)
202202
}
203203

@@ -208,7 +208,11 @@ func PHPPackedArray(slice []any) unsafe.Pointer {
208208
}
209209

210210
// EXPERIMENTAL: GoValue converts a PHP zval to a Go value
211-
func GoValue(zval *C.zval) any {
211+
func GoValue(zval unsafe.Pointer) any {
212+
return goValue((*C.zval)(zval))
213+
}
214+
215+
func goValue(zval *C.zval) any {
212216
t := C.zval_get_type(zval)
213217

214218
switch t {
@@ -251,8 +255,12 @@ func GoValue(zval *C.zval) any {
251255
}
252256
}
253257

254-
// PHPValue converts a Go any to a PHP zval
255-
func PHPValue(value any) *C.zval {
258+
// EXPERIMENTAL: PHPValue converts a Go any to a PHP zval
259+
func PHPValue(value any) unsafe.Pointer {
260+
return unsafe.Pointer(phpValue(value))
261+
}
262+
263+
func phpValue(value any) *C.zval {
256264
var zval C.zval
257265

258266
switch v := value.(type) {

0 commit comments

Comments
 (0)