Rhino.IdScriptableObject.PrototypeValues.Set C# (CSharp) Method

Set() private method

private Set ( int id, Scriptable start, object value ) : void
id int
start Scriptable
value object
return void
			internal void Set(int id, Scriptable start, object value)
			{
				if (value == ScriptableConstants.NOT_FOUND)
				{
					throw new ArgumentException();
				}
				EnsureId(id);
				int attr = attributeArray[id - 1];
				if ((attr & READONLY) == 0)
				{
					if (start == obj)
					{
						if (value == null)
						{
							value = UniqueTag.NULL_VALUE;
						}
						int valueSlot = (id - 1) * SLOT_SPAN;
						lock (this)
						{
							valueArray[valueSlot] = value;
						}
					}
					else
					{
						int nameSlot = (id - 1) * SLOT_SPAN + NAME_SLOT;
						string name = (string)valueArray[nameSlot];
						start.Put(name, start, value);
					}
				}
			}