@@ -255,7 +255,9 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
255
255
used_count : SlotIndex ,
256
256
257
257
fn usedBits (bucket : * BucketHeader , index : usize ) * u8 {
258
- return @as (* u8 , @ptrFromInt (@intFromPtr (bucket ) + @sizeOf (BucketHeader ) + index ));
258
+ const bucket_bytes : [* ]u8 = @ptrCast (bucket );
259
+ const after_header = bucket_bytes + @sizeOf (BucketHeader );
260
+ return & after_header [index ];
259
261
}
260
262
261
263
fn requestedSizes (bucket : * BucketHeader , size_class : usize ) []LargestSizeClassInt {
@@ -745,7 +747,7 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
745
747
}
746
748
return self .resizeLarge (old_mem , log2_old_align , new_size , ret_addr );
747
749
};
748
- const byte_offset = @intFromPtr ( old_mem .ptr ) - @intFromPtr ( bucket .page ) ;
750
+ const byte_offset = old_mem .ptr - bucket .page ;
749
751
const slot_index = @as (SlotIndex , @intCast (byte_offset / size_class ));
750
752
const used_byte_index = slot_index / 8 ;
751
753
const used_bit_index = @as (u3 , @intCast (slot_index % 8 ));
@@ -865,7 +867,7 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
865
867
self .freeLarge (old_mem , log2_old_align , ret_addr );
866
868
return ;
867
869
};
868
- const byte_offset = @intFromPtr ( old_mem .ptr ) - @intFromPtr ( bucket .page ) ;
870
+ const byte_offset = old_mem .ptr - bucket .page ;
869
871
const slot_index = @as (SlotIndex , @intCast (byte_offset / size_class ));
870
872
const used_byte_index = slot_index / 8 ;
871
873
const used_bit_index = @as (u3 , @intCast (slot_index % 8 ));
0 commit comments