Example #1
0
        protected override void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool CompletelyOverrides)
        {
            var otherStoreFieldProvider = (StoreFieldStateProvider)overrideCandidate;

            if (otherStoreFieldProvider._FieldDefinition.MetadataToken != _FieldDefinition.MetadataToken)
            {
                CompletelyOverrides = false;
                return;
            }
            otherStoreFieldProvider.ObjectNodes = otherStoreFieldProvider.ObjectNodes.Except(this.ObjectNodes).ToList();
            CompletelyOverrides = otherStoreFieldProvider.ObjectNodes.Count == 0;
        }
        protected override void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool completelyOverrides)
        {
            if (!IsRelatedToOtherStore(overrideCandidate))
            {
                completelyOverrides = false;
                return;
            }
            ObjectUsingStateProvider overrideCandidateAsObjectUsing = (ObjectUsingStateProvider)overrideCandidate;

            overrideCandidateAsObjectUsing.ObjectNodes = overrideCandidateAsObjectUsing.ObjectNodes.Except(ObjectNodes).ToList();
            completelyOverrides = overrideCandidateAsObjectUsing.objectNodes.Count == 0;
        }
Example #3
0
 internal void OverrideAnother(StoreDynamicDataStateProvider partiallyOverrided, out bool completelyOverrides)
 {
     if (partiallyOverrided.GetType() != this.GetType())
     {
         completelyOverrides = false;
         return;
     }
     if (partiallyOverrided.StoreNode == StoreNode)
     {
         completelyOverrides = true;
         return;
     }
     OverrideAnotherInternal(partiallyOverrided, out completelyOverrides);
 }
Example #4
0
        public static IEnumerable <StoreDynamicDataStateProvider> GetMatchingStateProvider(InstructionNode storeNode)
        {
            StoreDynamicDataStateProvider singleStateProvider = GetSingleMatchingStateProvider(storeNode);

            if (singleStateProvider != null)
            {
                return(new[] { singleStateProvider });
            }
            if (CodeGroups.StIndCodes.Contains(storeNode.Instruction.OpCode.Code))
            {
                return(StoreToAddressFactory.GetStoreToAddressStateProvider(storeNode));
            }
            return(null);
        }
Example #5
0
 protected override bool IsRelatedToOtherStore(StoreDynamicDataStateProvider otherStateProvider)
 {
     return(((StoreFieldStateProvider)otherStateProvider)._FieldDefinition.MetadataToken == _FieldDefinition.MetadataToken);
 }
Example #6
0
 protected override void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool completelyOverrides)
 {
     completelyOverrides = ((StoreArgumentStateProvider)overrideCandidate).ArgumentNode.ArgIndex == ArgumentNode.ArgIndex &&
                           overrideCandidate.StoreNode.Method == StoreNode.Method;
 }
Example #7
0
 protected abstract void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool completelyOverrides);
 protected abstract bool IsRelatedToOtherStore(StoreDynamicDataStateProvider otherStateProvider);
 protected override void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool completelyOverrides)
 {
     completelyOverrides = ((StoreLocationStateProvider)overrideCandidate).LocStoreNode.LocIndex == LocStoreNode.LocIndex &&
                           overrideCandidate.StoreNode.Method == StoreNode.Method;
 }
Example #10
0
        protected override bool IsRelatedToOtherStore(StoreDynamicDataStateProvider otherStateProvider)
        {
            var stElemProivder = (StElemStateProvider)otherStateProvider;

            return(!stElemProivder._IndexArgs.SequenceEqual(this._IndexArgs));
        }
Example #11
0
        protected override void OverrideAnotherInternal(StoreDynamicDataStateProvider overrideCandidate, out bool completelyOverrides)
        {
            var otherStoreStaticField = (StoreStaticFieldStateProvider)overrideCandidate;

            completelyOverrides = this._FieldDefinition.MetadataToken == otherStoreStaticField._FieldDefinition.MetadataToken;
        }