Easier access to sequences of strings, not just lists.
authorBert Vermeulen <bert@biot.com>
Wed, 11 Dec 2013 22:41:02 +0000 (23:41 +0100)
committerBert Vermeulen <bert@biot.com>
Wed, 11 Dec 2013 22:41:02 +0000 (23:41 +0100)
decoder.c
libsigrokdecode-internal.h
type_decoder.c
util.c

index 1b0ed2abdd89cdcccc14950c92a4b5a6b056703b..858b56ad2233c0fe76e0a40248873eee1d188e3d 100644 (file)
--- a/decoder.c
+++ b/decoder.c
@@ -395,7 +395,7 @@ SRD_API int srd_decoder_load(const char *module_name)
                                goto err_out;
                        }
 
                                goto err_out;
                        }
 
-                       if (py_strlist_to_char(py_ann, &ann) != SRD_OK) {
+                       if (py_strseq_to_char(py_ann, &ann) != SRD_OK) {
                                goto err_out;
                        }
                        d->annotations = g_slist_append(d->annotations, ann);
                                goto err_out;
                        }
                        d->annotations = g_slist_append(d->annotations, ann);
index aa626cae12744dde2e2987c86d9ac8945086c2dc..898ba045ac741bdfd381c9325438ab167ebcf601 100644 (file)
@@ -68,7 +68,7 @@ SRD_PRIV int py_attr_as_str(const PyObject *py_obj, const char *attr,
 SRD_PRIV int py_dictitem_as_str(const PyObject *py_obj, const char *key,
         char **outstr);
 SRD_PRIV int py_str_as_str(const PyObject *py_str, char **outstr);
 SRD_PRIV int py_dictitem_as_str(const PyObject *py_obj, const char *key,
         char **outstr);
 SRD_PRIV int py_str_as_str(const PyObject *py_str, char **outstr);
-SRD_PRIV int py_strlist_to_char(const PyObject *py_strlist, char ***outstr);
+SRD_PRIV int py_strseq_to_char(const PyObject *py_strseq, char ***outstr);
 
 /* exception.c */
 SRD_PRIV void srd_exception_catch(const char *format, ...);
 
 /* exception.c */
 SRD_PRIV void srd_exception_catch(const char *format, ...);
index 38fa1ae836d3bc5696327f4695f7507987b936f8..6140fd0b21e63112b54259fcb56a6bf3dc618b4e 100644 (file)
@@ -78,7 +78,7 @@ static int convert_annotation(struct srd_decoder_inst *di, PyObject *obj,
                        "second element was not a list.", di->decoder->name);
                return SRD_ERR_PYTHON;
        }
                        "second element was not a list.", di->decoder->name);
                return SRD_ERR_PYTHON;
        }
-       if (py_strlist_to_char(py_tmp, &ann_text) != SRD_OK) {
+       if (py_strseq_to_char(py_tmp, &ann_text) != SRD_OK) {
                srd_err("Protocol decoder %s submitted annotation list, but "
                        "second element was malformed.", di->decoder->name);
                return SRD_ERR_PYTHON;
                srd_err("Protocol decoder %s submitted annotation list, but "
                        "second element was malformed.", di->decoder->name);
                return SRD_ERR_PYTHON;
diff --git a/util.c b/util.c
index 74d56c39aff6bda94e9f2ca228586b97b055a5af..1efaa843a603988bece2f59a9680ef06d71c08c8 100644 (file)
--- a/util.c
+++ b/util.c
@@ -174,20 +174,20 @@ err_out:
  *
  * @private
  */
  *
  * @private
  */
-SRD_PRIV int py_strlist_to_char(const PyObject *py_strlist, char ***outstr)
+SRD_PRIV int py_strseq_to_char(const PyObject *py_strseq, char ***outstr)
 {
        PyObject *py_str;
        int list_len, i;
        char **out, *str;
 
 {
        PyObject *py_str;
        int list_len, i;
        char **out, *str;
 
-       list_len = PyList_Size((PyObject *)py_strlist);
+       list_len = PySequence_Size((PyObject *)py_strseq);
        if (!(out = g_try_malloc(sizeof(char *) * (list_len + 1)))) {
                srd_err("Failed to g_malloc() 'out'.");
                return SRD_ERR_MALLOC;
        }
        for (i = 0; i < list_len; i++) {
                if (!(py_str = PyUnicode_AsEncodedString(
        if (!(out = g_try_malloc(sizeof(char *) * (list_len + 1)))) {
                srd_err("Failed to g_malloc() 'out'.");
                return SRD_ERR_MALLOC;
        }
        for (i = 0; i < list_len; i++) {
                if (!(py_str = PyUnicode_AsEncodedString(
-                   PyList_GetItem((PyObject *)py_strlist, i), "utf-8", NULL)))
+                   PySequence_GetItem((PyObject *)py_strseq, i), "utf-8", NULL)))
                        return SRD_ERR_PYTHON;
                if (!(str = PyBytes_AS_STRING(py_str)))
                        return SRD_ERR_PYTHON;
                        return SRD_ERR_PYTHON;
                if (!(str = PyBytes_AS_STRING(py_str)))
                        return SRD_ERR_PYTHON;