Update of /cvsroot/pywin32/pywin32/com/win32comext/adsi/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25252/com/win32comext/adsi/src
Modified Files:
PyIDsObjectPicker.i
Log Message:
Move PyWinObject_AsWCHARArray into pywintypes
Index: PyIDsObjectPicker.i
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/adsi/src/PyIDsObjectPicker.i,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PyIDsObjectPicker.i 3 May 2007 08:28:39 -0000 1.2
--- PyIDsObjectPicker.i 12 Aug 2007 08:26:27 -0000 1.3
***************
*** 13,62 ****
extern BOOL PyObject_AsDSOP_SCOPE_INIT_INFOs(PyObject *ob, DSOP_SCOPE_INIT_INFO**p, ULONG *n);
- static void PyWinObject_FreeWCHARArray(LPWSTR *wchars, DWORD str_cnt)
- {
- if (wchars!=NULL){
- for (DWORD wchar_index=0; wchar_index<str_cnt; wchar_index++)
- PyWinObject_FreeWCHAR(wchars[wchar_index]);
- free(wchars);
- }
- }
-
- static BOOL PyWinObject_AsWCHARArray(PyObject *str_seq, LPWSTR **wchars, DWORD *str_cnt, BOOL bNoneOK = FALSE)
- {
- if (bNoneOK && str_seq==Py_None) {
- *wchars = NULL;
- *str_cnt = 0;
- return TRUE;
- }
- BOOL ret=FALSE;
- PyObject *str_tuple=NULL, *tuple_item;
- DWORD bufsize, tuple_index;
- *wchars=NULL;
- *str_cnt=0;
- if ((str_tuple=PySequence_Tuple(str_seq))==NULL)
- return FALSE;
- *str_cnt=PyTuple_Size(str_tuple);
- bufsize=*str_cnt * sizeof(LPWSTR);
- *wchars=(LPWSTR *)malloc(bufsize);
- if (*wchars==NULL){
- PyErr_Format(PyExc_MemoryError, "Unable to allocate %d bytes", bufsize);
- goto done;
- }
- ZeroMemory(*wchars, bufsize);
- for (tuple_index=0;tuple_index<*str_cnt;tuple_index++){
- tuple_item=PyTuple_GET_ITEM(str_tuple, tuple_index);
- if (!PyWinObject_AsWCHAR(tuple_item, &((*wchars)[tuple_index]), FALSE)){
- PyWinObject_FreeWCHARArray(*wchars, *str_cnt);
- *wchars=NULL;
- *str_cnt=0;
- goto done;
- }
- }
- ret=TRUE;
- done:
- Py_XDECREF(str_tuple);
- return ret;
- }
-
#define SWIG_THIS_IID IID_IDsObjectPicker
--- 13,16 ----
|