From 4dbbd2bf575cdea49fb2f03c713a1ad39d7622d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Fri, 21 Jan 2011 12:53:47 +0100 Subject: [PATCH] Builtin._get_setter() now knows about subtyped objects. --- src/builtin.cmod | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/builtin.cmod b/src/builtin.cmod index 9ad0711571..20d63b7c10 100644 --- a/src/builtin.cmod +++ b/src/builtin.cmod @@ -3661,13 +3661,17 @@ PMOD_EXPORT struct object *get_setter(struct object *o, int f) PIKEFUN function(mixed:void) _get_setter(object o, string s) { struct program *p; + struct inherit *inh; int f; if (!(p = o->prog)) { Pike_error("Indexing a destructed object.\n"); } + inh = p->inherits + Pike_sp[-args].subtype; + p = inh->prog; f = find_shared_string_identifier(s, p); if ((f >= 0) && IDENTIFIER_IS_VARIABLE(ID_FROM_INT(p, f)->identifier_flags)) { + f += inh->identifier_level; push_function(get_setter(o, f), f_Setter_cq__backtick_28_29_fun_num); } else { push_undefined(); -- GitLab