~ubuntu-branches/ubuntu/lucid/python2.6/lucid

« back to all changes in this revision

Viewing changes to Modules/_collectionsmodule.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2010-03-11 13:30:19 UTC
  • mto: (10.1.13 sid)
  • mto: This revision was merged to the branch mainline in revision 44.
  • Revision ID: james.westby@ubuntu.com-20100311133019-sblbooa3uqrkoe70
Tags: upstream-2.6.5~rc2
ImportĀ upstreamĀ versionĀ 2.6.5~rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
281
281
{
282
282
        PyObject *it, *item;
283
283
 
 
284
        /* Handle case where id(deque) == id(iterable) */
 
285
        if ((PyObject *)deque == iterable) {
 
286
                PyObject *result;
 
287
                PyObject *s = PySequence_List(iterable);
 
288
                if (s == NULL)
 
289
                        return NULL;
 
290
                result = deque_extend(deque, s);
 
291
                Py_DECREF(s);
 
292
                return result;
 
293
        }
 
294
 
284
295
        it = PyObject_GetIter(iterable);
285
296
        if (it == NULL)
286
297
                return NULL;
319
330
{
320
331
        PyObject *it, *item;
321
332
 
 
333
        /* Handle case where id(deque) == id(iterable) */
 
334
        if ((PyObject *)deque == iterable) {
 
335
                PyObject *result;
 
336
                PyObject *s = PySequence_List(iterable);
 
337
                if (s == NULL)
 
338
                        return NULL;
 
339
                result = deque_extendleft(deque, s);
 
340
                Py_DECREF(s);
 
341
                return result;
 
342
        }
 
343
 
322
344
        it = PyObject_GetIter(iterable);
323
345
        if (it == NULL)
324
346
                return NULL;
352
374
PyDoc_STRVAR(extendleft_doc,
353
375
"Extend the left side of the deque with elements from the iterable");
354
376
 
 
377
static PyObject *
 
378
deque_inplace_concat(dequeobject *deque, PyObject *other)
 
379
{
 
380
        PyObject *result;
 
381
 
 
382
        result = deque_extend(deque, other);
 
383
        if (result == NULL)
 
384
                return result;
 
385
        Py_DECREF(result);
 
386
        Py_INCREF(deque);
 
387
        return (PyObject *)deque;
 
388
}
 
389
 
355
390
static int
356
391
_deque_rotate(dequeobject *deque, Py_ssize_t n)
357
392
{
854
889
        (ssizeargfunc)deque_item,       /* sq_item */
855
890
        0,                              /* sq_slice */
856
891
        (ssizeobjargproc)deque_ass_item,        /* sq_ass_item */
 
892
        0,                              /* sq_ass_slice */
 
893
        0,                              /* sq_contains */
 
894
        (binaryfunc)deque_inplace_concat,       /* sq_inplace_concat */
 
895
        0,                              /* sq_inplace_repeat */
 
896
 
857
897
};
858
898
 
859
899
/* deque object ********************************************************/