summaryrefslogtreecommitdiffstats
path: root/generic/tclOOCall.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2018-05-15 13:04:10 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2018-05-15 13:04:10 (GMT)
commite6fdfbe93b022e8ac8dc26c7de9706b7b45d422f (patch)
tree2573310b16ebdfcea2159a4b30d2c0b07bea71e7 /generic/tclOOCall.c
parentbd706be303307bc4bdeacf15c1af1a43f1585d6b (diff)
downloadtcl-e6fdfbe93b022e8ac8dc26c7de9706b7b45d422f.zip
tcl-e6fdfbe93b022e8ac8dc26c7de9706b7b45d422f.tar.gz
tcl-e6fdfbe93b022e8ac8dc26c7de9706b7b45d422f.tar.bz2
Make [info object methods] and [info class methods] work right.
Diffstat (limited to 'generic/tclOOCall.c')
-rw-r--r--generic/tclOOCall.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index 5fd0c2a..bc84da0 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -44,18 +44,25 @@ struct ChainBuilder {
#define MIXIN_CONSISTENT(flags) \
(((flags) & OBJECT_MIXIN) || \
!((flags) & BUILDING_MIXINS) == !((flags) & TRAVERSED_MIXIN))
+
/*
- * Note that the flag bit PRIVATE_METHOD has a confusing name.
+ * Note that the flag bit PRIVATE_METHOD has a confusing name; it's just for
+ * Itcl's special type of private.
*/
+
#define IS_PUBLIC(mPtr) \
(((mPtr)->flags & PUBLIC_METHOD) != 0)
#define IS_UNEXPORTED(mPtr) \
+ (((mPtr)->flags & SCOPE_FLAGS) == 0)
+#define IS_ITCLPRIVATE(mPtr) \
(((mPtr)->flags & PRIVATE_METHOD) != 0)
#define IS_PRIVATE(mPtr) \
(((mPtr)->flags & TRUE_PRIVATE_METHOD) != 0)
#define WANT_PUBLIC(flags) \
(((flags) & PUBLIC_METHOD) != 0)
#define WANT_UNEXPORTED(flags) \
+ (((flags) & (PRIVATE_METHOD | TRUE_PRIVATE_METHOD)) == 0)
+#define WANT_ITCLPRIVATE(flags) \
(((flags) & PRIVATE_METHOD) != 0)
#define WANT_PRIVATE(flags) \
(((flags) & TRUE_PRIVATE_METHOD) != 0)