Preserve pointer contracts through the Windows hover-text list accessors
Ghidra v1797 · 3bccb89
Win 00661200 returns the existing void* field D2HoverTextStrc.pTextLineList at+12, currently int32_t;00661210 stores its second argument into that same field, also currently int32_t. Their sole caller0049f3d0 keeps the getter's full EAX pointer, dereferences it, passes the unchanged address to FreeClientMemory, then supplies null to the setter. Restore the existing opaque void* type on the getter return and setter argument, preserving names, remaining inputs, return behavior and stdcall RET4/RET8. The existing272-byte owner layout and complete138-byte constructor independently allocate that object and initialize+12 to null. Complete13/16-byte accessors and61-byte sole caller are independently decoded from the original Windows PE. No precise list-header identity, linked-node type, Mac pair, shared-field edit or runtime gain is inferred; retaining void* matches the existing field without introducing a speculative structure.
Changes 2, applied together
Set prototype
win 0x00661200signatureint32_t HOVERTEXT_GetTextLineList(D2HoverTextStrc * pHover)→void * HOVERTEXT_GetTextLineList(D2HoverTextStrc * pHover)convention__stdcallRetype variable
win 0x00661210 Stack[0x8]typeint32_t→void *