[Python-checkins] CVS: python/dist/src/PC _winreg.c,1.7,1.8
Mark Hammond
python-dev@python.org
Thu, 27 Jul 2000 20:44:43 -0700
Update of /cvsroot/python/python/dist/src/PC
In directory slayer.i.sourceforge.net:/tmp/cvs-serv12325
Modified Files:
_winreg.c
Log Message:
Allow any object supporting the buffer protocol to be written as a binary object.
Index: _winreg.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/PC/_winreg.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** _winreg.c 2000/07/16 12:04:32 1.7
--- _winreg.c 2000/07/28 03:44:41 1.8
***************
*** 831,837 ****
*retDataSize = 0;
else {
! if (!PyString_Check(value))
! return 0;
! *retDataSize = PyString_Size(value);
*retDataBuf = (BYTE *)PyMem_NEW(char,
*retDataSize);
--- 831,844 ----
*retDataSize = 0;
else {
! void *src_buf;
! PyBufferProcs *pb = value->ob_type->tp_as_buffer;
! if (pb==NULL) {
! PyErr_Format(PyExc_TypeError,
! "Objects of type '%s' can not "
! "be used as binary registry values",
! value->ob_type->tp_name);
! return FALSE;
! }
! *retDataSize = (*pb->bf_getreadbuffer)(value, 0, &src_buf);
*retDataBuf = (BYTE *)PyMem_NEW(char,
*retDataSize);
***************
*** 840,847 ****
return FALSE;
}
! memcpy(*retDataBuf,
! PyString_AS_STRING(
! (PyStringObject *)value),
! *retDataSize);
}
break;
--- 847,851 ----
return FALSE;
}
! memcpy(*retDataBuf, src_buf, *retDataSize);
}
break;