Not only do debuggers catch the expected SIGSEGV by default, I'm not
sure there's a working way to configure either gdb or lldb not to. This
commit uses an OS X-specific mechanism to add an exception handler that
runs before the default one.
It isn't easily accessible with sigaction or Mach exceptions (well,
requires an additional system call in the latter), and isn't necessary.
(and get rid of the enum, because it's only used once, and the comments
are more expressive than enum names)
It tried to cast incoming pointers to native ones. The values are
required to be null anyway, so it doesn't really matter, but it fixes a
warning at least.
(This is currently pointless, as the code in question is not used on OS
X anyway, but I'd like to see that option come back. In any case, fixes
the warning)
MSVC insisted on using a copy assignment where a move was intended and
ought to be used. This would have been caught, because the class in
question inherits from NonCopyable, which declares a move assignment
operator, which is supposed to delete the implicitly declared copy
assignment operator, but of course MSVC didn't do that either, causing a
class that should have been safe to be unsafe.
(Intertwined enough that's it's easier to do in one patch.)
(1) /dev/es did not support state save, which could cause crashes and
incorrect behavior after loading.
(2) NANDContentLoader tried to read all of a title's contents into
memory when it was first opened. Two issues:
- If any contents were missing, it bailed out. However, with DLC,
only some of the contents may be downloaded, as determined by the
permission bits in the ticket. Instead, return an appropriate error
when a content is accessed that doesn't exist on the filesystem
(don't bother checking the permission bits though).
- Everything was loaded into memory - even if it consisted of 3 GB of
songs, which caused Dolphin to lag out for quite a while (and would
fail on 32-bit). Instead, open content on demand.
This is required to be able to move objects that inherit from it.
(Note that this patch also #ifs out the class for the externals that
include it yet are compiled in pre-C++11 mode. It shouldn't matter,
since those externals don't use it.)
saves like super smash bros brawl, mario kart, etc which use simple copy restriction via the banner file are now able to be imported natively with the wii/wiiU system menu
save files which include subdirs are correctly packaged
NOTE: saves which include 'nocopy'/'nomove' folders will likely always require homebrew
adds feature to export all wii saves
- Make "copy data into bundle" depend on the files actually being
changed, rather than being run on every build.
- postprocess_bundle depends on system files and checking the Dolphin
binary and all that, and would be iffy to try to avoid rerunning;
but it's only needed to produce a redistributable bundle, so add
SKIP_POSTPROCESS_BUNDLE to skip it for development.