Skip to content

Misc fixes #633

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Feb 2, 2024
Merged

Misc fixes #633

merged 16 commits into from
Feb 2, 2024

Conversation

deadwood2
Copy link
Contributor

@deadwood2 deadwood2 commented Feb 2, 2024

Set of different fixes. Please check each commit for description and rationale.

Build-tested with linux-x86_64

deadwood added 16 commits February 2, 2024 19:05
At priority 0, C memory management is shutdown.
This was causing the previous errno (reported during fixcase) to be
reported as effect of Rename rather then error reported in nocase_rename()
Field background is used as storage in GetAttr call and thus must be IPTR
mgi_Prefs have frame fields of count MUIV_Frame_Count. Having
MUIV_Frame_Register as higher value than count was causing reading of
random memory in zframe->draw.

Note: loading and saving of settings for MUIV_Frame_Register is not
implemented.

This change is backward compatible. ZunePrefsNew is internal and mgi_Prefs
pointer from MUI_GlobalInfo is not even exposed in public headers.
Literals are treated as int (32-bit) by default. This causes wrong 64-bit
values for negative numbers which are transported via APTR-size fields.
Extend the literals to size of long depending on platform.
The assumption of struct ListImage and NList image structure having obj
at the same offset is not valid under 64-bits
In C code, p SysBase gives $1 = (struct ExecBase *)addr, however when
first C++ debugging information is loaded, this is change into
$1 = (ExecBase *)addr. This results in $SysBase = (ExecBase *)addr and
gdb complaining about ExecBase type not being known.

The hack makes sure that output is always $SysBase = (struct ExecBase*)addr
It now support case where address differ in number of digits and falls
back to not displaying any images instead of displaying broken text when
the hack fails
Ignore ('*') comes before width and length, not after width. Previous code
was failing where there was * and width.
This version correctly supports 64-bit systems with datasizes fixed at 32
bit integers rather than "longs" as in old version.
@deadwood2
Copy link
Contributor Author

FYI: some of these commits fix #630

@Kalamatee Kalamatee merged commit 0e45b84 into aros-development-team:master Feb 2, 2024
@deadwood2 deadwood2 deleted the misc_fixes branch February 3, 2024 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants