private static void Clone( object originalObject, Action <object> SetValue, Func <object, object> Copy) { if (originalObject == null) { return; } var VisitedObj = new ObjectContainer() { ObjHashCode = originalObject.GetHashCode() }; var VisitedPos = visited.BinarySearch(VisitedObj); if (VisitedPos.Index > -1) { VisitedObj = visited[VisitedPos.Index]; AtLast += () => SetValue(VisitedObj.obj); } else { visited.BinaryInsert(VisitedObj); var Obj = Copy(originalObject); SetValue(Obj); VisitedObj.obj = Obj; } }
public ExportClassAttribute(string contractName, Type contractType) : base(contractName, contractType) { ContractHash = contractType.GetHashCode(); if (Info.BinarySearch(this).Value == null) { Info.BinaryInsert(this); } jSObjectStatic = (JSObject)Runtime.GetGlobalObject(ContractName); }
internal void ReadyForManageObject() { if (objects.BinarySearch(this).Index < 0) { objects.BinaryInsert(this); } //onRemoved = () => Console.WriteLine(JSHandle); //int last = GetProperty<int>("MNH"); //if(last!=1) // SetProperty("onRemoved", onRemoved); //ManagedJSObject.Invoke("onRemoved"); }
internal void InsertGap(Data Gap) { GapsByFrom.BinaryInsert(new DataByForm() { Data = Gap }); GapsByLen.BinaryInsert(new DataByLen() { Data = Gap }); GapsByTo.BinaryInsert(new DataByTo() { Data = Gap }); }