gabr42 / gabr42/GpDelphiUnits

X64-Question in TGpHugeFile: BufOffs maybe too short

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
auto-migrated Priority-Medium Type-Defect
Dominant language
Pascal
Stars
190
Forks
63
PR merge metrics
No merged PRs in 30d

Description

```
In Unit GpHugeF.pas

the class (and some functions) use a Buffer-Offset. But this offset is defined
as DWORD.
Is there any possibility in X64 and very large files (I have >3GB-Files), that
the BufOffset is too small?

TGpHugeFile = class
private
hfAsynchronous : boolean;
hfBlockSize : DWORD;
(...)
hfBufFilePos : HugeInt; //cached FilePos (according the current hfBufOffs)
hfBufOffs : DWORD; //current position inside the buffer

Suggestion:
hfBufOffs : HugeInt;

```

Original issue reported on code.google.com by `mxxa2a...@gmail.com` on 25 Mar 2015 at 8:58

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with Unit GpHugeF.pas and inspect TGpHugeFile and the functions that use hfBufOffs, especially how buffer offsets relate to hfBufFilePos and large-file positions. Determine whether DWORD can truncate valid offsets on x64 or with files larger than 3 GB; done means documenting the result and changing the type only if the code and platform behavior require it.

Written by the indexing model from the issue text.

Assessment

Domain
operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.