Will be used later in order to determine if a given call obeys the
standard calling convention, in order to determine if we can safely
attempt to retrieve its return value.
* the reference to MB_CUR_MAX requires stdlib.h
* if an conversion error occurs, the returned src pointer must point to
the character that triggered the error
* src was sometimes accessed incorrectly (needs double dereference)
* the source pointers may only be adjusted in case there is the
destination pointer is not NULL
* add gnulib test for wcsrtombs()
* add gnulib tests for mbsnrtowcs() and wcsnrtombs(), both inactive
as the respective functions are not publically available (they are
part of the [CX] extended ISO-C standard which we do not yet support)
* Our mbstate_t just references a corresponding ICU converter, but
does not actually contain its state. So a mere copying of the mbstate
won't duplicate the converter's intrinsic state, which means that
restarting with the copied state won't work.
If have experimented with cloning the converter into the mbstate_t,
but I was unable to get that to work, either. Apparently, the state
of the converter isn't cloned (but just the converter's settings
and data).
* add MultibyteStringToWchar() to ICU locale backend
* implement mbsrtowcs() and mbsnrtowcs() on top of
MultibyteStringToWchar()
* drop respective glibc files
When asked to step out, we now store the frame pointer of the current
stack frame. Upon hitting our temporary breakpoint, we then verify that
the current frame pointer is in fact in the previous frame. If not, we
reinstate the breakpoint and continue running.
Calling SetIcon(NULL) calls MakeEmpty() that tries to delete all
manipulators on fState. So we may only delete fState after that call.
Also reported as CID 10856.
- Add accessor for return type.
- Implement DW_AT_artificial parsing.
- Store the subprogram's template parameters and provide accessors
for them as well. Not used yet but will be handy later if/when we
want to expose the instantiated types somewhere in the user
interface when stepping into such a function.
When forking a team, copy on write areas (and therefore caches) are
created for all the areas in the parent team, but they were always
created as swappable. If the parent team had some B_FULL_LOCK areas,
which aren't swappable, the wrong type of cache would be created which
lead to them not being mergeable later on (causing a panic).
Comments about a possibly cleaner way to figure out the cache type
would be welcome.
* Define a MEMALIGN macro that is either just defined to malloc() or
to the actual memalign() depending on where KMessage is used. We only
use memalign() inside the kernel and libroot.
* Add a comment to the macro explaining that this allows the use of
special heap implementations that might return unaligned buffers for
debugging purposes.
- If multiple nested namespaces were involved in a name,
GetFullyQualifiedDIEName() would erroneously wipe out each one
as it walked up, leaving you with only the top level namespace.
- Don't touch the output parameter unless we're certain we succeeded.
- Use the artificial attribute to more intelligently determine when to omit
parameters. Fixes the first parameter on static class functions being
skipped incorrectly.
- Correctly handle varargs functions.
* Yet more nice way to fix Coverity issues fixed by hrev43460.
Thanks Rene Gollent for pointing it out!
* Potential Coverity issues fixed for sis19x driver too.
The change in hrev43405 wasn't correct, as it put the reference
object definition after the one of the corresponding locker, causing
the reference to be released before the unlock would happen.
Finally fixes#8187. Thanks Ingo for pointing that out.
* The call to _TeamDied() causes the team that the iterator points to
be removed from the map. Therefore the iterator becomes invalid and
may not be accessed anymore (including incrementing it). As we've had
to unlock, anything might have happened to to map, so take the safe
route and just start over.
* For each dead team that was found the AppManager was unlocked, but
there were no balancing lock calls, therefore causing the lock count
to get corrupted.