ref: afd89d309d696f9edd4a383d088cc6c05d00880b
parent: 6abb9232b6e1c6b26ff1423a1f0be84e89fa297c
author: Werner Lemberg <[email protected]>
date: Wed Sep 15 09:02:35 EDT 2010
Make bytecode debugging with FontForge work again. * src/truetype/ttinterp.c (TT_RunIns): Don't call `free_buffer_in_size' in case of error if a debugger is active.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-09-15 Werner Lemberg <[email protected]>
+
+ Make bytecode debugging with FontForge work again.
+
+ * src/truetype/ttinterp.c (TT_RunIns): Don't call
+ `free_buffer_in_size' in case of error if a debugger is active.
+
2010-09-14 Werner Lemberg <[email protected]>
Improve tracing messages.
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -8162,13 +8162,15 @@
*exc = cur;
#endif
- /* if any errors, function tables may be broken. */
- /* it should not be used for next interpretation. */
- if ( CUR.error )
+ /* If any errors have occurred, function tables may be broken. */
+ /* Force a re-execution of `prep' and `fpgm' tables if no */
+ /* bytecode debugger is run. */
+ if ( CUR.error && !CUR.instruction_trap )
{
FT_TRACE1(( " The interpreter returned error 0x%x\n", CUR.error ));
free_buffer_in_size( exc );
- exc->size->cvt_ready = FALSE;
+
+ exc->size->cvt_ready = FALSE;
exc->size->bytecode_ready = FALSE;
}