? plug-ins/script-fu/tinyscheme/.scheme.c.swp Index: plug-ins/script-fu/scheme-wrapper.c =================================================================== RCS file: /cvs/gnome/gimp/plug-ins/script-fu/scheme-wrapper.c,v retrieving revision 1.71 diff -u -p -r1.71 scheme-wrapper.c --- plug-ins/script-fu/scheme-wrapper.c 18 Nov 2006 22:30:23 -0000 1.71 +++ plug-ins/script-fu/scheme-wrapper.c 19 Nov 2006 00:04:46 -0000 @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#if 0 -#define DEBUG_MARSHALL 0 /* No need to define this until you need it */ +#if 1 +#define DEBUG_MARSHALL 1 /* No need to define this until you need it */ #define DEBUG_SCRIPTS 0 #endif @@ -756,8 +756,8 @@ fprintf (stderr, " Invalid number of ar fprintf (stderr, " param %d - expecting type %s (%d)\n", i+1, ret_types[ params[i].type ], params[i].type); fprintf (stderr, " passed arg is type %s (%d)\n", - ts_types[ type(sc->vptr->pair_car (a)) ], - type(sc->vptr->pair_car (a))); + ts_types[ sc->vptr->pair_car (a)->_flag & 31 ], + sc->vptr->pair_car (a)->_flag & 31); #endif args[i].type = params[i].type; @@ -978,7 +978,7 @@ if (count > 0) { fprintf (stderr, " "); for (j = 0; j < count; ++j) - fprintf (stderr, " %u", + fprintf (stderr, " %ld", sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) )); fprintf (stderr, "\n"); } @@ -1310,6 +1310,7 @@ fprintf (stderr, " value %d is type sc->vptr->mk_integer (sc, values[i + 1].data.d_int32), return_val); + g_printerr ("making int: %d\n", values[i + 1].data.d_int32); break; case GIMP_PDB_INT16: @@ -1408,7 +1409,14 @@ fprintf (stderr, " value %d is type { gint32 num_floats = values[i].data.d_int32; gdouble *array = (gdouble *) values[i + 1].data.d_floatarray; - pointer vector = sc->vptr->mk_vector (sc, num_floats); + pointer vector; +#if DEBUG_MARSHALL +fprintf (stderr, "a) %s\n", ts_types[ return_val->_flag & 31 ]); +#endif + vector = sc->vptr->mk_vector (sc, num_floats); +#if DEBUG_MARSHALL +fprintf (stderr, "a2) %s\n", ts_types[ return_val->_flag & 31 ]); +#endif for (j = 0; j < num_floats; j++) { @@ -1418,6 +1426,9 @@ fprintf (stderr, " value %d is type } return_val = sc->vptr->cons (sc, vector, return_val); +#if DEBUG_MARSHALL +fprintf (stderr, "b) %s\n", ts_types[ sc->vptr->pair_cdr (return_val)->_flag & 31 ]); +#endif } break;