>>>> "Gunnar" == Gunnar Evermann
<ge204(a)eng.cam.ac.uk> writes:
Gunnar> The problem is that normalize_image_instantiator potentially calls
Gunnar> simple_image_type_normalize, which has the comment (/* This function
Gunnar> can call lisp */).
Well done!
Gunnar> the fix is appended below. One could make the gcprotection local to
Gunnar> the 'STRINGP' case, but I was to lazy, should I change that?
I propose this slight variation instead:
--- src/glyphs.c.old
+++ src/glyphs.c
@@ -481,12 +481,16 @@
longer exist (e.g. w3 pixmaps are almost always from temporary
files). */
{
- struct image_instantiator_methods * meths =
- decode_image_instantiator_format (XVECTOR_DATA (instantiator)[0],
- ERROR_ME);
- return IIFORMAT_METH_OR_GIVEN (meths, normalize,
- (instantiator, contype),
- instantiator);
+ struct gcpro gcpro1;
+ struct image_instantiator_methods *meths;
+
+ GCPRO1 (instantiator);
+
+ meths = decode_image_instantiator_format (XVECTOR_DATA (instantiator)[0],
+ ERROR_ME);
+ RETURN_UNGCPRO (IIFORMAT_METH_OR_GIVEN (meths, normalize,
+ (instantiator, contype),
+ instantiator));
}
}