]> granicus.if.org Git - python/commitdiff
Another dummy type.
authorGuido van Rossum <guido@python.org>
Thu, 13 Feb 2003 18:44:57 +0000 (18:44 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 13 Feb 2003 18:44:57 +0000 (18:44 +0000)
Curious: Str didn't need me to put something in tp_new, but Null did.
Why the difference?

Modules/xxmodule.c

index c312d2ef35cae46f5ec0b36377000bb8d42eedef..5f75b6cf8f9de6d6064b67f4ac9fd5ff8d10ffd0 100644 (file)
@@ -260,6 +260,62 @@ static PyTypeObject Str_Type = {
        0,                      /*tp_is_gc*/
 };
 
+/* ---------- */
+
+static PyObject *
+null_richcompare(PyObject *self, PyObject *other, int op)
+{
+       Py_INCREF(Py_NotImplemented);
+       return Py_NotImplemented;
+}
+
+static PyTypeObject Null_Type = {
+       /* The ob_type field must be initialized in the module init function
+        * to be portable to Windows without using C++. */
+       PyObject_HEAD_INIT(NULL)
+       0,                      /*ob_size*/
+       "xxmodule.Null",        /*tp_name*/
+       0,                      /*tp_basicsize*/
+       0,                      /*tp_itemsize*/
+       /* methods */
+       0,                      /*tp_dealloc*/
+       0,                      /*tp_print*/
+       0,                      /*tp_getattr*/
+       0,                      /*tp_setattr*/
+       0,                      /*tp_compare*/
+       0,                      /*tp_repr*/
+       0,                      /*tp_as_number*/
+       0,                      /*tp_as_sequence*/
+       0,                      /*tp_as_mapping*/
+       0,                      /*tp_hash*/
+       0,                      /*tp_call*/
+       0,                      /*tp_str*/
+       0,                      /*tp_getattro*/
+       0,                      /*tp_setattro*/
+       0,                      /*tp_as_buffer*/
+       Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+       0,                      /*tp_doc*/
+       0,                      /*tp_traverse*/
+       0,                      /*tp_clear*/
+       null_richcompare,       /*tp_richcompare*/
+       0,                      /*tp_weaklistoffset*/
+       0,                      /*tp_iter*/
+       0,                      /*tp_iternext*/
+       0,                      /*tp_methods*/
+       0,                      /*tp_members*/
+       0,                      /*tp_getset*/
+       &PyBaseObject_Type,     /*tp_base*/
+       0,                      /*tp_dict*/
+       0,                      /*tp_descr_get*/
+       0,                      /*tp_descr_set*/
+       0,                      /*tp_dictoffset*/
+       0,                      /*tp_init*/
+       0,                      /*tp_alloc*/
+       PyType_GenericNew,      /*tp_new*/
+       0,                      /*tp_free*/
+       0,                      /*tp_is_gc*/
+};
+
 
 /* ---------- */
 
@@ -310,4 +366,9 @@ initxx(void)
        if (PyType_Ready(&Str_Type) < 0)
                return;
        PyModule_AddObject(m, "Str", (PyObject *)&Str_Type);
+
+       /* Add Null */
+       if (PyType_Ready(&Null_Type) < 0)
+               return;
+       PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
 }