Revert "TODO pyrpc_string_array_{from,to}_PyList()"
authorStefan Metzmacher <metze@samba.org>
Fri, 10 Mar 2017 16:46:17 +0000 (17:46 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 18 Feb 2019 11:47:34 +0000 (12:47 +0100)
This reverts commit 27ec6e04894422e9988674985f8055bb9c7a6764.

pidl/lib/Parse/Pidl/Samba4/Python.pm
source4/librpc/rpc/pyrpc_util.c
source4/librpc/rpc/pyrpc_util.h

index 6741320fdddf7ac14605628b6e690c8439968333..efa80d7cdd1457a2e98b81907cec5a70a335347b 100644 (file)
@@ -1865,7 +1865,7 @@ sub ConvertObjectFromPythonData($$$$$$;$$)
        }
 
        if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "string_array") {
-               $self->pidl("$target = pyrpc_string_array_from_PyList($mem_ctx, $cvar, \"$target\");");
+               $self->pidl("$target = pytalloc_get_ptr($cvar);");
                return;
        }
 
@@ -2074,7 +2074,7 @@ sub ConvertScalarToPython($$$$)
 
        # Not yet supported
        if ($ctypename eq "string_array") {
-               return "pyrpc_string_array_to_PyList($cvar)";
+               return "pytalloc_GenericObject_reference_ex($mem_ctx, $cvar)";
        }
        if ($ctypename eq "ipv4address") { return "PyString_FromStringOrNULL($cvar)"; }
        if ($ctypename eq "ipv6address") { return "PyString_FromStringOrNULL($cvar)"; }
index 82d601c5fdc2fd0def3c3061c59083524ba061f7..8d5ec45817fd6357728ae88d55f94c4ceec8d3a8 100644 (file)
@@ -424,58 +424,6 @@ PyObject *PyString_FromStringOrNULL(const char *str)
        return PyStr_FromString(str);
 }
 
-const char **pyrpc_string_array_from_PyList(TALLOC_CTX *mem_ctx, PyObject *list,
-                                           const char *debug_name)
-{
-       const char **ret = NULL;
-       Py_ssize_t i;
-
-       if (!PyList_Check(list)) {
-               PyErr_Format(PyExc_TypeError, "%s is not a list", debug_name);
-               return NULL;
-       }
-
-       ret = talloc_array(NULL, const char *, PyList_Size(list)+1);
-       if (ret == NULL) {
-               PyErr_NoMemory();
-               return NULL;
-       }
-
-       for (i = 0; i < PyList_Size(list); i++) {
-               const char *str = NULL;
-               Py_ssize_t size;
-               PyObject *item = PyList_GetItem(list, i);
-               if (!PyStr_Check(item)) {
-                       PyErr_Format(PyExc_TypeError, "%s should be strings",
-                                    debug_name);
-                       talloc_free(ret);
-                       return NULL;
-               }
-               str = PyStr_AsUTF8AndSize(item, &size);
-               if (str == NULL) {
-                       talloc_free(ret);
-                       return NULL;
-               }
-               ret[i] = talloc_strndup(ret, str, size);
-               if (ret[i] == NULL) {
-                       talloc_free(ret);
-                       PyErr_NoMemory();
-                       return NULL;
-               }
-       }
-
-       ret[i] = NULL;
-       return ret;
-}
-
-PyObject *pyrpc_string_array_to_PyList(const char **string_array)
-{
-       /*
-        * TODO
-        */
-       Py_RETURN_NONE;
-}
-
 PyObject *pyrpc_import_union(PyTypeObject *type, TALLOC_CTX *mem_ctx, int level,
                             const void *in, const char *typename)
 {
index 6464b5195684a1ac19c045701784b1c143876f8f..5a5f14de285d0e90b18a5865572d9c79f932e90e 100644 (file)
@@ -59,10 +59,6 @@ PyObject *py_return_ndr_struct(const char *module_name, const char *type_name,
 
 PyObject *PyString_FromStringOrNULL(const char *str);
 
-const char **pyrpc_string_array_from_PyList(TALLOC_CTX *mem_ctx, PyObject *list,
-                                           const char *debug_name);
-PyObject *pyrpc_string_array_to_PyList(const char **string_array);
-
 PyObject *pyrpc_import_union(PyTypeObject *type, TALLOC_CTX *mem_ctx, int level,
                             const void *in, const char *typename);
 void *pyrpc_export_union(PyTypeObject *type, TALLOC_CTX *mem_ctx, int level,