diff options
author | Matthias Andreas Benkard <matthias@benkard.de> | 2008-06-30 21:43:35 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <matthias@benkard.de> | 2008-06-30 21:43:35 +0200 |
commit | 786ddbd4cea2fa9808463a5b2ff23dd40b994846 (patch) | |
tree | 9db79c4a8906661d48a5fff9ac24ea4a12a54050 /MLKDynamicContext.m | |
parent | eb968f738101d87b2d0e170d757ea10a27bbb867 (diff) |
Simplify environment inheritance.
Diffstat (limited to 'MLKDynamicContext.m')
-rw-r--r-- | MLKDynamicContext.m | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/MLKDynamicContext.m b/MLKDynamicContext.m index d4e1ab6..a2bc151 100644 --- a/MLKDynamicContext.m +++ b/MLKDynamicContext.m @@ -37,15 +37,11 @@ #define MAKE_ENVIRONMENT(variable, parent, parent_member) \ - (variable \ - ? (id) [[MLKEnvironment alloc] \ - initWithParent:(parent \ - ? (id) parent_member \ - : nil) \ - values:variable] \ - : (id) (parent \ - ? (id) RETAIN (parent_member) \ - : [[MLKEnvironment alloc] init])); + [[MLKEnvironment alloc] \ + initWithParent:(parent \ + ? (id) parent_member \ + : nil) \ + values:variable] static MLKDynamicContext *global_context; @@ -373,25 +369,11 @@ static MLKDynamicContext *global_context; -(void) addValue:(id)value forSymbol:(MLKSymbol *)symbol { - if (_parent && _environment == _parent->_environment) - _environment = [[MLKEnvironment alloc] initWithParent:_parent->_environment - values:nil]; - else if (!_environment) - _environment = [[MLKEnvironment alloc] initWithParent:nil - values:nil]; - [[self environment] addValue:value forSymbol:symbol]; } -(void) addBindingForSymbol:(MLKSymbol *)symbol { - if (_parent && _environment == _parent->_environment) - _environment = [[MLKEnvironment alloc] initWithParent:_parent->_environment - values:nil]; - else if (!_environment) - _environment = [[MLKEnvironment alloc] initWithParent:nil - values:nil]; - [[self environment] addBindingForSymbol:symbol]; } |