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");
 }
Exemplo n.º 4
0
 internal void InsertGap(Data Gap)
 {
     GapsByFrom.BinaryInsert(new DataByForm() { Data = Gap });
     GapsByLen.BinaryInsert(new DataByLen() { Data = Gap });
     GapsByTo.BinaryInsert(new DataByTo() { Data = Gap });
 }