so a proper error message is written (resolves#19871),
EOutOfMemory is not handle perfectly because it could be that the exception
handling requires again a memory allocation
git-svn-id: trunk@18132 -
the methodpointer of a call, transform it into a call to the classclass
method because otherwise it can be used before the first call to any
method of the class (such as in the packages/cocoaint/src/IvarSize test)
and this can result in crashes
git-svn-id: trunk@18124 -
- disabled some headers for 64 bit platforms that are not available there
* updated cocoa patch to adjust missed unions by the parser
-> when compiled with current compiler, all field offsets
and instance sizes should now match gcc's exactly
git-svn-id: trunk@18122 -
* Do not initialize unused symbols, because finalization code is not generated for them either.
* Always initialize/finalize such constants, even if they are declared in {$J-} state and cannot be modified by user code.
git-svn-id: trunk@18121 -
* when creating a child class, ignore the padding added to the parent
in case of objcclasses (gcc/clang also do that; maybe the same
has to be done for cppclass as well)
-> objcclass layouts seem to finally completely match the gcc ones
git-svn-id: trunk@18119 -
* save/restore tabstractrecordsymtable.datasize as asizeint instead of
aint (not ppu version change because they are the same on all
production targets)
* add shortint() typecasts when reading/writing fieldalignment/
recordalignment fields
git-svn-id: trunk@18118 -
because it influences the offset at which the next field in child classes
should be placed in case it also uses C_alignment
* also pad objectdefs based on the packrecords setting (Delphi-compatible)
-> field offset calculation in objcclasses is now correct if they are
compiled with {$packrecords c}
git-svn-id: trunk@18114 -
than only record containing nothing but bitpacked fields (although in
theory this can also cause errors, it results in correct data layouts
for all Cocoa structs while the previous code didn't)
* changed the translation of bitpacked structs so that the compiler will
properly align them. This requires that all bitpacked fields are
wrapped into a separate record though, so all fields are now accessible
via recname.data.field instead of via recname.field. Since all fields
in the Cocoa classes are private, this should not cause problems
(except if exported record types are also used elsewhere)
git-svn-id: trunk@18113 -
symbolic constants rather than numerically
* replace an empty C array (such as int[0]) with an empty record declaration
rather than with an array of one element, since it doesn't take up any
space in C either
git-svn-id: trunk@18111 -