public RuntimeGlobalAccessorImpl(IAutoMemoryManagerFabric gcFabric)
        {
            var stb = new NativeStructureBuilderImpl(this, "object");

            _gcCtx = gcFabric.CreateManagerContext(this);
            if (_gcCtx.Integration != null)
            {
                _gcCtx.Integration.AugmentObjectLayout(stb);
            }

            stb.UseDefaultFieldAlignment = true;
            stb.FieldsAligmnent          = null;
            stb.StructureAlignment       = null;

            var typeIdFieldBuilder = stb.DefineField("typeId");

            typeIdFieldBuilder.Size = IntPtr.Size;

            _objectLayout    = stb.Complete();
            _typeIdFieldInfo = _objectLayout.Fields.First(f => f.Number == typeIdFieldBuilder.Number);

            this.GenerateTypes(stb);

            _memoryManager = _gcCtx.CreateManager(_systemMemoryManager, this);
        }
 public AutoMemoryManagerCheckerContext(IAutoMemoryManagementContext autoMemoryManagementContext)
 {
     _underlyingContext = autoMemoryManagementContext;
 }