static int proxy_ass_slice(PyWeakReference *proxy, int i, int j, PyObject *value) { if (!proxy_checkref(proxy)) return -1; return PySequence_SetSlice(PyWeakref_GET_OBJECT(proxy), i, j, value); }
static PyObject *t_sequence_insert(t_sequence *self, PyObject *args) { PyObject *value, *values; int index, setDirty = 1; if (!PyArg_ParseTuple(args, "iO|i", &index, &value, &setDirty)) return NULL; if (self->itemvalue.flags & V_PURE) values = PyTuple_Pack(1, value); else { value = _prepareValue(self, value); if (!value) return NULL; values = PyTuple_Pack(1, value); Py_DECREF(value); } if (PySequence_SetSlice(self->sequence, index, index, values) < 0) { Py_DECREF(values); return NULL; } Py_DECREF(values); if (setDirty && _t_itemvalue__setDirty((t_itemvalue *) self, 0) < 0) return NULL; Py_RETURN_NONE; }
static int wrap_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value) { PyObject *obj = Proxy_GET_OBJECT(self); if (PyList_Check(obj)) { return PyList_SetSlice(obj, i, j, value); } else { return PySequence_SetSlice(obj, i, j, value); } }
static int assign_slice(PyObject *u, PyObject *v, PyObject *w, PyObject *x) /* u[v:w] = x */ { int ilow = 0, ihigh = 1<<31; if (!_PyEval_SliceIndex(v, &ilow)) return -1; if (!_PyEval_SliceIndex(w, &ihigh)) return -1; // if (x == NULL) // return PySequence_DelSlice(u, ilow, ihigh); // else return PySequence_SetSlice(u, ilow, ihigh, x); }
static int t_sequence_seq_setslice(t_sequence *self, Py_ssize_t low, Py_ssize_t high, PyObject *values) { int result; if (values == NULL) result = PySequence_DelSlice(self->sequence, low, high); else if (self->itemvalue.flags & V_PURE) result = PySequence_SetSlice(self->sequence, low, high, values); else { values = _prepareValues((t_itemvalue *) self, values); if (!values) return -1; result = PySequence_SetSlice(self->sequence, low, high, values); Py_DECREF(values); } if (result >= 0) result = _t_itemvalue__setDirty((t_itemvalue *) self, 0); return result; }
static int __pyx_f_11inplace_lhs_f(void) { int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; float __pyx_v_x; float __pyx_v_y; float __pyx_v_z; PyObject *__pyx_v_a; PyObject *__pyx_v_b; PyObject *__pyx_v_c; PyObject *__pyx_v_d; int __pyx_v_m[3]; struct __pyx_t_11inplace_lhs_S __pyx_v_s; int __pyx_r; PyObject *__pyx_1 = 0; PyObject *__pyx_2 = 0; PyObject *__pyx_3 = 0; __pyx_v_a = Py_None; Py_INCREF(Py_None); __pyx_v_b = Py_None; Py_INCREF(Py_None); __pyx_v_c = Py_None; Py_INCREF(Py_None); __pyx_v_d = Py_None; Py_INCREF(Py_None); /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":11 */ __pyx_v_i += (__pyx_v_j + __pyx_v_k); /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":12 */ __pyx_v_x += (__pyx_v_y + __pyx_v_z); /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":13 */ __pyx_v_x += __pyx_v_i; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":14 */ __pyx_1 = PyNumber_Add(__pyx_v_b, __pyx_v_c); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; goto __pyx_L1;} __pyx_2 = PyNumber_InPlaceAdd(__pyx_v_a, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; Py_DECREF(__pyx_v_a); __pyx_v_a = __pyx_2; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":15 */ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_g); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; goto __pyx_L1;} __pyx_2 = PyNumber_InPlaceAdd(__pyx_1, __pyx_v_a); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_n_g, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":16 */ (__pyx_v_m[__pyx_v_i]) += __pyx_v_j; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":17 */ __pyx_1 = PyNumber_Add(__pyx_v_b, __pyx_v_c); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;} __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;} __pyx_3 = PyObject_GetItem(__pyx_v_a, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;} __pyx_3 = PyNumber_InPlaceAdd(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; Py_DECREF(__pyx_1); __pyx_1 = 0; if (PyObject_SetItem(__pyx_v_a, __pyx_2, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; Py_DECREF(__pyx_2); __pyx_2 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":18 */ __pyx_2 = PyNumber_Add(__pyx_v_b, __pyx_v_c); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;} __pyx_1 = PyObject_GetItem(__pyx_v_a, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;} __pyx_3 = PyNumber_InPlaceAdd(__pyx_1, __pyx_v_d); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; if (PyObject_SetItem(__pyx_v_a, __pyx_2, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; Py_DECREF(__pyx_2); __pyx_2 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":19 */ __pyx_1 = PyNumber_Add(__pyx_v_a, __pyx_v_b); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; goto __pyx_L1;} __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_v_c); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; goto __pyx_L1;} __pyx_2 = PyNumber_InPlaceAdd(__pyx_3, __pyx_v_d); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; if (PyObject_SetItem(__pyx_1, __pyx_v_c, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; Py_DECREF(__pyx_1); __pyx_1 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":20 */ __pyx_3 = PySequence_GetSlice(__pyx_v_a, __pyx_v_i, __pyx_v_j); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;} __pyx_2 = PyNumber_InPlaceAdd(__pyx_3, __pyx_v_b); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; if (PySequence_SetSlice(__pyx_v_a, __pyx_v_i, __pyx_v_j, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":21 */ __pyx_1 = PyNumber_Add(__pyx_v_a, __pyx_v_b); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;} __pyx_3 = PySequence_GetSlice(__pyx_1, __pyx_v_i, __pyx_v_j); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;} __pyx_2 = PyNumber_InPlaceAdd(__pyx_3, __pyx_v_c); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; if (PySequence_SetSlice(__pyx_1, __pyx_v_i, __pyx_v_j, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; Py_DECREF(__pyx_1); __pyx_1 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":22 */ __pyx_3 = PyNumber_Add(__pyx_v_c, __pyx_v_d); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;} __pyx_2 = PyObject_GetAttr(__pyx_v_a, __pyx_n_b); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;} __pyx_1 = PyNumber_InPlaceAdd(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;} Py_DECREF(__pyx_2); __pyx_2 = 0; Py_DECREF(__pyx_3); __pyx_3 = 0; if (PyObject_SetAttr(__pyx_v_a, __pyx_n_b, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":23 */ __pyx_2 = PyNumber_Add(__pyx_v_a, __pyx_v_b); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;} __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_c); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;} __pyx_1 = PyNumber_InPlaceAdd(__pyx_3, __pyx_v_d); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;} Py_DECREF(__pyx_3); __pyx_3 = 0; if (PyObject_SetAttr(__pyx_2, __pyx_n_c, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; Py_DECREF(__pyx_2); __pyx_2 = 0; /* "/Local/Projects/D/Pyrex/Source/Tests/10/inplace_lhs.pyx":24 */ __pyx_v_s.q += __pyx_v_i; __pyx_r = 0; goto __pyx_L0; __pyx_L1:; Py_XDECREF(__pyx_1); Py_XDECREF(__pyx_2); Py_XDECREF(__pyx_3); Py_XDECREF(__pyx_4); __Pyx_AddTraceback("inplace_lhs.f"); __pyx_r = (-1); __pyx_L0:; Py_DECREF(__pyx_v_a); Py_DECREF(__pyx_v_b); Py_DECREF(__pyx_v_c); Py_DECREF(__pyx_v_d); return __pyx_r; }
void Sequence::setSlice(int start, int stop, const Sequence &seq) { PySequence_SetSlice(mPtr, start, stop, seq.borrowReference()); PW_PyExcept_Check("Sequence::setSlice"); }
static int wrap_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value) { return PySequence_SetSlice(Proxy_GET_OBJECT(self), i, j, value); }