summaryrefslogtreecommitdiff
path: root/lang_ext
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2009-08-31 21:43:11 -0700
committerJoshua Haberman <joshua@reverberate.org>2009-08-31 21:43:11 -0700
commit4b47002198f2c0404e16d2f02786845d6d3a0d3b (patch)
tree9c81020f12361ae64c4cc1087b6b814d8a17562c /lang_ext
parent1fe9414757834a53eb858bb52a719c6bcd2f961a (diff)
Update Python C extension for new upb_array API.
Diffstat (limited to 'lang_ext')
-rw-r--r--lang_ext/python/cext.c1
-rw-r--r--lang_ext/python/pb.c8
2 files changed, 5 insertions, 4 deletions
diff --git a/lang_ext/python/cext.c b/lang_ext/python/cext.c
index 5336f2d..c2199c4 100644
--- a/lang_ext/python/cext.c
+++ b/lang_ext/python/cext.c
@@ -11,6 +11,7 @@ PyMODINIT_FUNC
initcext(void)
{
PyObject *mod = Py_InitModule("upb.cext", NULL);
+ (void)mod;
initdefinition();
initpb();
}
diff --git a/lang_ext/python/pb.c b/lang_ext/python/pb.c
index 0f52bb8..634b397 100644
--- a/lang_ext/python/pb.c
+++ b/lang_ext/python/pb.c
@@ -316,7 +316,7 @@ PyObject* fieldop_call(PyObject *callable, PyObject *args, PyObject *kw)
PyErr_SetString(PyExc_IndexError, "assignment to invalid index");
return NULL;
}
- p = upb_array_getelementptr(*p.arr, i, f->type);
+ p = upb_array_getelementptr(*p.arr, i);
} else {
/* obj.set_foo(val) */
if(!PyArg_ParseTuple(args, "O", &val)) return NULL;
@@ -357,8 +357,8 @@ PyObject* fieldop_call(PyObject *callable, PyObject *args, PyObject *kw)
}
upb_arraylen_t len = (*p.arr)->len;
- union upb_value_ptr elem_p = upb_array_getelementptr(*p.arr, len, f->type);
- upb_array_resize(*p.arr, len + 1);
+ union upb_value_ptr elem_p = upb_array_getelementptr(*p.arr, len);
+ upb_array_append(*p.arr);
if(upb_issubmsg(f)) {
/* string or submsg. */
@@ -386,7 +386,7 @@ PyObject* fieldop_call(PyObject *callable, PyObject *args, PyObject *kw)
PyErr_SetString(PyExc_IndexError, "get from invalid index");
return NULL;
}
- p = upb_array_getelementptr(*p.arr, i, f->type);
+ p = upb_array_getelementptr(*p.arr, i);
} else {
/* obj.foo() */
EXPECT_NO_ARGS;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback