[PD-cvs] pd/src builtins.c,1.1.2.44,1.1.2.45

Mathieu Bouchard matju at users.sourceforge.net
Fri Jul 20 16:19:29 CEST 2007


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

Modified Files:
      Tag: desiredata
	builtins.c 
Log Message:
removing old pointer stuff... this isn't supposed to work as it is now. it will need a switch to newer pointer stuff in the future.


Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.44
retrieving revision 1.1.2.45
diff -C2 -d -r1.1.2.44 -r1.1.2.45
*** builtins.c	20 Jul 2007 08:41:02 -0000	1.1.2.44
--- builtins.c	20 Jul 2007 14:19:27 -0000	1.1.2.45
***************
*** 1421,1426 ****
      t_int n;              /* number of args */
      t_atom *vec;          /* input values */
-     t_int nptr;           /* number of pointers */
-     t_gpointer *gpointer; /* the pointers */
      t_atom *outvec;       /* space for output values */
  };
--- 1421,1424 ----
***************
*** 1442,1447 ****
          if (ap->a_type == A_SYMBOL && *ap->a_symbol->name == 'p')
              nptr++;
-     t_gpointer *gp = x->gpointer = (t_gpointer *)t_getbytes(nptr * sizeof (*gp));
-     x->nptr = nptr;
      for (i = 0, vp = x->vec, ap = argv; i < argc; i++, ap++, vp++) {
          if (ap->a_type == A_FLOAT) {
--- 1440,1443 ----
***************
*** 1455,1462 ****
              } else if (c == 'p') {
                  vp->a_type = A_POINTER;
!                 vp->a_pointer = gp;
!                 gpointer_init(gp);
!                 if (i) pointerinlet_new(x, gp);
!                 gp++;
              } else {
                  if (c != 'f') error("pack: %s: bad type", ap->a_symbol->name);
--- 1451,1457 ----
              } else if (c == 'p') {
                  vp->a_type = A_POINTER;
!                 //vp->a_pointer = gp;
!                 //gpointer_init(gp);
!                 //if (i) pointerinlet_new(x, gp);
              } else {
                  if (c != 'f') error("pack: %s: bad type", ap->a_symbol->name);
***************
*** 1471,1486 ****
  static void pack_bang(t_pack *x) {
      int reentered = 0, size = x->n * sizeof (t_atom);
-     t_gpointer *gp = x->gpointer;
      t_atom *outvec;
!     for (int i = x->nptr; i--; gp++) if (!gpointer_check(gp, 1)) {
!         error("pack: stale pointer");
!         return;
!     }
!     /* reentrancy protection.  The first time through use the pre-allocated
!        outvec; if we're reentered we have to allocate new memory. */
      if (!x->outvec) {
-             /* LATER figure out how to deal with reentrancy and pointers... */
-         if (x->nptr)
-             post("pack_bang: warning: reentry with pointers unprotected");
          outvec = (t_atom *)t_getbytes(size);
          reentered = 1;
--- 1466,1472 ----
  static void pack_bang(t_pack *x) {
      int reentered = 0, size = x->n * sizeof (t_atom);
      t_atom *outvec;
!     /* reentrancy protection.  The first time through use the pre-allocated outvec; if we're reentered we have to allocate new memory. */
      if (!x->outvec) {
          outvec = (t_atom *)t_getbytes(size);
          reentered = 1;
***************
*** 1496,1502 ****
  static void pack_pointer(t_pack *x, t_gpointer *gp) {
      if (x->vec->a_type == A_POINTER) {
!         gpointer_unset(x->gpointer);
!         *x->gpointer = *gp;
!         if (gp->o) gp->o->refcount++;
          pack_bang(x);
      } else error("pack_pointer: wrong type");
--- 1482,1488 ----
  static void pack_pointer(t_pack *x, t_gpointer *gp) {
      if (x->vec->a_type == A_POINTER) {
!         //gpointer_unset(x->gpointer);
!         //*x->gpointer = *gp;
!         //if (gp->o) gp->o->refcount++;
          pack_bang(x);
      } else error("pack_pointer: wrong type");
***************
*** 1517,1525 ****
  }
  static void pack_free(t_pack *x) {
-     t_gpointer *gp=x->gpointer;
-     for (int i = x->nptr; i--; gp++) gpointer_unset(gp);
      free(x->vec);
      free(x->outvec);
-     free(x->gpointer);
  }
  static void pack_setup() {
--- 1503,1508 ----
***************
*** 2728,2732 ****
      t_atom defarg, *ap;
      t_atom *vec, *vp;
-     t_gpointer *gp;
      int nptr = 0;
      float deltime=0;
--- 2711,2714 ----
***************
*** 2762,2770 ****
              } else if (c=='p') {
                  vp->a_type = A_POINTER;
-                 vp->a_pointer = gp;
-                 gpointer_init(gp);
                  outlet_new(x, &s_pointer);
!                 if (i) pointerinlet_new(x, gp);
!                 gp++;
              } else if (c=='f') {
                  SETFLOAT(vp,0);
--- 2744,2749 ----
              } else if (c=='p') {
                  vp->a_type = A_POINTER;
                  outlet_new(x, &s_pointer);
!                 //if (i) pointerinlet_new(x, gp);
              } else if (c=='f') {
                  SETFLOAT(vp,0);
***************
*** 2793,2806 ****
          }
      }
!     t_atom *p     = x->vec + (x->n - 1);
!     union word *w = h->vec + (x->n - 1);
      for (int i = x->n; i--; p--, w--) {
          switch (p->a_type) {
!         case A_FLOAT:  outlet_float( x->out(i),w->w_float ); break;
!         case A_SYMBOL: outlet_symbol(x->out(i),w->w_symbol); break;
!         case A_POINTER:
!             if (gpointer_check(w->w_gpointer, 1)) outlet_pointer(x->out(i), w->w_gpointer);
!             else post("pipe: stale pointer");
!             break;
          default:{}
          }
--- 2772,2782 ----
          }
      }
!     t_atom *p     = x->vec + x->n-1;
!     union word *w = h->vec + x->n-1;
      for (int i = x->n; i--; p--, w--) {
          switch (p->a_type) {
!         case A_FLOAT:  outlet_float(  x->out(i), w->w_float   ); break;
!         case A_SYMBOL: outlet_symbol( x->out(i), w->w_symbol  ); break;
!         case A_POINTER:outlet_pointer(x->out(i), w->w_gpointer); break;
          default:{}
          }
***************
*** 2810,2814 ****
  static void pipe_list(t_pipe *x, t_symbol *s, int ac, t_atom *av) {
      t_hang2 *h = (t_hang2 *)getbytes(sizeof(*h) + (x->n - 1) * sizeof(*h->vec));
-     t_gpointer *gp2;
      int n = x->n;
      if (ac > n) ac = n;
--- 2786,2789 ----





More information about the Pd-cvs mailing list