/////////////////////////////////////////////////////////////////////// internal bool ResetValue( Interpreter interpreter, string key, bool zero ) { #if !MONO && NATIVE && WINDOWS object value; if (zero && (key != null) && TryGetValue(key, out value)) { if ((value is string) && (interpreter != null) && interpreter.HasZeroString()) { ReturnCode zeroCode; Result zeroError = null; zeroCode = StringOps.ZeroString( (string)value, ref zeroError); if (zeroCode != ReturnCode.Ok) { DebugOps.Complain(interpreter, zeroCode, zeroError); } } } #endif if (key == null) { return(false); } return(Remove(key)); }
/////////////////////////////////////////////////////////////////////// #region Private Methods internal void ResetValue( Interpreter interpreter, bool zero ) { #if !MONO && NATIVE && WINDOWS if (zero && (value is string) && (interpreter != null) && interpreter.HasZeroString()) { ReturnCode zeroCode; Result zeroError = null; zeroCode = StringOps.ZeroString( (string)value, ref zeroError); if (zeroCode != ReturnCode.Ok) { DebugOps.Complain(interpreter, zeroCode, zeroError); } } #endif value = null; #if CACHE_RESULT_TOSTRING #if !MONO && NATIVE && WINDOWS if (zero && (@string != null) && (interpreter != null) && interpreter.HasZeroString()) { ReturnCode zeroCode; Result zeroError = null; zeroCode = StringOps.ZeroString( @string, ref zeroError); if (zeroCode != ReturnCode.Ok) { DebugOps.Complain(interpreter, zeroCode, zeroError); } } #endif @string = null; #endif }
/////////////////////////////////////////////////////////////////////// #region Private Methods internal void ResetValue( Interpreter interpreter, bool zero ) { #if !MONO && NATIVE && WINDOWS if (zero && (interpreter != null) && interpreter.HasZeroString()) { if (value is string) { ReturnCode zeroCode; Result zeroError = null; zeroCode = StringOps.ZeroString( (string)value, ref zeroError); if (zeroCode != ReturnCode.Ok) { DebugOps.Complain(interpreter, zeroCode, zeroError); } } else if (value is Argument) { ((Argument)value).ResetValue(interpreter, zero); } else if (value is Result) { ((Result)value).ResetValue(interpreter, zero); } } #endif value = null; if (arrayValue != null) { arrayValue.ResetValue(interpreter, zero); arrayValue = null; } }
/////////////////////////////////////////////////////////////////////// internal void ResetValue( Interpreter interpreter, bool zero ) { #if !MONO && NATIVE && WINDOWS if (zero && (interpreter != null) && interpreter.HasZeroString()) { foreach (KeyValuePair <string, object> pair in this) { object value = pair.Value; if (value is string) { ReturnCode zeroCode; Result zeroError = null; zeroCode = StringOps.ZeroString( (string)value, ref zeroError); if (zeroCode != ReturnCode.Ok) { DebugOps.Complain(interpreter, zeroCode, zeroError); } } else if (value is Argument) { ((Argument)value).ResetValue(interpreter, zero); } else if (value is Result) { ((Result)value).ResetValue(interpreter, zero); } } } #endif Clear(); }