Re: with-foreign-object allocation question
"Madhu (as enometh at meer dot net)" <[email protected]> Fri, 10 Apr 2026 14:20:40 +0530 (IST)
| Newsgroups | gmane.lisp.lispworks.general |
|---|---|
| Message-ID | <[email protected]> |
sorry for the immediate followup: actuallythere is a another deeper problem because ARGS may be used after it is freed, it really should be allocated and not freed, but that is not the point of failure in other lisps, or on lispworks, * In <[email protected]> I wrote on Fri, 10 Apr 2026 14:08:38 +0530 (IST) > I am trying to fix a lethal memory bug in > https://github.com/StjepanPoljak/musicli src/jack.c: (start-jack-callbacks) > where there is a call > > (cffi:with-foreign-object (args '(:pointer (:struct jack-cb-args))) > ... clobber 24 bytes == (sizeof (:struct jack-cb-args)) > allocated at ARGS ...) > > which should really read > > (cffi:with-foreign-object '(:struct jack-cb-args) ...) > > this reliably crashes other lisps, but not lwl 64 personal. what > could be the reason for this resiliance? macroexpansion on the > incorrect form shows > > (fli:with-dynamic-foreign-objects nil > (let* ((#:size6844 8) > (args (fli:alloca :type :byte :nelems #:size6844))) > > Which shows only 8 bytes being allocated. but are allocations aligned > at > 24byte offsets, so the memory corruption doesn't show up in > lispworks in this case? > > -- Madhu > > (project author bcc'd) _______________________________________________ Lisp Hug - the mailing list for LispWorks users [email protected] http://www.lispworks.com/support/lisp-hug.html