mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-10 23:48:04 +02:00
Throw std::runtime_exception instead of a pointer to new one
cf. https://isocpp.org/wiki/faq/exceptions#what-to-throw
This commit is contained in:
parent
2a282c9a8e
commit
0ff2e1180d
@ -55,7 +55,7 @@ CZipOutputStream::CZipOutputStream(CZipSaver * owner_, zipFile archive, const st
|
|||||||
);
|
);
|
||||||
|
|
||||||
if(status != ZIP_OK)
|
if(status != ZIP_OK)
|
||||||
throw new std::runtime_error("CZipOutputStream: zipOpenNewFileInZip failed");
|
throw std::runtime_error("CZipOutputStream: zipOpenNewFileInZip failed");
|
||||||
|
|
||||||
owner->activeStream = this;
|
owner->activeStream = this;
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ CZipSaver::CZipSaver(std::shared_ptr<CIOApi> api, const boost::filesystem::path
|
|||||||
handle = zipOpen2_64((const void *) & path, APPEND_STATUS_CREATE, nullptr, &zipApi);
|
handle = zipOpen2_64((const void *) & path, APPEND_STATUS_CREATE, nullptr, &zipApi);
|
||||||
|
|
||||||
if (handle == nullptr)
|
if (handle == nullptr)
|
||||||
throw new std::runtime_error("CZipSaver: Failed to create archive");
|
throw std::runtime_error("CZipSaver: Failed to create archive");
|
||||||
}
|
}
|
||||||
|
|
||||||
CZipSaver::~CZipSaver()
|
CZipSaver::~CZipSaver()
|
||||||
@ -112,7 +112,7 @@ CZipSaver::~CZipSaver()
|
|||||||
std::unique_ptr<COutputStream> CZipSaver::addFile(const std::string & archiveFilename)
|
std::unique_ptr<COutputStream> CZipSaver::addFile(const std::string & archiveFilename)
|
||||||
{
|
{
|
||||||
if(activeStream != nullptr)
|
if(activeStream != nullptr)
|
||||||
throw new std::runtime_error("CZipSaver::addFile: stream already opened");
|
throw std::runtime_error("CZipSaver::addFile: stream already opened");
|
||||||
|
|
||||||
std::unique_ptr<COutputStream> stream(new CZipOutputStream(this, handle, archiveFilename));
|
std::unique_ptr<COutputStream> stream(new CZipOutputStream(this, handle, archiveFilename));
|
||||||
return std::move(stream);
|
return std::move(stream);
|
||||||
|
@ -888,7 +888,7 @@ JsonNode CMapLoaderJson::getFromArchive(const std::string & archiveFilename)
|
|||||||
ResourceID resource(archiveFilename, EResType::TEXT);
|
ResourceID resource(archiveFilename, EResType::TEXT);
|
||||||
|
|
||||||
if(!loader.existsResource(resource))
|
if(!loader.existsResource(resource))
|
||||||
throw new std::runtime_error(archiveFilename+" not found");
|
throw std::runtime_error(archiveFilename+" not found");
|
||||||
|
|
||||||
auto data = loader.load(resource)->readAll();
|
auto data = loader.load(resource)->readAll();
|
||||||
|
|
||||||
@ -967,7 +967,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
int rawType = vstd::find_pos(terrainCodes, typeCode);
|
int rawType = vstd::find_pos(terrainCodes, typeCode);
|
||||||
|
|
||||||
if(rawType < 0)
|
if(rawType < 0)
|
||||||
throw new std::runtime_error("Invalid terrain type code in "+src);
|
throw std::runtime_error("Invalid terrain type code in "+src);
|
||||||
|
|
||||||
tile.terType = ETerrainType(rawType);
|
tile.terType = ETerrainType(rawType);
|
||||||
}
|
}
|
||||||
@ -978,7 +978,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
pos++;
|
pos++;
|
||||||
int len = pos - startPos;
|
int len = pos - startPos;
|
||||||
if(len<=0)
|
if(len<=0)
|
||||||
throw new std::runtime_error("Invalid terrain view in "+src);
|
throw std::runtime_error("Invalid terrain view in "+src);
|
||||||
const std::string rawCode = src.substr(startPos, len);
|
const std::string rawCode = src.substr(startPos, len);
|
||||||
tile.terView = atoi(rawCode.c_str());
|
tile.terView = atoi(rawCode.c_str());
|
||||||
startPos+=len;
|
startPos+=len;
|
||||||
@ -986,7 +986,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
{//terrain flip
|
{//terrain flip
|
||||||
int terrainFlip = vstd::find_pos(flipCodes, src.at(startPos++));
|
int terrainFlip = vstd::find_pos(flipCodes, src.at(startPos++));
|
||||||
if(terrainFlip < 0)
|
if(terrainFlip < 0)
|
||||||
throw new std::runtime_error("Invalid terrain flip in "+src);
|
throw std::runtime_error("Invalid terrain flip in "+src);
|
||||||
else
|
else
|
||||||
tile.extTileFlags = terrainFlip;
|
tile.extTileFlags = terrainFlip;
|
||||||
}
|
}
|
||||||
@ -1001,7 +1001,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
{
|
{
|
||||||
rawType = vstd::find_pos(riverCodes, typeCode);
|
rawType = vstd::find_pos(riverCodes, typeCode);
|
||||||
if(rawType < 0)
|
if(rawType < 0)
|
||||||
throw new std::runtime_error("Invalid river type in "+src);
|
throw std::runtime_error("Invalid river type in "+src);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tile.riverType = ERiverType::ERiverType(rawType);
|
tile.riverType = ERiverType::ERiverType(rawType);
|
||||||
@ -1018,7 +1018,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
pos++;
|
pos++;
|
||||||
int len = pos - startPos;
|
int len = pos - startPos;
|
||||||
if(len<=0)
|
if(len<=0)
|
||||||
throw new std::runtime_error("Invalid road dir in "+src);
|
throw std::runtime_error("Invalid road dir in "+src);
|
||||||
const std::string rawCode = src.substr(startPos, len);
|
const std::string rawCode = src.substr(startPos, len);
|
||||||
tile.roadDir = atoi(rawCode.c_str());
|
tile.roadDir = atoi(rawCode.c_str());
|
||||||
startPos+=len;
|
startPos+=len;
|
||||||
@ -1027,7 +1027,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
{//road flip
|
{//road flip
|
||||||
int flip = vstd::find_pos(flipCodes, src.at(startPos++));
|
int flip = vstd::find_pos(flipCodes, src.at(startPos++));
|
||||||
if(flip < 0)
|
if(flip < 0)
|
||||||
throw new std::runtime_error("Invalid road flip in "+src);
|
throw std::runtime_error("Invalid road flip in "+src);
|
||||||
else
|
else
|
||||||
tile.extTileFlags |= (flip<<4);
|
tile.extTileFlags |= (flip<<4);
|
||||||
}
|
}
|
||||||
@ -1039,7 +1039,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
startPos+=2;
|
startPos+=2;
|
||||||
int rawType = vstd::find_pos(riverCodes, typeCode);
|
int rawType = vstd::find_pos(riverCodes, typeCode);
|
||||||
if(rawType < 0)
|
if(rawType < 0)
|
||||||
throw new std::runtime_error("Invalid river type in "+src);
|
throw std::runtime_error("Invalid river type in "+src);
|
||||||
tile.riverType = ERiverType::ERiverType(rawType);
|
tile.riverType = ERiverType::ERiverType(rawType);
|
||||||
}
|
}
|
||||||
{//river dir
|
{//river dir
|
||||||
@ -1048,7 +1048,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
pos++;
|
pos++;
|
||||||
int len = pos - startPos;
|
int len = pos - startPos;
|
||||||
if(len<=0)
|
if(len<=0)
|
||||||
throw new std::runtime_error("Invalid river dir in "+src);
|
throw std::runtime_error("Invalid river dir in "+src);
|
||||||
const std::string rawCode = src.substr(startPos, len);
|
const std::string rawCode = src.substr(startPos, len);
|
||||||
tile.riverDir = atoi(rawCode.c_str());
|
tile.riverDir = atoi(rawCode.c_str());
|
||||||
startPos+=len;
|
startPos+=len;
|
||||||
@ -1056,7 +1056,7 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile
|
|||||||
{//river flip
|
{//river flip
|
||||||
int flip = vstd::find_pos(flipCodes, src.at(startPos++));
|
int flip = vstd::find_pos(flipCodes, src.at(startPos++));
|
||||||
if(flip < 0)
|
if(flip < 0)
|
||||||
throw new std::runtime_error("Invalid road flip in "+src);
|
throw std::runtime_error("Invalid road flip in "+src);
|
||||||
else
|
else
|
||||||
tile.extTileFlags |= (flip<<2);
|
tile.extTileFlags |= (flip<<2);
|
||||||
}
|
}
|
||||||
@ -1069,14 +1069,14 @@ void CMapLoaderJson::readTerrainLevel(const JsonNode & src, const int index)
|
|||||||
const JsonVector & rows = src.Vector();
|
const JsonVector & rows = src.Vector();
|
||||||
|
|
||||||
if(rows.size() != map->height)
|
if(rows.size() != map->height)
|
||||||
throw new std::runtime_error("Invalid terrain data");
|
throw std::runtime_error("Invalid terrain data");
|
||||||
|
|
||||||
for(pos.y = 0; pos.y < map->height; pos.y++)
|
for(pos.y = 0; pos.y < map->height; pos.y++)
|
||||||
{
|
{
|
||||||
const JsonVector & tiles = rows[pos.y].Vector();
|
const JsonVector & tiles = rows[pos.y].Vector();
|
||||||
|
|
||||||
if(tiles.size() != map->width)
|
if(tiles.size() != map->width)
|
||||||
throw new std::runtime_error("Invalid terrain data");
|
throw std::runtime_error("Invalid terrain data");
|
||||||
|
|
||||||
for(pos.x = 0; pos.x < map->width; pos.x++)
|
for(pos.x = 0; pos.x < map->width; pos.x++)
|
||||||
readTerrainTile(tiles[pos.x].String(), map->getTile(pos));
|
readTerrainTile(tiles[pos.x].String(), map->getTile(pos));
|
||||||
@ -1247,7 +1247,7 @@ void CMapSaverJson::addToArchive(const JsonNode & data, const std::string & file
|
|||||||
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
||||||
|
|
||||||
if (stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
if (stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
||||||
throw new std::runtime_error("CMapSaverJson::saveHeader() zip compression failed.");
|
throw std::runtime_error("CMapSaverJson::saveHeader() zip compression failed.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ const CSpell::LevelInfo & CSpell::getLevelInfo(const int level) const
|
|||||||
if(level < 0 || level >= GameConstants::SPELL_SCHOOL_LEVELS)
|
if(level < 0 || level >= GameConstants::SPELL_SCHOOL_LEVELS)
|
||||||
{
|
{
|
||||||
logGlobal->error("CSpell::getLevelInfo invalid school level %d", level);
|
logGlobal->error("CSpell::getLevelInfo invalid school level %d", level);
|
||||||
throw new std::runtime_error("Invalid school level");
|
throw std::runtime_error("Invalid school level");
|
||||||
}
|
}
|
||||||
|
|
||||||
return levels.at(level);
|
return levels.at(level);
|
||||||
|
@ -84,7 +84,7 @@ static JsonNode getFromArchive(CZipLoader & archive, const std::string & archive
|
|||||||
ResourceID resource(archiveFilename, EResType::TEXT);
|
ResourceID resource(archiveFilename, EResType::TEXT);
|
||||||
|
|
||||||
if(!archive.existsResource(resource))
|
if(!archive.existsResource(resource))
|
||||||
throw new std::runtime_error(archiveFilename+" not found");
|
throw std::runtime_error(archiveFilename+" not found");
|
||||||
|
|
||||||
auto data = archive.load(resource)->readAll();
|
auto data = archive.load(resource)->readAll();
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ static void addToArchive(CZipSaver & saver, const JsonNode & data, const std::st
|
|||||||
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
||||||
|
|
||||||
if(stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
if(stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
||||||
throw new std::runtime_error("CMapSaverJson::saveHeader() zip compression failed.");
|
throw std::runtime_error("CMapSaverJson::saveHeader() zip compression failed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::unique_ptr<CMap> loadOriginal(const JsonNode & header, const JsonNode & objects, const JsonNode & surface, const JsonNode & underground)
|
static std::unique_ptr<CMap> loadOriginal(const JsonNode & header, const JsonNode & objects, const JsonNode & surface, const JsonNode & underground)
|
||||||
|
@ -88,5 +88,5 @@ void MapServiceMock::addToArchive(CZipSaver & saver, const JsonNode & data, cons
|
|||||||
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
std::unique_ptr<COutputStream> stream = saver.addFile(filename);
|
||||||
|
|
||||||
if(stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
if(stream->write((const ui8*)s.c_str(), s.size()) != s.size())
|
||||||
throw new std::runtime_error("addToArchive: zip compression failed.");
|
throw std::runtime_error("addToArchive: zip compression failed.");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user