Added Chicken patch to resolve #1

This commit is contained in:
Daniel Ziltener 2020-09-24 01:18:48 +02:00
parent ea72b952be
commit 0fb1a8a131
2 changed files with 40 additions and 10 deletions

26
chicken_h.patch Normal file
View File

@ -0,0 +1,26 @@
diff --git a/chicken.h b/chicken.h
index d75fe04f..ad3ba9da 100644
--- a/chicken.h
+++ b/chicken.h
@@ -1487,17 +1487,17 @@ typedef void (C_ccall *C_proc)(C_word, C_word *) C_noret;
#ifdef C_BIG_ENDIAN
# ifdef C_SIXTY_FOUR
# define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 56) & 0xff), \
- 0, 0, 0, 0, (x), (y), (z)
+ 0, 0, 0, 0, (x), (y), ((C_char)(z))
# else
# define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 24) & 0xff), \
- (x), (y), (z)
+ (x), (y), ((C_char)(z))
# endif
#else
# ifdef C_SIXTY_FOUR
-# define C_lihdr(x, y, z) (z), (y), (x), 0, 0, 0, 0, \
+# define C_lihdr(x, y, z) ((C_char)(z)), (y), (x), 0, 0, 0, 0, \
((C_LAMBDA_INFO_TYPE >> 56) & 0xff)
# else
-# define C_lihdr(x, y, z) (z), (y), (x), \
+# define C_lihdr(x, y, z) ((C_char)(z)), (y), (x), \
((C_LAMBDA_INFO_TYPE >> 24) & 0xff)
# endif
#endif

24
qml.scm
View File

@ -378,7 +378,6 @@
"C_return(dos_qvariant_toQObject(vptr));"))
;; QMetaObject
;; This is broken...
(define dos_qmetaobject_create
(foreign-lambda* (c-pointer DosQMetaObject) (((c-pointer DosQMetaObject) superClassMetaObject)
(c-string className)
@ -395,16 +394,21 @@
(c-pointer data)
(DosQtConnectionType connection_type))
"C_return(dos_qmetaobject_invoke_method(context, callback, data, connection_type));"))
;; QAbstractListModel
(define dos_qabstractlistmodel_qmetaobject
(foreign-lambda* (c-pointer DosQMetaObject) ()
"C_return(dos_qabstractlistmodel_qmetaobject());"))
;; This, too, is broken
;; QAbstractListModel
;; (define dos_qabstractlistmodel_create
;; (foreign-lambda* (c-pointer DosQAbstractListModel) (((function void (void)) callbackObject)
;; ((c-pointer DosQMetaObject) metaObject)
;; (DObjectCallback dObjectCallback)
;; ((c-pointer DosQAbstractItemModelCallbacks) callbacks))
;; "C_return(dos_qabstractlistmodel_create(callbackObject, metaObject, dObjectCallback, callbacks));"))
(define dos_qabstractlistmodel_create
(foreign-lambda* (c-pointer DosQAbstractListModel) (((c-pointer (function void ())) callbackObject)
((c-pointer DosQMetaObject) metaObject)
(DObjectCallback dObjectCallback)
((c-pointer DosQAbstractItemModelCallbacks) callbacks))
"C_return(dos_qabstractlistmodel_create(callbackObject, metaObject, dObjectCallback, callbacks));"))
;; (define dos_qabstractlistmodel_index
;; (foreign-lambda* (c-pointer DosQModelIndex) (((c-pointer DosQAbstractListModel) vptr)
;; (int row)
;; (int column)
;; ((c-pointer DosQModelIndex) parent))
;; "C_return(dos_qabstractlistmodel_index(vptr, row, column, parent));"))
))