[PD-cvs] pd/src m_pd.h, 1.4.4.11.2.33.2.3, 1.4.4.11.2.33.2.4 desire.c, 1.1.2.217.2.10, 1.1.2.217.2.11

Mathieu Bouchard matju at users.sourceforge.net
Sat Dec 2 06:41:23 CET 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4054

Modified Files:
      Tag: desiredata
	m_pd.h desire.c 
Log Message:
shorthands for t_scalar


Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.4.4.11.2.33.2.3
retrieving revision 1.4.4.11.2.33.2.4
diff -C2 -d -r1.4.4.11.2.33.2.3 -r1.4.4.11.2.33.2.4
*** m_pd.h	2 Dec 2006 05:37:19 -0000	1.4.4.11.2.33.2.3
--- m_pd.h	2 Dec 2006 05:41:19 -0000	1.4.4.11.2.33.2.4
***************
*** 235,242 ****
      t_gobj sc_gobj;         /* header for graphical object */
  #endif
!     t_symbol *sc_template;  /* template name (LATER replace with pointer) */
!     t_word sc_vec[1];       /* indeterminate-length array of words */
  } t_scalar;
  
  #ifdef PD_PLUSPLUS_FACE
  typedef struct t_text : t_gobj {
--- 235,245 ----
      t_gobj sc_gobj;         /* header for graphical object */
  #endif
!     t_symbol *t; /* template name (LATER replace with pointer) */
!     t_word v[1]; /* indeterminate-length array of words */
  } t_scalar;
  
+ #define sc_template t
+ #define sc_vec v
+ 
  #ifdef PD_PLUSPLUS_FACE
  typedef struct t_text : t_gobj {

Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.10
retrieving revision 1.1.2.217.2.11
diff -C2 -d -r1.1.2.217.2.10 -r1.1.2.217.2.11
*** desire.c	2 Dec 2006 05:37:20 -0000	1.1.2.217.2.10
--- desire.c	2 Dec 2006 05:41:19 -0000	1.1.2.217.2.11
***************
*** 1561,1575 ****
      t_symbol *zarraytype;
      t_scalar *sc = x->scalar;
!     t_template *t = template_findbyname(sc->sc_template);
!     TEMPLATE_CHECK(x,sc->sc_template,0)
      if (!template_find_field(t, gensym("z"), &zonset, &ztype, &zarraytype)) {
!         pd_error(x,"template %s has no 'z' field", sc->sc_template->s_name);
          return 0;
      }
      if (ztype != DT_ARRAY) {
!         pd_error(x,"template %s, 'z' field is not an array", sc->sc_template->s_name);
          return 0;
      }
!     return sc->sc_vec[zonset].w_array;
  }
  
--- 1561,1575 ----
      t_symbol *zarraytype;
      t_scalar *sc = x->scalar;
!     t_template *t = template_findbyname(sc->t);
!     TEMPLATE_CHECK(x,sc->t,0)
      if (!template_find_field(t, gensym("z"), &zonset, &ztype, &zarraytype)) {
!         pd_error(x,"template %s has no 'z' field", sc->t->s_name);
          return 0;
      }
      if (ztype != DT_ARRAY) {
!         pd_error(x,"template %s, 'z' field is not an array", sc->t->s_name);
          return 0;
      }
!     return sc->v[zonset].w_array;
  }
  
***************
*** 1638,1644 ****
      t_garray *x = graph_scalar(gl, s, templatesym, saveit);
      if (n <= 0) n = 100;
!     array_resize(x->scalar->sc_vec[zonset].w_array, n);
!     template_setfloat(t, gensym("style"),     x->scalar->sc_vec, style, 1);
!     template_setfloat(t, gensym("linewidth"), x->scalar->sc_vec, style==PLOTSTYLE_POINTS?2:1, 1);
      t_pd *x2 = pd_findbyclass(gensym("#A"), garray_class);
      if (x2) pd_unbind(x2,gensym("#A"));
--- 1638,1644 ----
      t_garray *x = graph_scalar(gl, s, templatesym, saveit);
      if (n <= 0) n = 100;
!     array_resize(x->scalar->v[zonset].w_array, n);
!     template_setfloat(t, gensym("style"),     x->scalar->v, style, 1);
!     template_setfloat(t, gensym("linewidth"), x->scalar->v, style==PLOTSTYLE_POINTS?2:1, 1);
      t_pd *x2 = pd_findbyclass(gensym("#A"), garray_class);
      if (x2) pd_unbind(x2,gensym("#A"));
***************
*** 1679,1683 ****
      int style = ((flags & 6) >> 1);
      float stylewas = template_getfloat(
!         template_findbyname(x->scalar->sc_template), gensym("style"), x->scalar->sc_vec, 1);
      if (deleteit != 0) {
          canvas_delete(x->canvas,x);
--- 1679,1683 ----
      int style = ((flags & 6) >> 1);
      float stylewas = template_getfloat(
!         template_findbyname(x->scalar->t), gensym("style"), x->scalar->v, 1);
      if (deleteit != 0) {
          canvas_delete(x->canvas,x);
***************
*** 1688,1693 ****
          t_template *scalartemplate;
          if (!a) {pd_error(x, "can't find array"); return;}
!         if (!(scalartemplate = template_findbyname(x->scalar->sc_template))) {
!             pd_error(x,"no template of type %s", x->scalar->sc_template->s_name);
              return;
          }
--- 1688,1693 ----
          t_template *scalartemplate;
          if (!a) {pd_error(x, "can't find array"); return;}
!         if (!(scalartemplate = template_findbyname(x->scalar->t))) {
!             pd_error(x,"no template of type %s", x->scalar->t->s_name);
              return;
          }
***************
*** 1706,1710 ****
          if (size != a->n) garray_resize(x, size);
          else if (style != stylewas) garray_fittograph(x, size, style);
!         template_setfloat(scalartemplate, gensym("style"), x->scalar->sc_vec, (float)style, 0);
          garray_setsaveit(x, saveit!=0);
          garray_redraw(x);
--- 1706,1710 ----
          if (size != a->n) garray_resize(x, size);
          else if (style != stylewas) garray_fittograph(x, size, style);
!         template_setfloat(scalartemplate, gensym("style"), x->scalar->v, (float)style, 0);
          garray_setsaveit(x, saveit!=0);
          garray_redraw(x);
***************
*** 1994,2007 ****
      t_array *array = garray_getarray(x);
      t_template *scalartemplate;
!     if (x->scalar->sc_template != gensym("pd-_float_array")) {
          /* LATER "save" the scalar as such */
!         pd_error(x,"can't save arrays of type %s yet", x->scalar->sc_template->s_name);
          return;
      }
!     if (!(scalartemplate = template_findbyname(x->scalar->sc_template))) {
!         pd_error(x,"no template of type %s", x->scalar->sc_template->s_name);
          return;
      }
!     style = (int)template_getfloat(scalartemplate, gensym("style"), x->scalar->sc_vec, 0);
      filestyle = (style == PLOTSTYLE_POINTS ? 1 : (style == PLOTSTYLE_POLY ? 0 : style));
      binbuf_addv(b, "sssisi;", gensym("#X"), gensym("array"),
--- 1994,2007 ----
      t_array *array = garray_getarray(x);
      t_template *scalartemplate;
!     if (x->scalar->t != gensym("pd-_float_array")) {
          /* LATER "save" the scalar as such */
!         pd_error(x,"can't save arrays of type %s yet", x->scalar->t->s_name);
          return;
      }
!     if (!(scalartemplate = template_findbyname(x->scalar->t))) {
!         pd_error(x,"no template of type %s", x->scalar->t->s_name);
          return;
      }
!     style = (int)template_getfloat(scalartemplate, gensym("style"), x->scalar->v, 0);
      filestyle = (style == PLOTSTYLE_POINTS ? 1 : (style == PLOTSTYLE_POLY ? 0 : style));
      binbuf_addv(b, "sssisi;", gensym("#X"), gensym("array"),
***************
*** 2217,2221 ****
      int n = f<1?1:(int)f;
      garray_fittograph(x, n, (int)template_getfloat(
!         template_findbyname(x->scalar->sc_template), gensym("style"), x->scalar->sc_vec, 1));
      array_resize_and_redraw(array, n);
      if (x->usedindsp) canvas_update_dsp();
--- 2217,2221 ----
      int n = f<1?1:(int)f;
      garray_fittograph(x, n, (int)template_getfloat(
!         template_findbyname(x->scalar->t), gensym("style"), x->scalar->v, 1));
      array_resize_and_redraw(array, n);
      if (x->usedindsp) canvas_update_dsp();
***************
*** 2797,2801 ****
      int message;
      int nline = canvas_scanbinbuf(natoms, vec, &message, p_nextmsg);
!     canvas_readatoms(x, natoms, vec, p_nextmsg, templatesym, sc->sc_vec, nline, vec + message);
      if (wasvis) canvas_getcanvas(x)->mapped = 1;
      gobj_changed(sc,0);
--- 2797,2801 ----
      int message;
      int nline = canvas_scanbinbuf(natoms, vec, &message, p_nextmsg);
!     canvas_readatoms(x, natoms, vec, p_nextmsg, templatesym, sc->v, nline, vec + message);
      if (wasvis) canvas_getcanvas(x)->mapped = 1;
      gobj_changed(sc,0);
***************
*** 2987,2991 ****
      for (; y; y = y->g_next) if (y->_class==scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_writescalar(z->sc_template, z->sc_vec, b, 0);
      }
  }
--- 2987,2991 ----
      for (; y; y = y->g_next) if (y->_class==scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_writescalar(z->t, z->v, b, 0);
      }
  }
***************
*** 3017,3021 ****
      for (; y; y = y->g_next) if (y->_class == scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_addtemplatesforscalar(z->sc_template, z->sc_vec, p_ntemplates, p_templatevec);
      }
  }
--- 3017,3021 ----
      for (; y; y = y->g_next) if (y->_class == scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_addtemplatesforscalar(z->t, z->v, p_ntemplates, p_templatevec);
      }
  }
***************
*** 3027,3031 ****
      canvas_each(y,x) if (y->_class==scalar_class) {
  	t_scalar *s = (t_scalar *)y;
! 	canvas_addtemplatesforscalar(s->sc_template, s->sc_vec, &ntemplates, &templatevec);
      }
      binbuf_addv(b, "s;", gensym("data"));
--- 3027,3031 ----
      canvas_each(y,x) if (y->_class==scalar_class) {
  	t_scalar *s = (t_scalar *)y;
! 	canvas_addtemplatesforscalar(s->t, s->v, &ntemplates, &templatevec);
      }
      binbuf_addv(b, "s;", gensym("data"));
***************
*** 3054,3058 ****
      canvas_each(y,x) if (y->_class==scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_writescalar(z->sc_template, z->sc_vec,  b, 0);
      }
      return b;
--- 3054,3058 ----
      canvas_each(y,x) if (y->_class==scalar_class) {
  	t_scalar *z = (t_scalar *)y;
! 	canvas_writescalar(z->t, z->v,  b, 0);
      }
      return b;
***************
*** 3121,3125 ****
          if (y->_class==scalar_class) {
  		t_scalar *z = (t_scalar *)y;
!                 canvas_addtemplatesforscalar(z->sc_template, z->sc_vec, ntemplatesp, templatevecp);
  	} else if (y->_class==canvas_class) {
                  canvas_collecttemplatesfor((t_canvas *)y, ntemplatesp, templatevecp);
--- 3121,3125 ----
          if (y->_class==scalar_class) {
  		t_scalar *z = (t_scalar *)y;
!                 canvas_addtemplatesforscalar(z->t, z->v, ntemplatesp, templatevecp);
  	} else if (y->_class==canvas_class) {
                  canvas_collecttemplatesfor((t_canvas *)y, ntemplatesp, templatevecp);
***************
*** 3739,3747 ****
      t_template *t = template_findbyname(templatesym);
      TEMPLATE_CHECK(owner,templatesym,0)
!     t_scalar *x = (t_scalar *)getbytes(sizeof(t_scalar) + (t->n - 1) * sizeof(*x->sc_vec));
      x->_class = scalar_class;
!     x->sc_template = templatesym;
      gpointer_setcanvas(&gp, owner, x);
!     word_init(x->sc_vec, t, &gp);
      return x;
  }
--- 3739,3747 ----
      t_template *t = template_findbyname(templatesym);
      TEMPLATE_CHECK(owner,templatesym,0)
!     t_scalar *x = (t_scalar *)getbytes(sizeof(t_scalar) + (t->n - 1) * sizeof(*x->v));
      x->_class = scalar_class;
!     x->t = templatesym;
      gpointer_setcanvas(&gp, owner, x);
!     word_init(x->v, t, &gp);
      return x;
  }
***************
*** 3766,3772 ****
  
  static void scalar_getbasexy(t_scalar *x, float *basex, float *basey) {
!     t_template *t = template_findbyname(x->sc_template);
!     *basex = template_getfloat(t, gensym("x"), x->sc_vec, 0);
!     *basey = template_getfloat(t, gensym("y"), x->sc_vec, 0);
  }
  
--- 3766,3772 ----
  
  static void scalar_getbasexy(t_scalar *x, float *basex, float *basey) {
!     t_template *t = template_findbyname(x->t);
!     *basex = template_getfloat(t, gensym("x"), x->v, 0);
!     *basey = template_getfloat(t, gensym("y"), x->v, 0);
  }
  
***************
*** 3774,3778 ****
  static void scalar_displace(t_gobj *z, t_canvas *canvas, int dx, int dy) {
      t_scalar *x = (t_scalar *)z;
!     t_symbol *templatesym = x->sc_template;
      t_template *t = template_findbyname(templatesym);
      t_symbol *zz;
--- 3774,3778 ----
  static void scalar_displace(t_gobj *z, t_canvas *canvas, int dx, int dy) {
      t_scalar *x = (t_scalar *)z;
!     t_symbol *templatesym = x->t;
      t_template *t = template_findbyname(templatesym);
      t_symbol *zz;
***************
*** 3783,3789 ****
      goty = template_find_field(t, gensym("y"), &yonset, &ytype, &zz);
      if (goty && (ytype != DT_FLOAT)) goty = 0;
!     if (gotx) *(t_float *)(((char *)(x->sc_vec)) + xonset) +=
              dx * (canvas_pixelstox(canvas, 1) - canvas_pixelstox(canvas, 0));
!     if (goty) *(t_float *)(((char *)(x->sc_vec)) + yonset) +=
              dy * (canvas_pixelstoy(canvas, 1) - canvas_pixelstoy(canvas, 0));
      scalar_redraw(x, canvas);
--- 3783,3789 ----
      goty = template_find_field(t, gensym("y"), &yonset, &ytype, &zz);
      if (goty && (ytype != DT_FLOAT)) goty = 0;
!     if (gotx) *(t_float *)(((char *)(x->v)) + xonset) +=
              dx * (canvas_pixelstox(canvas, 1) - canvas_pixelstox(canvas, 0));
!     if (goty) *(t_float *)(((char *)(x->v)) + yonset) +=
              dy * (canvas_pixelstoy(canvas, 1) - canvas_pixelstoy(canvas, 0));
      scalar_redraw(x, canvas);
***************
*** 3792,3796 ****
  static void scalar_vis(t_gobj *z, t_canvas *owner, int vis) {
      t_scalar *x = (t_scalar *)z;
!     t_template *t = template_findbyname(x->sc_template);
      t_canvas *templatecanvas = template_findcanvas(t);
      float basex, basey;
--- 3792,3796 ----
  static void scalar_vis(t_gobj *z, t_canvas *owner, int vis) {
      t_scalar *x = (t_scalar *)z;
!     t_template *t = template_findbyname(x->t);
      t_canvas *templatecanvas = template_findcanvas(t);
      float basex, basey;
***************
*** 3808,3812 ****
      canvas_each(y,templatecanvas) {
          t_parentwidgetbehavior *wb = pd_getparentwidget(y);
!         if (wb) wb->w_parentvisfn(y, owner, x->sc_vec, t, basex, basey, vis);
      }
      //sys_unqueuegui(x);
--- 3808,3812 ----
      canvas_each(y,templatecanvas) {
          t_parentwidgetbehavior *wb = pd_getparentwidget(y);
!         if (wb) wb->w_parentvisfn(y, owner, x->v, t, basex, basey, vis);
      }
      //sys_unqueuegui(x);
***************
*** 3841,3846 ****
  int xpix, int ypix, int shift, int alt, int dbl, int doit) {
      t_scalar *x = (t_scalar *)z;
!     t_template *t = template_findbyname(x->sc_template);
!     return scalar_doclick(x->sc_vec, t, x, 0, owner, 0, 0, xpix, ypix, shift, alt, dbl, doit);
  }
  
--- 3841,3846 ----
  int xpix, int ypix, int shift, int alt, int dbl, int doit) {
      t_scalar *x = (t_scalar *)z;
!     t_template *t = template_findbyname(x->t);
!     return scalar_doclick(x->v, t, x, 0, owner, 0, 0, xpix, ypix, shift, alt, dbl, doit);
  }
  
***************
*** 3850,3854 ****
      t_scalar *x = (t_scalar *)z;
      t_binbuf *b2 = binbuf_new();
!     canvas_writescalar(x->sc_template, x->sc_vec, b2, 0);
      binbuf_addv(b, "ss", &s__X, gensym("scalar"));
      binbuf_addbinbuf(b, b2);
--- 3850,3854 ----
      t_scalar *x = (t_scalar *)z;
      t_binbuf *b2 = binbuf_new();
!     canvas_writescalar(x->t, x->v, b2, 0);
      binbuf_addv(b, "ss", &s__X, gensym("scalar"));
      binbuf_addbinbuf(b, b2);
***************
*** 3877,3888 ****
  
  static void scalar_free(t_scalar *x) {
!     t_symbol *templatesym = x->sc_template;
      t_template *t = template_findbyname(templatesym);
      TEMPLATE_CHECK(x,templatesym,)
!     word_free(x->sc_vec, t);
      gfxstub_deleteforkey(x);
      /* the "size" field in the class is zero, so Pd doesn't try to free
         us automatically (see pd_free()) */
!     freebytes(x, sizeof(t_scalar) + (t->n - 1) * sizeof(*x->sc_vec));
  }
  
--- 3877,3888 ----
  
  static void scalar_free(t_scalar *x) {
!     t_symbol *templatesym = x->t;
      t_template *t = template_findbyname(templatesym);
      TEMPLATE_CHECK(x,templatesym,)
!     word_free(x->v, t);
      gfxstub_deleteforkey(x);
      /* the "size" field in the class is zero, so Pd doesn't try to free
         us automatically (see pd_free()) */
!     freebytes(x, sizeof(t_scalar) + (t->n - 1) * sizeof(*x->v));
  }
  
***************
*** 4064,4078 ****
      t_template *scalartemplate;
      /* possibly replace the scalar */
!     if (scfrom->sc_template == tfrom->sym) {
          /* see scalar_new() for comment about the gpointer. */
          gpointer_init(&gp);
!         x = (t_scalar *)getbytes(sizeof(t_scalar) + (tto->n - 1) * sizeof(*x->sc_vec));
          x->_class = scalar_class;
!         x->sc_template = tfrom->sym;
          gpointer_setcanvas(&gp, canvas, x);
          /* Here we initialize to the new template, but array and list
             elements will still belong to old template. */
!         word_init(x->sc_vec, tto, &gp);
!         template_conformwords(tfrom, tto, conformaction, scfrom->sc_vec, x->sc_vec);
          /* replace the old one with the new one in the list */
          if (canvas->list == scfrom) {
--- 4064,4078 ----
      t_template *scalartemplate;
      /* possibly replace the scalar */
!     if (scfrom->t == tfrom->sym) {
          /* see scalar_new() for comment about the gpointer. */
          gpointer_init(&gp);
!         x = (t_scalar *)getbytes(sizeof(t_scalar) + (tto->n - 1) * sizeof(*x->v));
          x->_class = scalar_class;
!         x->t = tfrom->sym;
          gpointer_setcanvas(&gp, canvas, x);
          /* Here we initialize to the new template, but array and list
             elements will still belong to old template. */
!         word_init(x->v, tto, &gp);
!         template_conformwords(tfrom, tto, conformaction, scfrom->v, x->v);
          /* replace the old one with the new one in the list */
          if (canvas->list == scfrom) {
***************
*** 4092,4102 ****
      } else {
          x = scfrom;
!         scalartemplate = template_findbyname(x->sc_template);
      }
      /* convert all array elements and sublists */
      for (int i=0; i < scalartemplate->n; i++) {
          t_dataslot *ds = scalartemplate->vec + i;
!         if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, x->sc_vec[i].w_list);
!         if (ds->type == DT_ARRAY) template_conformarray(tfrom, tto, conformaction, x->sc_vec[i].w_array);
      }
      return x;
--- 4092,4102 ----
      } else {
          x = scfrom;
!         scalartemplate = template_findbyname(x->t);
      }
      /* convert all array elements and sublists */
      for (int i=0; i < scalartemplate->n; i++) {
          t_dataslot *ds = scalartemplate->vec + i;
!         if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, x->v[i].w_list);
!         if (ds->type == DT_ARRAY) template_conformarray(tfrom, tto, conformaction, x->v[i].w_array);
      }
      return x;
***************
*** 5274,5278 ****
  static t_symbol *gpointer_gettemplatesym(const t_gpointer *gp) {
      t_gstub *gs = gp->gp_stub;
!     if (gs->gs_which == GP_GLIST) {t_scalar *sc = gp->gp_un.gp_scalar; return sc ? sc->sc_template : 0;}
      else                          {t_array   *a = gs->gs_un.gs_array;  return a->templatesym;}
  }
--- 5274,5278 ----
  static t_symbol *gpointer_gettemplatesym(const t_gpointer *gp) {
      t_gstub *gs = gp->gp_stub;
!     if (gs->gs_which == GP_GLIST) {t_scalar *sc = gp->gp_un.gp_scalar; return sc ? sc->t : 0;}
      else                          {t_array   *a = gs->gs_un.gs_array;  return a->templatesym;}
  }
***************
*** 5369,5373 ****
          gp->gp_un.gp_scalar = sc;
          for (int n = x->ntypedout; n--; to++)
!             if (to->type == sc->sc_template) {outlet_pointer(to->outlet, &x->gp); return;}
          outlet_pointer(x->otherout, &x->gp);
      } else {
--- 5369,5373 ----
          gp->gp_un.gp_scalar = sc;
          for (int n = x->ntypedout; n--; to++)
!             if (to->type == sc->t) {outlet_pointer(to->outlet, &x->gp); return;}
          outlet_pointer(x->otherout, &x->gp);
      } else {
***************
*** 5465,5469 ****
      TEMPLATE_CHECK(x,x->templatesym,)
      if (!gpointer_check(gp, 0)) {pd_error(x, "stale or empty pointer"); return;}
!     t_word *vec = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->sc_vec;
      vp = x->variables + nitems-1;
      for (int i=nitems-1; i>=0; i--, vp--) {
--- 5465,5469 ----
      TEMPLATE_CHECK(x,x->templatesym,)
      if (!gpointer_check(gp, 0)) {pd_error(x, "stale or empty pointer"); return;}
!     t_word *vec = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->v;
      vp = x->variables + nitems-1;
      for (int i=nitems-1; i>=0; i--, vp--) {
***************
*** 5539,5543 ****
      }
      if (!nitems) return;
!     t_word *vec = gs->gs_which == GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->sc_vec;
      t_setvariable *vp=x->variables;
      if (x->issymbol)
--- 5539,5543 ----
      }
      if (!nitems) return;
!     t_word *vec = gs->gs_which == GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->v;
      t_setvariable *vp=x->variables;
      if (x->issymbol)
***************
*** 5603,5607 ****
          return;
      }
!     t_word *w = gparent->gp_stub->gs_which==GP_ARRAY ? gparent->gp_un.gp_w : gparent->gp_un.gp_scalar->sc_vec;
      TEMPLATE_CHECK(x,x->templatesym,)
      if (!template_find_field(t, fieldsym, &onset, &type, &elemtemplatesym)) {
--- 5603,5607 ----
          return;
      }
!     t_word *w = gparent->gp_stub->gs_which==GP_ARRAY ? gparent->gp_un.gp_w : gparent->gp_un.gp_scalar->v;
      TEMPLATE_CHECK(x,x->templatesym,)
      if (!template_find_field(t, fieldsym, &onset, &type, &elemtemplatesym)) {
***************
*** 5662,5666 ****
          return;
      }
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->sc_vec;
      t_array *array = *(t_array **)(((char *)w) + onset);
      outlet_float(x->ob_outlet, (float)(array->n));
--- 5662,5666 ----
          return;
      }
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->v;
      t_array *array = *(t_array **)(((char *)w) + onset);
      outlet_float(x->ob_outlet, (float)(array->n));
***************
*** 5697,5701 ****
          return;
      }
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->sc_vec;
      TEMPLATE_CHECK(x,x->templatesym,)
      t_symbol *elemtemplatesym;
--- 5697,5701 ----
          return;
      }
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->v;
      TEMPLATE_CHECK(x,x->templatesym,)
      t_symbol *elemtemplatesym;
***************
*** 5807,5811 ****
      gobj_changed(sc,0);
      gp->gp_un.gp_scalar = sc;
!     vec = sc->sc_vec;
      vp=x->variables;
      for (int i=0; i<nitems; i++,vp++) template_setfloat(t, vp->sym, vec, vp->f, 1);
--- 5807,5811 ----
      gobj_changed(sc,0);
      gp->gp_un.gp_scalar = sc;
!     vec = sc->v;
      vp=x->variables;
      for (int i=0; i<nitems; i++,vp++) template_setfloat(t, vp->sym, vec, vp->f, 1);
***************
*** 5850,5854 ****
      }
      if (type != DT_LIST) {pd_error(x, "field %s not of type list", x->fieldsym->s_name); return;}
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->sc_vec;
      gpointer_setcanvas(&x->gp, *(t_canvas **)(((char *)w) + onset), 0);
      outlet_pointer(x->ob_outlet, &x->gp);
--- 5850,5854 ----
      }
      if (type != DT_LIST) {pd_error(x, "field %s not of type list", x->fieldsym->s_name); return;}
!     t_word *w = gs->gs_which==GP_ARRAY ? gp->gp_un.gp_w : gp->gp_un.gp_scalar->v;
      gpointer_setcanvas(&x->gp, *(t_canvas **)(((char *)w) + onset), 0);
      outlet_pointer(x->ob_outlet, &x->gp);





More information about the Pd-cvs mailing list