REDIVIVUS

Proposals / #1398

Type the paired Excel parser's TXT buffer as char storage instead of archive objects

checked · by eejitgames · submitted 2026-11-07

Both Excel structs' field0 and STRUCT_CreateBinFieldExcelAndFillData's input are D2ArchiveStrc*, but the complete native producers scan/mutate raw TXT bytes. They store the input at field0, advance cursors by1/2 bytes, split tabs/CRLF, compare line text with Expansion and move byte ranges. Consumers hash header strings from that field and free the original buffer. Correct field0 and the producer input to char* on both builds, plus the Mac producer's three explicitly mis-typed cursor locals; Windows cursors are inferred undefined4 values. This removes an archive-object interpretation at the source without changing the16B layout or either ABI. The chosen pD2Archive member/input names also misdescribe the proven buffer role; review should align them as pTextBuffer (no chosen-name rename op).1396/1397 cover different dispatcher/getter contracts. This is a metadata correction; no generated-code or runtime improvement has been measured.

Changes 7, applied together

  1. Struct field win /D2BinFieldExcelStrc + 0x0

    typeD2ArchiveStrc *→char *
  2. Struct field mac /D2BinFieldExcelStrc + 0x0

    typeD2ArchiveStrc *→char *
  3. Retype variable win 0x006bd640 Stack[0x4]

    typeD2ArchiveStrc *→char *
  4. Retype variable mac 0x002f11d0 Stack[0x4]

    typeD2ArchiveStrc *→char *
  5. Retype variable mac 0x002f11d0 EBX

    typeD2ArchiveStrc *→char *
  6. Retype variable mac 0x002f11d0 ESI

    typeD2ArchiveStrc *→char *
  7. Retype variable mac 0x002f11d0 EDI

    typeD2ArchiveStrc *→char *