[Python-checkins] python/dist/src/Modules xxmodule.c,2.34,2.35

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Thu, 13 Feb 2003 10:45:00 -0800


Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv20447

Modified Files:
	xxmodule.c 
Log Message:
Another dummy type.

Curious: Str didn't need me to put something in tp_new, but Null did.
Why the difference?


Index: xxmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/xxmodule.c,v
retrieving revision 2.34
retrieving revision 2.35
diff -C2 -d -r2.34 -r2.35
*** xxmodule.c	11 Feb 2003 21:19:11 -0000	2.34
--- xxmodule.c	13 Feb 2003 18:44:57 -0000	2.35
***************
*** 261,264 ****
--- 261,320 ----
  };
  
+ /* ---------- */
+ 
+ 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*/
+ };
+ 
  
  /* ---------- */
***************
*** 311,313 ****
--- 367,374 ----
  		return;
  	PyModule_AddObject(m, "Str", (PyObject *)&Str_Type);
+ 
+ 	/* Add Null */
+ 	if (PyType_Ready(&Null_Type) < 0)
+ 		return;
+ 	PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
  }