Exemplo n.º 1
0
        public static void AddOrUpdateChild32(FunctionInfo *parent, FunctionInfo *child, Profiler profiler)
        {
            int slot = child->Id;

            while (true)
            {
                slot &= parent->LastChildIndex;
                FunctionInfo *slotContent = (FunctionInfo *)profiler.TranslatePointer(GetChildren32(parent)[slot]);
                if (slotContent == null || slotContent->Id == child->Id)
                {
                    GetChildren32(parent)[slot] = profiler.TranslatePointerBack32(child);
                    break;
                }
                slot++;
            }
        }
Exemplo n.º 2
0
		public static void AddOrUpdateChild32(FunctionInfo* parent, FunctionInfo* child, Profiler profiler)
		{
			int slot = child->Id;
			while (true)
			{
				slot &= parent->LastChildIndex;
				FunctionInfo* slotContent = (FunctionInfo*)profiler.TranslatePointer(GetChildren32(parent)[slot]);
				if (slotContent == null || slotContent->Id == child->Id)
				{
					GetChildren32(parent)[slot] = profiler.TranslatePointerBack32(child);
					break;
				}
				slot++;
			}
		}
Exemplo n.º 3
0
 internal unsafe override void *TranslatePointer(TargetProcessPointer ptr)
 {
     return(profiler.TranslatePointer(ptr));
 }