mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-21 20:10:17 +00:00
...
This commit is contained in:
parent
d23401f77b
commit
577f7b4d0e
@ -447,9 +447,7 @@ inline void add_module_c(VM* vm){
|
||||
|
||||
vm->bind_func<3>(mod, "memset", [](VM* vm, ArgsView args){
|
||||
void* p = CAST(void*, args[0]);
|
||||
i64 c = CAST(i64, args[1]);
|
||||
i64 size = CAST(i64, args[2]);
|
||||
memset(p, c, size);
|
||||
memset(p, CAST(int, args[1]), CAST(size_t, args[2]));
|
||||
return vm->None;
|
||||
});
|
||||
|
||||
|
35
tests/80_c.py
Normal file
35
tests/80_c.py
Normal file
@ -0,0 +1,35 @@
|
||||
import c
|
||||
|
||||
c_int = c.refl("int")
|
||||
assert c_int.size() == c.sizeof("int")
|
||||
array = c.malloc(c.sizeof("int") * 10)
|
||||
array.set_base_offset("int")
|
||||
|
||||
assert array.get_base_offset() == c_int.size()
|
||||
|
||||
for i in range(10):
|
||||
array.offset(i).write_int(i)
|
||||
|
||||
x = c_int()
|
||||
x.addr().write_int(0)
|
||||
for i in range(10):
|
||||
i = array.offset(i).read_int()
|
||||
x.addr().write_int(
|
||||
x.addr().read_int() + i
|
||||
)
|
||||
|
||||
assert x.addr().read_int() == (0+9)*10//2
|
||||
|
||||
c.memset(array, 0, c.sizeof("int") * 10)
|
||||
|
||||
for i in range(10):
|
||||
assert array.offset(i).read_char() == 0
|
||||
|
||||
array2 = c.malloc(c.sizeof("int") * 10)
|
||||
array2.set_base_offset("int")
|
||||
c.memcpy(array2, array, c.sizeof("int") * 10)
|
||||
for i in range(10):
|
||||
assert array2.offset(i).read_char() == 0
|
||||
|
||||
c.free(array)
|
||||
c.free(array2)
|
Loading…
x
Reference in New Issue
Block a user