浏览代码

Simplify BinIndexToVarSize.

Rika Ichinose 2 周之前
父节点
当前提交
928312d331
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      rtl/inc/heap.inc

+ 2 - 2
rtl/inc/heap.inc

@@ -518,8 +518,8 @@ type
 
   class function HeapInc.BinIndexToVarSize(binIndex: SizeUint): SizeUint;
   begin
-    result := binIndex div VarSizesPerClass;
-    result := MaxFixedHeaderAndPayload + (SizeUint(1) shl result - 1) shl FirstVarRangeP2 + (1 + binIndex mod VarSizesPerClass) shl (FirstVarStepP2 + result);
+    { Same. }
+    result := (1 shl (FirstVarRangeP2 - FirstVarStepP2) + 1 + binIndex mod VarSizesPerClass) shl (binIndex div VarSizesPerClass + FirstVarStepP2) - (1 shl FirstVarRangeP2 - MaxFixedHeaderAndPayload);
   end;
 
 {$ifndef HAS_SYSOSFREE}