Gauche fixes

This commit is contained in:
retropikzel 2025-08-28 09:08:24 +03:00
parent dae8c5319f
commit b7ab344d5a
3 changed files with 5 additions and 2 deletions

View File

@ -210,5 +210,6 @@ clean-all:
find . -name "*@gambit*" -delete
rm -rf tmp
rm -rf foreign/c/primitives/chibi/foreign-c.c
rm -rf foreign/c/lib
rm -rf *.tgz
rm -rf README.html

View File

@ -117,7 +117,7 @@
(c-declare "void c_bytevector_pointer_set (void* pointer, int offset, void* value) { char* p = (char*)pointer + offset; *(char**)p = value; }")
(define-c void (c-bytevector-pointer-set! c_bytevector_pointer_set) ((pointer void*) int (maybe-null pointer void*)))
(c-declare "void* c_bytevector_pointer_ref (void* pointer, int offset) { char* p = (char*)pointer + offset; return *(char**)p; }")
(c-declare "void* c_bytevector_pointer_ref (void* pointer, int offset) { char** p = (char**)pointer + offset; return (void*)*p; }")
(define-c (maybe-null pointer void*) (c-bytevector-pointer-ref c_bytevector_pointer_ref) ((maybe-null pointer void*) int))
(c-declare "ffi_cif cif;")

View File

@ -44,7 +44,7 @@ extern ScmObj align_of_void();
extern ScmObj shared_object_load(ScmString* path, ScmObj options);
//extern ScmObj pointer_null();
extern ScmObj is_pointer_null();
extern ScmObj is_pointer_null(ScmObj pointer);
//extern ScmObj pointer_allocate(int size);
//extern ScmObj pointer_address(ScmObj pointer);
extern ScmObj is_pointer(ScmObj pointer);
@ -53,6 +53,7 @@ extern ScmObj is_pointer(ScmObj pointer);
//extern ScmObj pointer_set_int8(ScmObj pointer, int offset, int8_t value);
extern ScmObj pointer_set_uint8(ScmObj pointer, int offset, uint8_t value);
extern ScmObj pointer_get_uint8(ScmObj pointer, int offset);
/*
* extern ScmObj pointer_set_int16(ScmObj pointer, int offset, int16_t value);
* extern ScmObj pointer_set_uint16(ScmObj pointer, int offset, uint16_t value);
@ -72,6 +73,7 @@ extern ScmObj pointer_set_uint8(ScmObj pointer, int offset, uint8_t value);
* extern ScmObj pointer_set_double(ScmObj pointer, int offset, double value);
* */
extern ScmObj pointer_set_pointer(ScmObj pointer, int offset, ScmObj value);
extern ScmObj pointer_get_pointer(ScmObj pointer, int offset);
//extern ScmObj string_to_pointer(ScmObj string);
//extern ScmObj pointer_to_string(ScmObj pointer);