~ubuntu-branches/ubuntu/karmic/python3.0/karmic

« back to all changes in this revision

Viewing changes to Objects/dictobject.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-02-16 17:18:23 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090216171823-1d5cm5qnnjvmnzzm
Tags: 3.0.1-0ubuntu1
New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2032
2032
        0,                                      /* tp_print */
2033
2033
        0,                                      /* tp_getattr */
2034
2034
        0,                                      /* tp_setattr */
2035
 
        0,                                      /* tp_compare */
 
2035
        0,                                      /* tp_reserved */
2036
2036
        (reprfunc)dict_repr,                    /* tp_repr */
2037
2037
        0,                                      /* tp_as_number */
2038
2038
        &dict_as_sequence,                      /* tp_as_sequence */
2122
2122
dictiter_new(PyDictObject *dict, PyTypeObject *itertype)
2123
2123
{
2124
2124
        dictiterobject *di;
2125
 
        di = PyObject_New(dictiterobject, itertype);
 
2125
        di = PyObject_GC_New(dictiterobject, itertype);
2126
2126
        if (di == NULL)
2127
2127
                return NULL;
2128
2128
        Py_INCREF(dict);
2139
2139
        }
2140
2140
        else
2141
2141
                di->di_result = NULL;
 
2142
        _PyObject_GC_TRACK(di);
2142
2143
        return (PyObject *)di;
2143
2144
}
2144
2145
 
2147
2148
{
2148
2149
        Py_XDECREF(di->di_dict);
2149
2150
        Py_XDECREF(di->di_result);
2150
 
        PyObject_Del(di);
 
2151
        PyObject_GC_Del(di);
 
2152
}
 
2153
 
 
2154
static int
 
2155
dictiter_traverse(dictiterobject *di, visitproc visit, void *arg)
 
2156
{
 
2157
        Py_VISIT(di->di_dict);
 
2158
        Py_VISIT(di->di_result);
 
2159
        return 0;
2151
2160
}
2152
2161
 
2153
2162
static PyObject *
2217
2226
        0,                                      /* tp_print */
2218
2227
        0,                                      /* tp_getattr */
2219
2228
        0,                                      /* tp_setattr */
2220
 
        0,                                      /* tp_compare */
 
2229
        0,                                      /* tp_reserved */
2221
2230
        0,                                      /* tp_repr */
2222
2231
        0,                                      /* tp_as_number */
2223
2232
        0,                                      /* tp_as_sequence */
2228
2237
        PyObject_GenericGetAttr,                /* tp_getattro */
2229
2238
        0,                                      /* tp_setattro */
2230
2239
        0,                                      /* tp_as_buffer */
2231
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2240
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2232
2241
        0,                                      /* tp_doc */
2233
 
        0,                                      /* tp_traverse */
 
2242
        (traverseproc)dictiter_traverse,        /* tp_traverse */
2234
2243
        0,                                      /* tp_clear */
2235
2244
        0,                                      /* tp_richcompare */
2236
2245
        0,                                      /* tp_weaklistoffset */
2289
2298
        0,                                      /* tp_print */
2290
2299
        0,                                      /* tp_getattr */
2291
2300
        0,                                      /* tp_setattr */
2292
 
        0,                                      /* tp_compare */
 
2301
        0,                                      /* tp_reserved */
2293
2302
        0,                                      /* tp_repr */
2294
2303
        0,                                      /* tp_as_number */
2295
2304
        0,                                      /* tp_as_sequence */
2300
2309
        PyObject_GenericGetAttr,                /* tp_getattro */
2301
2310
        0,                                      /* tp_setattro */
2302
2311
        0,                                      /* tp_as_buffer */
2303
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2312
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2304
2313
        0,                                      /* tp_doc */
2305
 
        0,                                      /* tp_traverse */
 
2314
        (traverseproc)dictiter_traverse,        /* tp_traverse */
2306
2315
        0,                                      /* tp_clear */
2307
2316
        0,                                      /* tp_richcompare */
2308
2317
        0,                                      /* tp_weaklistoffset */
2375
2384
        0,                                      /* tp_print */
2376
2385
        0,                                      /* tp_getattr */
2377
2386
        0,                                      /* tp_setattr */
2378
 
        0,                                      /* tp_compare */
 
2387
        0,                                      /* tp_reserved */
2379
2388
        0,                                      /* tp_repr */
2380
2389
        0,                                      /* tp_as_number */
2381
2390
        0,                                      /* tp_as_sequence */
2386
2395
        PyObject_GenericGetAttr,                /* tp_getattro */
2387
2396
        0,                                      /* tp_setattro */
2388
2397
        0,                                      /* tp_as_buffer */
2389
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2398
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2390
2399
        0,                                      /* tp_doc */
2391
 
        0,                                      /* tp_traverse */
 
2400
        (traverseproc)dictiter_traverse,        /* tp_traverse */
2392
2401
        0,                                      /* tp_clear */
2393
2402
        0,                                      /* tp_richcompare */
2394
2403
        0,                                      /* tp_weaklistoffset */
2415
2424
dictview_dealloc(dictviewobject *dv)
2416
2425
{
2417
2426
        Py_XDECREF(dv->dv_dict);
2418
 
        PyObject_Del(dv);
 
2427
        PyObject_GC_Del(dv);
 
2428
}
 
2429
 
 
2430
static int
 
2431
dictview_traverse(dictviewobject *dv, visitproc visit, void *arg)
 
2432
{
 
2433
        Py_VISIT(dv->dv_dict);
 
2434
        return 0;
2419
2435
}
2420
2436
 
2421
2437
static Py_ssize_t
2442
2458
                             type->tp_name, dict->ob_type->tp_name);
2443
2459
                return NULL;
2444
2460
        }
2445
 
        dv = PyObject_New(dictviewobject, type);
 
2461
        dv = PyObject_GC_New(dictviewobject, type);
2446
2462
        if (dv == NULL)
2447
2463
                return NULL;
2448
2464
        Py_INCREF(dict);
2449
2465
        dv->dv_dict = (PyDictObject *)dict;
 
2466
        _PyObject_GC_TRACK(dv);
2450
2467
        return (PyObject *)dv;
2451
2468
}
2452
2469
 
2682
2699
        0,                                      /* tp_print */
2683
2700
        0,                                      /* tp_getattr */
2684
2701
        0,                                      /* tp_setattr */
2685
 
        0,                                      /* tp_compare */
 
2702
        0,                                      /* tp_reserved */
2686
2703
        0,                                      /* tp_repr */
2687
2704
        &dictviews_as_number,                   /* tp_as_number */
2688
2705
        &dictkeys_as_sequence,                  /* tp_as_sequence */
2693
2710
        PyObject_GenericGetAttr,                /* tp_getattro */
2694
2711
        0,                                      /* tp_setattro */
2695
2712
        0,                                      /* tp_as_buffer */
2696
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2713
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2697
2714
        0,                                      /* tp_doc */
2698
 
        0,                                      /* tp_traverse */
 
2715
        (traverseproc)dictview_traverse,        /* tp_traverse */
2699
2716
        0,                                      /* tp_clear */
2700
2717
        dictview_richcompare,                   /* tp_richcompare */
2701
2718
        0,                                      /* tp_weaklistoffset */
2766
2783
        0,                                      /* tp_print */
2767
2784
        0,                                      /* tp_getattr */
2768
2785
        0,                                      /* tp_setattr */
2769
 
        0,                                      /* tp_compare */
 
2786
        0,                                      /* tp_reserved */
2770
2787
        0,                                      /* tp_repr */
2771
2788
        &dictviews_as_number,                   /* tp_as_number */
2772
2789
        &dictitems_as_sequence,                 /* tp_as_sequence */
2777
2794
        PyObject_GenericGetAttr,                /* tp_getattro */
2778
2795
        0,                                      /* tp_setattro */
2779
2796
        0,                                      /* tp_as_buffer */
2780
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2797
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2781
2798
        0,                                      /* tp_doc */
2782
 
        0,                                      /* tp_traverse */
 
2799
        (traverseproc)dictview_traverse,        /* tp_traverse */
2783
2800
        0,                                      /* tp_clear */
2784
2801
        dictview_richcompare,                   /* tp_richcompare */
2785
2802
        0,                                      /* tp_weaklistoffset */
2831
2848
        0,                                      /* tp_print */
2832
2849
        0,                                      /* tp_getattr */
2833
2850
        0,                                      /* tp_setattr */
2834
 
        0,                                      /* tp_compare */
 
2851
        0,                                      /* tp_reserved */
2835
2852
        0,                                      /* tp_repr */
2836
2853
        0,                                      /* tp_as_number */
2837
2854
        &dictvalues_as_sequence,                /* tp_as_sequence */
2842
2859
        PyObject_GenericGetAttr,                /* tp_getattro */
2843
2860
        0,                                      /* tp_setattro */
2844
2861
        0,                                      /* tp_as_buffer */
2845
 
        Py_TPFLAGS_DEFAULT,                     /* tp_flags */
 
2862
        Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
2846
2863
        0,                                      /* tp_doc */
2847
 
        0,                                      /* tp_traverse */
 
2864
        (traverseproc)dictview_traverse,        /* tp_traverse */
2848
2865
        0,                                      /* tp_clear */
2849
2866
        0,                                      /* tp_richcompare */
2850
2867
        0,                                      /* tp_weaklistoffset */