[PD-cvs] externals/grill/py/source clmeth.cpp, 1.22, 1.23 py.cpp, 1.27, 1.28 pyargs.cpp, 1.17, 1.18
Thomas Grill
xovo at users.sourceforge.net
Fri Jul 15 18:13:45 CEST 2005
Update of /cvsroot/pure-data/externals/grill/py/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31376/source
Modified Files:
clmeth.cpp py.cpp pyargs.cpp
Log Message:
None returned by script will bang the output
fixes for atomic pyext._outlet messages
Index: clmeth.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/clmeth.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** clmeth.cpp 9 Jul 2005 13:03:34 -0000 1.22
--- clmeth.cpp 15 Jul 2005 16:13:43 -0000 1.23
***************
*** 168,180 ****
PyObject *val;
!
! bool tp =
! sz == 3 &&
! PySequence_Check(
! val = PyTuple_GET_ITEM(args,2) // borrow reference
! );
if(!tp)
! val = PySequence_GetSlice(args,2,sz); // new ref
int o = PyInt_AsLong(outl);
--- 168,191 ----
PyObject *val;
! bool tp;
! #if 0
! if(sz == 3) {
! val = PyTuple_GET_ITEM(args,2); // borrow reference
! Py_INCREF(val);
! tp = PySequence_Check(val);
! }
! else
! tp = false;
if(!tp)
! val = PySequence_GetSlice(args,2,sz); // new ref
! #else
! if(sz == 3) {
! val = PyTuple_GET_ITEM(args,2); // borrow reference
! Py_INCREF(val);
! }
! else
! val = PySequence_GetSlice(args,2,sz); // new ref
! #endif
int o = PyInt_AsLong(outl);
***************
*** 191,195 ****
PyErr_SetString(PyExc_ValueError,"pyext - _outlet: index out of range");
! if(!tp) Py_DECREF(val);
}
else
--- 202,206 ----
PyErr_SetString(PyExc_ValueError,"pyext - _outlet: index out of range");
! Py_DECREF(val);
}
else
Index: pyargs.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pyargs.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** pyargs.cpp 9 Jul 2005 13:03:34 -0000 1.17
--- pyargs.cpp 15 Jul 2005 16:13:43 -0000 1.18
***************
*** 131,134 ****
--- 131,137 ----
if(pValue == NULL) return false;
+ // output bang on None returned
+ if(pValue == Py_None) return sym_bang;
+
// analyze return value or tuple
***************
*** 136,140 ****
retval tp = nothing;
! if(PyString_Check(pValue)) {
rargc = 1;
tp = atom;
--- 139,143 ----
retval tp = nothing;
! if(PyString_Check(pValue) || pySymbol_Check(pValue)) {
rargc = 1;
tp = atom;
***************
*** 144,149 ****
tp = sequ;
}
! else if(pValue != Py_None) {
! rargc = 1;
tp = atom;
}
--- 147,152 ----
tp = sequ;
}
! else {
! rargc = 1;
tp = atom;
}
Index: py.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/py.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** py.cpp 9 Jul 2005 13:03:34 -0000 1.27
--- py.cpp 15 Jul 2005 16:13:43 -0000 1.28
***************
*** 126,130 ****
if(argc && CanbeInt(*argv)) {
inlets = GetAInt(*argv);
! if(inlets < 1) inlets = 1;
argv++,argc--;
}
--- 126,130 ----
if(argc && CanbeInt(*argv)) {
inlets = GetAInt(*argv);
! if(inlets < 0) inlets = 1;
argv++,argc--;
}
***************
*** 353,357 ****
}
else {
! if(ret != Py_None && !OutObject(this,0,ret) && PyErr_Occurred())
PyErr_Print();
Py_DECREF(ret);
--- 353,357 ----
}
else {
! if(!OutObject(this,0,ret) && PyErr_Occurred())
PyErr_Print();
Py_DECREF(ret);
***************
*** 385,389 ****
PyObject *pargs;
! if(objects) {
int inlets = CntIn()-1;
pargs = PyTuple_New(inlets);
--- 385,389 ----
PyObject *pargs;
! if(objects || CntIn() == 1) {
int inlets = CntIn()-1;
pargs = PyTuple_New(inlets);
More information about the Pd-cvs
mailing list