Shrink FrameType to be an Int16, as Int32 is completely unnecessary, and that memory space is about to become useful
This commit is contained in:
parent
ba15186bbe
commit
20115f3c84
|
|
@ -5,7 +5,6 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Components;
|
|
||||||
using Microsoft.AspNetCore.Components.Rendering;
|
using Microsoft.AspNetCore.Components.Rendering;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Components.RenderTree
|
namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
// Offset Type
|
// Offset Type
|
||||||
// ------ ----
|
// ------ ----
|
||||||
// 0-3 Int32 (sequence number)
|
// 0-3 Int32 (sequence number)
|
||||||
// 4-7 Int32 (frame type)
|
// 4-5 Int16 (frame type)
|
||||||
// 8-15 Value types (usage varies by frame type)
|
// 6-15 Value types (usage varies by frame type)
|
||||||
// 16-23 Reference type (usage varies by frame type)
|
// 16-23 Reference type (usage varies by frame type)
|
||||||
// 24-31 Reference type (usage varies by frame type)
|
// 24-31 Reference type (usage varies by frame type)
|
||||||
// 32-39 Reference type (usage varies by frame type)
|
// 32-39 Reference type (usage varies by frame type)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Describes the type of a <see cref="RenderTreeFrame"/>.
|
/// Describes the type of a <see cref="RenderTreeFrame"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum RenderTreeFrameType: int
|
public enum RenderTreeFrameType: short
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used only for unintialized frames.
|
/// Used only for unintialized frames.
|
||||||
|
|
|
||||||
|
|
@ -313,7 +313,7 @@ namespace Microsoft.AspNetCore.Components.Server
|
||||||
{
|
{
|
||||||
// Assume enums are represented as ints
|
// Assume enums are represented as ints
|
||||||
var expectedEntry = expectedEntryIterationVar.GetType().IsEnum
|
var expectedEntry = expectedEntryIterationVar.GetType().IsEnum
|
||||||
? (int)expectedEntryIterationVar
|
? Convert.ToInt32(expectedEntryIterationVar)
|
||||||
: expectedEntryIterationVar;
|
: expectedEntryIterationVar;
|
||||||
|
|
||||||
if (expectedEntry is int expectedInt)
|
if (expectedEntry is int expectedInt)
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -114,6 +114,10 @@ export const monoPlatform: Platform = {
|
||||||
return (referenceTypedObject as any as number + 8) as any as Pointer;
|
return (referenceTypedObject as any as number + 8) as any as Pointer;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
readInt16Field: function readHeapInt16(baseAddress: Pointer, fieldOffset?: number): number {
|
||||||
|
return Module.getValue((baseAddress as any as number) + (fieldOffset || 0), 'i16');
|
||||||
|
},
|
||||||
|
|
||||||
readInt32Field: function readHeapInt32(baseAddress: Pointer, fieldOffset?: number): number {
|
readInt32Field: function readHeapInt32(baseAddress: Pointer, fieldOffset?: number): number {
|
||||||
return Module.getValue((baseAddress as any as number) + (fieldOffset || 0), 'i32');
|
return Module.getValue((baseAddress as any as number) + (fieldOffset || 0), 'i32');
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ export interface Platform {
|
||||||
getArrayEntryPtr<TPtr extends Pointer>(array: System_Array<TPtr>, index: number, itemSize: number): TPtr;
|
getArrayEntryPtr<TPtr extends Pointer>(array: System_Array<TPtr>, index: number, itemSize: number): TPtr;
|
||||||
|
|
||||||
getObjectFieldsBaseAddress(referenceTypedObject: System_Object): Pointer;
|
getObjectFieldsBaseAddress(referenceTypedObject: System_Object): Pointer;
|
||||||
|
readInt16Field(baseAddress: Pointer, fieldOffset?: number): number;
|
||||||
readInt32Field(baseAddress: Pointer, fieldOffset?: number): number;
|
readInt32Field(baseAddress: Pointer, fieldOffset?: number): number;
|
||||||
readFloatField(baseAddress: Pointer, fieldOffset?: number): number;
|
readFloatField(baseAddress: Pointer, fieldOffset?: number): number;
|
||||||
readObjectField<T extends System_Object>(baseAddress: Pointer, fieldOffset?: number): T;
|
readObjectField<T extends System_Object>(baseAddress: Pointer, fieldOffset?: number): T;
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ const editReader = {
|
||||||
// Keep in sync with memory layout in RenderTreeFrame.cs
|
// Keep in sync with memory layout in RenderTreeFrame.cs
|
||||||
const frameReader = {
|
const frameReader = {
|
||||||
structLength: 36,
|
structLength: 36,
|
||||||
frameType: (frame: RenderTreeFrame) => platform.readInt32Field(frame as any, 4) as FrameType,
|
frameType: (frame: RenderTreeFrame) => platform.readInt16Field(frame as any, 4) as FrameType,
|
||||||
subtreeLength: (frame: RenderTreeFrame) => platform.readInt32Field(frame as any, 8),
|
subtreeLength: (frame: RenderTreeFrame) => platform.readInt32Field(frame as any, 8),
|
||||||
elementReferenceCaptureId: (frame: RenderTreeFrame) => platform.readStringField(frame as any, 16),
|
elementReferenceCaptureId: (frame: RenderTreeFrame) => platform.readStringField(frame as any, 16),
|
||||||
componentId: (frame: RenderTreeFrame) => platform.readInt32Field(frame as any, 12),
|
componentId: (frame: RenderTreeFrame) => platform.readInt32Field(frame as any, 12),
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,7 @@ namespace Ignitor
|
||||||
{
|
{
|
||||||
// Assume enums are represented as ints
|
// Assume enums are represented as ints
|
||||||
var expectedEntry = expectedEntryIterationVar.GetType().IsEnum
|
var expectedEntry = expectedEntryIterationVar.GetType().IsEnum
|
||||||
? (int)expectedEntryIterationVar
|
? Convert.ToInt32(expectedEntryIterationVar)
|
||||||
: expectedEntryIterationVar;
|
: expectedEntryIterationVar;
|
||||||
|
|
||||||
if (expectedEntry is int expectedInt)
|
if (expectedEntry is int expectedInt)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue