The right values for :free-from-foreign and :free-to-foreign are likely always up to the specific function contract. Failure to get this right will either leak memory, or, worse, cause memory corruption (by double free mostly) because the Lisp isn't supposed to e.g. touch the nodes in a GList.
Thus, having found at least one incorrect value, we'll have to check each current one, specify a value if none was given, and set the default :initform to something like (error ...) to ensure that a developer will have to think about this.
The right values for
:free-from-foreign
and:free-to-foreign
are likely always up to the specific function contract. Failure to get this right will either leak memory, or, worse, cause memory corruption (by double free mostly) because the Lisp isn't supposed to e.g. touch the nodes in aGList
.Thus, having found at least one incorrect value, we'll have to check each current one, specify a value if none was given, and set the default
:initform
to something like(error ...)
to ensure that a developer will have to think about this.