Mercurial > cpython-lru_cache-weakref
diff Python/structmember.c @ 398:0ac1357cd898 legacy-trunk
Added __members__ secret attribute
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Sun, 20 Oct 1991 20:24:14 +0000 |
| parents | 853b736a6a9e |
| children | e2c3463c4d91 |
line wrap: on
line diff
--- a/Python/structmember.c Sun Oct 20 20:22:50 1991 +0000 +++ b/Python/structmember.c Sun Oct 20 20:24:14 1991 +0000 @@ -28,6 +28,29 @@ #include "structmember.h" +static object * +listmembers(mlist) + struct memberlist *mlist; +{ + int i, n; + object *v; + for (n = 0; mlist[n].name != NULL; n++) + ; + v = newlistobject(n); + if (v != NULL) { + for (i = 0; i < n; i++) + setlistitem(v, i, newstringobject(mlist[i].name)); + if (err_occurred()) { + DECREF(v); + v = NULL; + } + else { + sortlist(v); + } + } + return v; +} + object * getmember(addr, mlist, name) char *addr; @@ -36,6 +59,8 @@ { struct memberlist *l; + if (strcmp(name, "__members__") == 0) + return listmembers(mlist); for (l = mlist; l->name != NULL; l++) { if (strcmp(l->name, name) == 0) { object *v;
