-
Notifications
You must be signed in to change notification settings - Fork 440
Expand file tree
/
Copy pathtypes.c
More file actions
54 lines (38 loc) · 1.6 KB
/
types.c
File metadata and controls
54 lines (38 loc) · 1.6 KB
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
#include "types.h"
zval *get_ht_packed_data(HashTable *ht, uint32_t index) {
if (ht->u.flags & HASH_FLAG_PACKED) {
return &ht->arPacked[index];
}
return NULL;
}
Bucket *get_ht_bucket_data(HashTable *ht, uint32_t index) {
if (!(ht->u.flags & HASH_FLAG_PACKED)) {
return &ht->arData[index];
}
return NULL;
}
void *__emalloc__(size_t size) { return malloc(size); }
void __efree__(void *ptr) { free(ptr); }
void __zend_hash_init__(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor,
bool persistent) {
zend_hash_init(ht, nSize, NULL, pDestructor, persistent);
}
void __hash_update_string__(zend_array *ht, zend_string *k, zend_string *v) {
zval zv = {0};
ZVAL_STR(&zv, v);
zend_hash_update(ht, k, &zv);
}
void __zval_null__(zval *zv) { ZVAL_NULL(zv); }
void __zval_bool__(zval *zv, bool val) { ZVAL_BOOL(zv, val); }
void __zval_long__(zval *zv, zend_long val) { ZVAL_LONG(zv, val); }
void __zval_double__(zval *zv, double val) { ZVAL_DOUBLE(zv, val); }
void __zval_string__(zval *zv, zend_string *str) { ZVAL_STR(zv, str); }
void __zval_empty_string__(zval *zv) { ZVAL_EMPTY_STRING(zv); }
void __zval_arr__(zval *zv, zend_array *arr) { ZVAL_ARR(zv, arr); }
zend_array *__zend_new_array__(uint32_t size) { return zend_new_array(size); }
int __zend_is_callable__(zval *cb) { return zend_is_callable(cb, 0, NULL); }
int __call_user_function__(zval *function_name, zval *retval,
uint32_t param_count, zval params[]) {
return call_user_function(CG(function_table), NULL, function_name, retval,
param_count, params);
}