* Debug.c, Debug.h: enabled the memory tracking of the system functions also
for the OS3 and MorphOS debug builds. This unfortunately requires to
the inline macros for the function jumps ourself, but well, this is just
for debugging purposes anyway.
243 lines of code changed in 5 files:
* extrasrc/FreeVecPooled.c: fixed wrong UNMEMTRACK() call.
1 lines of code changed in 1 file:
* extrasrc/AllocSysObject.c: refined the memory tracking to track each single
type instead of just AllocSysObject() globally.
15 lines of code changed in 1 file:
* Debug.c: removed the conditional free() in _UNMEMTRACK() again as it was
quite senseless. Pending allocations from malloc() will be freed auto-
matically by the c-library's startup code and other allocations cannot be
handled correctly here.
5 lines of code changed in 1 file:
* Debug.h: added missing macro parameter for the non-debug build.
1 lines of code changed in 1 file:
* Debug.c: reworked the _UNMEMTRACK() function to only free those allocations,
which have been done by standard functions like malloc(). Before even
allocations from AllocSysObject() or similar have been freed by free() which
must have caused all kinds of obscure and funny things. Further more the
function and type informations are no longer copied, because the strings are
constants and cannot simply vanish while the program is running.
27 lines of code changed in 1 file:
* Debug.c, Debug.h: added the AllocVec#?() type of functions to the memory
tracking framework. However, please note that the tracking of these
functions does only work on the OS4 debug build for now.
55 lines of code changed in 5 files:
* Debug.c: made some variables "more local".
5 lines of code changed in 1 file:
* Debug.c, Debug.h: slightly rewrote the new memory tracking debug framework
to have a MEMTRACK() and UNMEMTRACK() macro similar to our D()-type of
debugging macros. In addition, the preprocessor replacements for malloc()
and friends are now performed via GCC enhanced preprocessor macros which
call the original function directly. Furthermore, the memory tracking is
now an own debug class rather than a flag and also enabled per default.
That means if you want to get rid of the memory tracking you have to
disable the memory tracking with "setenv yamdebug !@mtrack".
74 lines of code changed in 2 files:
* Debug.c: calling free(NULL) will no longer cause a warning.
1 lines of code changed in 1 file:
* HTML2Mail.l, ParseEmail.l: fixed two memory leaks caused by the flex
generated code by manually calling the final cleanup function.
9 lines of code changed in 2 files:
* Debug.c: massively improved the speed of the memory tracking free() function
by using 256 separate lists instead of just one large list. The address of
the allocated pointer will be used as a kind of hash value to get a more or
less equal spread over all these lists.
80 lines of code changed in 1 file:
* YAM_FO.c: fixed a memory when a .fimage file was used for a custom folder
icon. This image was never properly destructed.
5 lines of code changed in 1 file:
* YAM_RE.c: fixed possible memory leak which was caused by overwriting simply
previous strdup()'d strings without free()ing the former copies.
16 lines of code changed in 1 file:
* misc: reworked the memory tracking framework to get rid of the special
function names. Now we are back to standard names like malloc().
657 lines of code changed in 59 files:
* YAM.c, Requesters.c: moved the defintion of the "signals" variable (and
setting it to zero out of the event handling loop. Before possible signals
from the previous loop's Wait() call would have effectively been zeroed
because of this, which might have had unpredictable results.
888 lines of code changed in 64 files:
* Themes.c: fixed typo.
1 lines of code changed in 1 file:
* Themes.c: a theme's URL string wasn't free()'d.
13 lines of code changed in 1 file:
* extrasrc/NewReadArgs.c: fixed a possible free(NULL) call.
3 lines of code changed in 1 file:
* AttachmentImage.c: combined to consecutive set()'s into one single xset().
2 lines of code changed in 1 file:
* InfoWindow.c: private tags will now be changed to TAG_IGNORE before the tag
list is passed to the parent class.
20 lines of code changed in 1 file:
* YAM_MA.c: while deleting mails the main window's Delete button and menu item
will now be disabled to prevent invoking the delete action more than once
and even worse causing YAM to crash. This should fix bug #2120523.
16 lines of code changed in 1 file:
* YAM.c, Requesters.c: moved the defintion of the "signals" variable (and
setting it to zero out of the event handling loop. Before possible signals
from the previous loop's Wait() call would have effectively been zeroed
because of this, which might have had unpredictable results.
14 lines of code changed in 2 files:
* YAM_RE.c, YAM_read.h: replaces all fgets() and GetLine() usages with calls to
getline(). This should increase the flexibility and reduce stack stack usage
a bit.
72 lines of code changed in 2 files:
- minor modification to GetLine() function and added some debug output
in case GetLine() fails.
8 lines of code changed in 1 file:
* YAM_RE.c: reworked RE_ConsumeRestOfPart() function to use the new getline()
function instead of retrieving each line via fgets(). This also removes the
hardcoded line limit and allows to parse messages with lines longer than
1000 chars.
79 lines of code changed in 1 file:
* extrasrc/getdelim.c: fixed realloc mechanism of getdelim() function. A
must_realloc check is not required really, especially not at the situation
it was placed ;)
12 lines of code changed in 1 file:
* misc: replaced some constant buffer sizes by sizeof() usages.
14 lines of code changed in 5 files:
* extrasrc/getdelim.c: optimized the getdelim() function a bit to avoid un-
necessary pointer arithmetic and get rid of some goto instructions.
55 lines of code changed in 1 file:
- committed missing extrasrc.c,h modifications to make getline/getdelim usable
22 lines of code changed in 2 files:
* extrasrc/getdelim.c: added getline()/getdelim() function to our extrasrc
pool of functions. In future we can use this functions as a replacement
for fgets() which is known to be slightly flawed in some aspects. The
implementation of these functions are based on the getline()/getdelim()
functionality of the glibc library.
* extrasrc: updated all sources to contain their proper copyright headers
509 lines of code changed in 23 files:
* YAM_RE.c: fixed a wrong debug output while scanning the headers which caused
the length of a value to be -1 always.
8 lines of code changed in 1 file:
* mui/WriteWindow.c: fixed bug #2079685 by modifying the routines which
decide on the type of encoding. Previously it could happen that an
attachment with long lines (>998) had still been encoded binary only and
thus ended up violating the RFC 2822 max. line length.
* locale/italian.ct: updated italian catalog translation provided by S.Hawamdeh
14 lines of code changed in 1 file: