Hi, i have a question about the use of the function
scm_remember_upto_here_1.

The Guile manual says:

"It’s only in quite rare circumstances that a missing
scm_remember_upto_here_1 will
bite, but when it happens the consequences are serious. Fortunately the
rule is simple:
whenever calling a Guile library function or doing something that might,
ensure that the
SCM of a smob is referenced past all accesses to its insides. Do this by
adding an scm_
remember_upto_here_1 if there are no other references."

In the example code the clean_image function does call
scm_remember_upto_here_1 after accessing data in the smob, however the
function print_image does not, and access the name member of the image.

If i don't call a Guile library function, but i modify a value inside the
smob, do i have tu call this function?

In the case of the print_image function, a scm_display is called with a SCM
value inside the smob, that's why they didn't call scm_remember_upto_here_1
?

When is necessary to call this function?

Reply via email to