mirror of https://github.com/stella-emu/stella.git
In my never-ending attempt to eliminate pointers whereever possible,
change all throws of 'const char*' to runtime_error. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3168 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
99f88719e5
commit
c5819cae46
|
@ -180,9 +180,9 @@ uInt32 FilesystemNodeZIP::read(uInt8*& image) const
|
||||||
switch(_error)
|
switch(_error)
|
||||||
{
|
{
|
||||||
case ZIPERR_NONE: break;
|
case ZIPERR_NONE: break;
|
||||||
case ZIPERR_NOT_A_FILE: throw "ZIP file contains errors/not found";
|
case ZIPERR_NOT_A_FILE: throw runtime_error("ZIP file contains errors/not found");
|
||||||
case ZIPERR_NOT_READABLE: throw "ZIP file not readable";
|
case ZIPERR_NOT_READABLE: throw runtime_error("ZIP file not readable");
|
||||||
case ZIPERR_NO_ROMS: throw "ZIP file doesn't contain any ROMs";
|
case ZIPERR_NO_ROMS: throw runtime_error("ZIP file doesn't contain any ROMs");
|
||||||
}
|
}
|
||||||
|
|
||||||
ZipHandler& zip = open(_zipFile);
|
ZipHandler& zip = open(_zipFile);
|
||||||
|
|
|
@ -46,7 +46,7 @@ FrameBufferSDL2::FrameBufferSDL2(OSystem& osystem)
|
||||||
ostringstream buf;
|
ostringstream buf;
|
||||||
buf << "ERROR: Couldn't initialize SDL: " << SDL_GetError() << endl;
|
buf << "ERROR: Couldn't initialize SDL: " << SDL_GetError() << endl;
|
||||||
myOSystem.logMessage(buf.str(), 0);
|
myOSystem.logMessage(buf.str(), 0);
|
||||||
throw "FATAL ERROR";
|
throw runtime_error("FATAL ERROR");
|
||||||
}
|
}
|
||||||
myOSystem.logMessage("FrameBufferSDL2::FrameBufferSDL2 SDL_Init()", 2);
|
myOSystem.logMessage("FrameBufferSDL2::FrameBufferSDL2 SDL_Init()", 2);
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ done:
|
||||||
png_destroy_read_struct(&png_ptr, info_ptr ? &info_ptr : (png_infopp)0, (png_infopp)0);
|
png_destroy_read_struct(&png_ptr, info_ptr ? &info_ptr : (png_infopp)0, (png_infopp)0);
|
||||||
|
|
||||||
if(err_message)
|
if(err_message)
|
||||||
throw err_message;
|
throw runtime_error(err_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -131,7 +131,7 @@ void PNGLibrary::saveImage(const string& filename, const VariantList& comments)
|
||||||
{
|
{
|
||||||
ofstream out(filename, ios_base::binary);
|
ofstream out(filename, ios_base::binary);
|
||||||
if(!out.is_open())
|
if(!out.is_open())
|
||||||
throw "ERROR: Couldn't create snapshot file";
|
throw runtime_error("ERROR: Couldn't create snapshot file");
|
||||||
|
|
||||||
const GUI::Rect& rect = myFB.imageRect();
|
const GUI::Rect& rect = myFB.imageRect();
|
||||||
png_uint_32 width = rect.width(), height = rect.height();
|
png_uint_32 width = rect.width(), height = rect.height();
|
||||||
|
@ -155,7 +155,7 @@ void PNGLibrary::saveImage(const string& filename, const FBSurface& surface,
|
||||||
{
|
{
|
||||||
ofstream out(filename, ios_base::binary);
|
ofstream out(filename, ios_base::binary);
|
||||||
if(!out.is_open())
|
if(!out.is_open())
|
||||||
throw "ERROR: Couldn't create snapshot file";
|
throw runtime_error("ERROR: Couldn't create snapshot file");
|
||||||
|
|
||||||
// Do we want the entire surface or just a section?
|
// Do we want the entire surface or just a section?
|
||||||
png_uint_32 width = rect.width(), height = rect.height();
|
png_uint_32 width = rect.width(), height = rect.height();
|
||||||
|
@ -240,7 +240,7 @@ done:
|
||||||
if (rows)
|
if (rows)
|
||||||
delete[] rows;
|
delete[] rows;
|
||||||
if(err_message)
|
if(err_message)
|
||||||
throw err_message;
|
throw runtime_error(err_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -338,22 +338,19 @@ void PNGLibrary::png_write_data(png_structp ctx, png_bytep area, png_size_t size
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void PNGLibrary::png_io_flush(png_structp ctx)
|
void PNGLibrary::png_io_flush(png_structp ctx)
|
||||||
{
|
{
|
||||||
ofstream* stream = (ofstream *) png_get_io_ptr(ctx);
|
((ofstream *) png_get_io_ptr(ctx))->flush();
|
||||||
stream->flush();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void PNGLibrary::png_user_warn(png_structp ctx, png_const_charp str)
|
void PNGLibrary::png_user_warn(png_structp ctx, png_const_charp str)
|
||||||
{
|
{
|
||||||
const string& msg = string("PNGLibrary warning: ") + str;
|
throw runtime_error(string("PNGLibrary warning: ") + str);
|
||||||
throw msg.c_str();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void PNGLibrary::png_user_error(png_structp ctx, png_const_charp str)
|
void PNGLibrary::png_user_error(png_structp ctx, png_const_charp str)
|
||||||
{
|
{
|
||||||
const string& msg = string("PNGLibrary error: ") + str;
|
throw runtime_error(string("PNGLibrary error: ") + str);
|
||||||
throw msg.c_str();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -51,20 +51,21 @@ class PNGLibrary
|
||||||
@param surface The FBSurface into which to place the PNG data
|
@param surface The FBSurface into which to place the PNG data
|
||||||
|
|
||||||
@return On success, the FBSurface containing image data, otherwise a
|
@return On success, the FBSurface containing image data, otherwise a
|
||||||
const char* exception is thrown containing a more detailed
|
runtime_error is thrown containing a more detailed
|
||||||
error message.
|
error message.
|
||||||
*/
|
*/
|
||||||
void loadImage(const string& filename, FBSurface& surface);
|
void loadImage(const string& filename, FBSurface& surface);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current FrameBuffer image to a PNG file. Note that in most cases
|
Save the current FrameBuffer image to a PNG file. Note that in most
|
||||||
this will be a TIA image, but it could actually be used for *any* mode.
|
cases this will be a TIA image, but it could actually be used for
|
||||||
|
*any* mode.
|
||||||
|
|
||||||
@param filename The filename to save the PNG image
|
@param filename The filename to save the PNG image
|
||||||
@param comments The text comments to add to the PNG image
|
@param comments The text comments to add to the PNG image
|
||||||
|
|
||||||
@return On success, the PNG file has been saved to 'filename',
|
@return On success, the PNG file has been saved to 'filename',
|
||||||
otherwise a const char* exception is thrown containing a
|
otherwise a runtime_error is thrown containing a
|
||||||
more detailed error message.
|
more detailed error message.
|
||||||
*/
|
*/
|
||||||
void saveImage(const string& filename,
|
void saveImage(const string& filename,
|
||||||
|
@ -79,7 +80,7 @@ class PNGLibrary
|
||||||
@param comments The text comments to add to the PNG image
|
@param comments The text comments to add to the PNG image
|
||||||
|
|
||||||
@return On success, the PNG file has been saved to 'filename',
|
@return On success, the PNG file has been saved to 'filename',
|
||||||
otherwise a const char* exception is thrown containing a
|
otherwise a runtime_error is thrown containing a
|
||||||
more detailed error message.
|
more detailed error message.
|
||||||
*/
|
*/
|
||||||
void saveImage(const string& filename, const FBSurface& surface,
|
void saveImage(const string& filename, const FBSurface& surface,
|
||||||
|
|
|
@ -113,11 +113,11 @@ uInt32 ZipHandler::decompress(uInt8*& image)
|
||||||
{
|
{
|
||||||
delete[] image; image = nullptr;
|
delete[] image; image = nullptr;
|
||||||
|
|
||||||
throw zip_error_s[err];
|
throw runtime_error(zip_error_s[err]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw "Invalid ZIP archive";
|
throw runtime_error("Invalid ZIP archive");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
|
|
|
@ -495,11 +495,11 @@ void PromptWidget::loadConfig()
|
||||||
{
|
{
|
||||||
// Display greetings & prompt
|
// Display greetings & prompt
|
||||||
string version = string("Stella ") + STELLA_VERSION + "\n";
|
string version = string("Stella ") + STELLA_VERSION + "\n";
|
||||||
print(version.c_str());
|
print(version);
|
||||||
print(PROMPT);
|
print(PROMPT);
|
||||||
|
|
||||||
// Take care of one-time debugger stuff
|
// Take care of one-time debugger stuff
|
||||||
print(instance().debugger().autoExec().c_str());
|
print(instance().debugger().autoExec());
|
||||||
print(instance().debugger().cartDebug().loadConfigFile() + "\n");
|
print(instance().debugger().cartDebug().loadConfigFile() + "\n");
|
||||||
print(instance().debugger().cartDebug().loadListFile() + "\n");
|
print(instance().debugger().cartDebug().loadListFile() + "\n");
|
||||||
print(instance().debugger().cartDebug().loadSymbolFile() + "\n");
|
print(instance().debugger().cartDebug().loadSymbolFile() + "\n");
|
||||||
|
|
|
@ -82,9 +82,9 @@ void TiaOutputWidget::saveSnapshot()
|
||||||
{
|
{
|
||||||
instance().png().saveImage(sspath.str(), s, rect);
|
instance().png().saveImage(sspath.str(), s, rect);
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
message = msg;
|
message = e.what();
|
||||||
}
|
}
|
||||||
instance().frameBuffer().showMessage(message);
|
instance().frameBuffer().showMessage(message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -257,15 +257,9 @@ Cartridge* Cartridge::create(const uInt8* image, uInt32 size, string& md5,
|
||||||
else if(type == "X07")
|
else if(type == "X07")
|
||||||
cartridge = new CartridgeX07(image, size, settings);
|
cartridge = new CartridgeX07(image, size, settings);
|
||||||
else if(dtype == "WRONG_SIZE")
|
else if(dtype == "WRONG_SIZE")
|
||||||
{
|
throw runtime_error("Invalid cart size for type '" + type + "'");
|
||||||
string err = "Invalid cart size for type '" + type + "'";
|
|
||||||
throw err.c_str();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
throw runtime_error("Invalid cart type '" + type + "'");
|
||||||
string err = "Invalid cart type '" + type + "'";
|
|
||||||
throw err.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(size < 1024)
|
if(size < 1024)
|
||||||
buf << " (" << size << "B) ";
|
buf << " (" << size << "B) ";
|
||||||
|
|
|
@ -199,13 +199,13 @@ inline void CartridgeDPCPlus::callFunction(uInt8 value)
|
||||||
try {
|
try {
|
||||||
myThumbEmulator->run();
|
myThumbEmulator->run();
|
||||||
}
|
}
|
||||||
catch(const string& error) {
|
catch(const runtime_error& e) {
|
||||||
if(!mySystem->autodetectMode())
|
if(!mySystem->autodetectMode())
|
||||||
{
|
{
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
Debugger::debugger().startWithFatalError(error);
|
Debugger::debugger().startWithFatalError(e.what());
|
||||||
#else
|
#else
|
||||||
cout << error << endl;
|
cout << e.what() << endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1781,9 +1781,9 @@ void EventHandler::takeSnapshot(uInt32 number)
|
||||||
const FBSurface& surface = myOSystem.frameBuffer().tiaSurface().baseSurface(rect);
|
const FBSurface& surface = myOSystem.frameBuffer().tiaSurface().baseSurface(rect);
|
||||||
myOSystem.png().saveImage(filename, surface, rect, comments);
|
myOSystem.png().saveImage(filename, surface, rect, comments);
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
message = msg;
|
message = e.what();
|
||||||
}
|
}
|
||||||
if(showmessage)
|
if(showmessage)
|
||||||
myOSystem.frameBuffer().showMessage(message);
|
myOSystem.frameBuffer().showMessage(message);
|
||||||
|
@ -1798,9 +1798,9 @@ void EventHandler::takeSnapshot(uInt32 number)
|
||||||
{
|
{
|
||||||
myOSystem.png().saveImage(filename, comments);
|
myOSystem.png().saveImage(filename, comments);
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
message = msg;
|
message = e.what();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Re-enable old messages
|
// Re-enable old messages
|
||||||
|
|
|
@ -185,7 +185,7 @@ uInt32 FilesystemNode::read(uInt8*& image) const
|
||||||
|
|
||||||
// File must actually exist
|
// File must actually exist
|
||||||
if(!(exists() && isReadable()))
|
if(!(exists() && isReadable()))
|
||||||
throw "File not found/readable";
|
throw runtime_error("File not found/readable");
|
||||||
|
|
||||||
// Otherwise, assume the file is either gzip'ed or not compressed at all
|
// Otherwise, assume the file is either gzip'ed or not compressed at all
|
||||||
gzFile f = gzopen(getPath().c_str(), "rb");
|
gzFile f = gzopen(getPath().c_str(), "rb");
|
||||||
|
@ -198,10 +198,10 @@ uInt32 FilesystemNode::read(uInt8*& image) const
|
||||||
if(size == 0)
|
if(size == 0)
|
||||||
{
|
{
|
||||||
delete[] image; image = nullptr;
|
delete[] image; image = nullptr;
|
||||||
throw "Zero-byte file";
|
throw runtime_error("Zero-byte file");
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw "ZLIB open/read error";
|
throw runtime_error("ZLIB open/read error");
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,9 +314,9 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum,
|
||||||
closeConsole();
|
closeConsole();
|
||||||
myConsole = openConsole(myRomFile, myRomMD5, type, id);
|
myConsole = openConsole(myRomFile, myRomMD5, type, id);
|
||||||
}
|
}
|
||||||
catch(const char* err_msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
buf << "ERROR: Couldn't create console (" << err_msg << ")";
|
buf << "ERROR: Couldn't create console (" << e.what() << ")";
|
||||||
logMessage(buf.str(), 0);
|
logMessage(buf.str(), 0);
|
||||||
return buf.str();
|
return buf.str();
|
||||||
}
|
}
|
||||||
|
@ -439,10 +439,10 @@ string OSystem::getROMInfo(const FilesystemNode& romfile)
|
||||||
{
|
{
|
||||||
console = openConsole(romfile, md5, type, id);
|
console = openConsole(romfile, md5, type, id);
|
||||||
}
|
}
|
||||||
catch(const char* err_msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
ostringstream buf;
|
ostringstream buf;
|
||||||
buf << "ERROR: Couldn't get ROM info (" << err_msg << ")";
|
buf << "ERROR: Couldn't get ROM info (" << e.what() << ")";
|
||||||
return buf.str();
|
return buf.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ string Thumbulator::run( void )
|
||||||
{
|
{
|
||||||
if (execute()) break;
|
if (execute()) break;
|
||||||
if (instructions > 500000) // way more than would otherwise be possible
|
if (instructions > 500000) // way more than would otherwise be possible
|
||||||
throw "instructions > 500000";
|
throw runtime_error("instructions > 500000");
|
||||||
}
|
}
|
||||||
#if defined(THUMB_DISS) || defined(THUMB_DBUG)
|
#if defined(THUMB_DISS) || defined(THUMB_DBUG)
|
||||||
dump_counters();
|
dump_counters();
|
||||||
|
@ -84,7 +84,7 @@ inline int Thumbulator::fatalError(const char* opcode, uInt32 v1, const char* ms
|
||||||
<< opcode << "(" << Base::HEX8 << v1 << "), " << msg << endl;
|
<< opcode << "(" << Base::HEX8 << v1 << "), " << msg << endl;
|
||||||
dump_regs();
|
dump_regs();
|
||||||
if(trapOnFatal)
|
if(trapOnFatal)
|
||||||
throw statusMsg.str();
|
throw runtime_error(statusMsg.str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ inline int Thumbulator::fatalError(const char* opcode, uInt32 v1, uInt32 v2,
|
||||||
<< opcode << "(" << Base::HEX8 << v1 << "," << v2 << "), " << msg << endl;
|
<< opcode << "(" << Base::HEX8 << v1 << "," << v2 << "), " << msg << endl;
|
||||||
dump_regs();
|
dump_regs();
|
||||||
if(trapOnFatal)
|
if(trapOnFatal)
|
||||||
throw statusMsg.str();
|
throw runtime_error(statusMsg.str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ void Thumbulator::write32 ( uInt32 addr, uInt32 data )
|
||||||
{
|
{
|
||||||
case 0xF0000000: //halt
|
case 0xF0000000: //halt
|
||||||
dump_counters();
|
dump_counters();
|
||||||
throw "HALT";// exit(0);
|
throw runtime_error("HALT");// exit(0);
|
||||||
|
|
||||||
case 0xE0000000: //periph
|
case 0xE0000000: //periph
|
||||||
switch(addr)
|
switch(addr)
|
||||||
|
|
|
@ -66,7 +66,7 @@ class Thumbulator
|
||||||
~Thumbulator();
|
~Thumbulator();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Run the ARM code, and return when finished. A string exception is
|
Run the ARM code, and return when finished. A runtime_error exception is
|
||||||
thrown in case of any fatal errors/aborts (if enabled), containing the
|
thrown in case of any fatal errors/aborts (if enabled), containing the
|
||||||
actual error, and the contents of the registers at that point in time.
|
actual error, and the contents of the registers at that point in time.
|
||||||
|
|
||||||
|
@ -107,8 +107,8 @@ class Thumbulator
|
||||||
void do_cflag_bit ( uInt32 x );
|
void do_cflag_bit ( uInt32 x );
|
||||||
void do_vflag_bit ( uInt32 x );
|
void do_vflag_bit ( uInt32 x );
|
||||||
|
|
||||||
// Throw a string exception containing an error referencing the given
|
// Throw a runtime_error exception containing an error referencing the
|
||||||
// message and variables
|
// given message and variables
|
||||||
// Note that the return value is never used in these methods
|
// Note that the return value is never used in these methods
|
||||||
int fatalError(const char* opcode, uInt32 v1, const char* msg);
|
int fatalError(const char* opcode, uInt32 v1, const char* msg);
|
||||||
int fatalError(const char* opcode, uInt32 v1, uInt32 v2, const char* msg);
|
int fatalError(const char* opcode, uInt32 v1, uInt32 v2, const char* msg);
|
||||||
|
|
|
@ -108,10 +108,10 @@ void RomInfoWidget::parseProperties()
|
||||||
float scale = BSPF_min(float(myAvail.w) / src.width(), float(myAvail.h) / src.height());
|
float scale = BSPF_min(float(myAvail.w) / src.width(), float(myAvail.h) / src.height());
|
||||||
mySurface->setDstSize(uInt32(src.width() * scale), uInt32(src.height() * scale));
|
mySurface->setDstSize(uInt32(src.width() * scale), uInt32(src.height() * scale));
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const runtime_error& e)
|
||||||
{
|
{
|
||||||
mySurfaceIsValid = false;
|
mySurfaceIsValid = false;
|
||||||
mySurfaceErrorMsg = msg;
|
mySurfaceErrorMsg = e.what();
|
||||||
}
|
}
|
||||||
if(mySurface)
|
if(mySurface)
|
||||||
mySurface->setVisible(mySurfaceIsValid);
|
mySurface->setVisible(mySurfaceIsValid);
|
||||||
|
|
Loading…
Reference in New Issue