Mercurial > cpython-lru_cache-weakref
diff Objects/methodobject.c @ 2059:866c81068dbd legacy-trunk
Added 1995 to copyright message.
floatobject.c: fix hash().
methodobject.c: support METH_FREENAME flag bit.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 04 Jan 1995 19:07:38 +0000 |
| parents | de49d49044d7 |
| children | f2d267edbfd6 |
line wrap: on
line diff
--- a/Objects/methodobject.c Wed Jan 04 19:06:22 1995 +0000 +++ b/Objects/methodobject.c Wed Jan 04 19:07:38 1995 +0000 @@ -1,6 +1,6 @@ /*********************************************************** -Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum, -Amsterdam, The Netherlands. +Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, +The Netherlands. All Rights Reserved @@ -33,15 +33,15 @@ char *m_name; method m_meth; object *m_self; - int m_varargs; + int m_flags; } methodobject; object * -newmethodobject(name, meth, self, varargs) - char *name; /* static string */ +newmethodobject(name, meth, self, flags) + char *name; method meth; object *self; - int varargs; + int flags; { methodobject *op = NEWOBJ(methodobject, &Methodtype); if (op != NULL) { @@ -50,7 +50,7 @@ if (self != NULL) INCREF(self); op->m_self = self; - op->m_varargs = varargs; + op->m_flags = flags; } return (object *)op; } @@ -85,7 +85,7 @@ err_badcall(); return -1; } - return ((methodobject *)op) -> m_varargs; + return ((methodobject *)op) -> m_flags & METH_VARARGS; } /* Methods (the standard built-in methods, that is) */ @@ -96,6 +96,8 @@ { if (m->m_self != NULL) DECREF(m->m_self); + if (m->m_flags & METH_FREENAME) + free(m->m_name); free((char *)m); } @@ -199,8 +201,9 @@ return listmethods(ml); for (; ml->ml_name != NULL; ml++) { if (strcmp(name, ml->ml_name) == 0) - return newmethodobject(ml->ml_name, ml->ml_meth, - op, ml->ml_varargs); + return newmethodobject(ml->ml_name, ml->ml_meth, op, + ml->ml_varargs ? + METH_VARARGS : 0); } err_setstr(AttributeError, name); return NULL;
