Fix memory leaks in Tileset

This commit is contained in:
BigBahss
2021-02-16 21:45:54 -05:00
parent 6a825d0b39
commit cc7a5f5819
16 changed files with 147 additions and 215 deletions

View File

@@ -10,7 +10,7 @@ class MetatileParser
{
public:
MetatileParser();
QList<Metatile*> *parse(QString filepath, bool *error, bool primaryTileset);
QList<Metatile*> parse(QString filepath, bool *error, bool primaryTileset);
};
#endif // METATILEPARSER_H

View File

@@ -6,8 +6,20 @@
class Tile
{
public:
Tile() {}
Tile(int tile, bool xflip, bool yflip, int palette);
Tile() :
tile(0),
xflip(false),
yflip(false),
palette(0)
{ }
Tile(int tile, bool xflip, bool yflip, int palette) :
tile(tile),
xflip(xflip),
yflip(yflip),
palette(palette)
{ }
public:
int tile;
bool xflip;

View File

@@ -9,7 +9,10 @@
class Tileset
{
public:
Tileset();
Tileset() = default;
Tileset(const Tileset &other) = default;
Tileset &operator=(const Tileset &other) = default;
public:
QString name;
QString is_compressed;
@@ -24,14 +27,12 @@ public:
QString metatile_attrs_path;
QString tilesImagePath;
QImage tilesImage;
QList<QString> palettePaths;
QStringList palettePaths;
QList<QImage> *tiles = nullptr;
QList<Metatile*> *metatiles = nullptr;
QList<QList<QRgb>> *palettes = nullptr;
QList<QList<QRgb>> *palettePreviews = nullptr;
Tileset* copy();
QList<QImage> tiles;
QList<Metatile*> metatiles;
QList<QList<QRgb>> palettes;
QList<QList<QRgb>> palettePreviews;
static Tileset* getBlockTileset(int, Tileset*, Tileset*);
static Metatile* getMetatile(int, Tileset*, Tileset*);

View File

@@ -77,8 +77,8 @@ public:
Q_INVOKABLE void setPrimaryTilesetPalettes(QList<QList<QList<int>>> palettes);
Q_INVOKABLE void setSecondaryTilesetPalette(int paletteIndex, QList<QList<int>> colors);
Q_INVOKABLE void setSecondaryTilesetPalettes(QList<QList<QList<int>>> palettes);
QJSValue getTilesetPalette(QList<QList<QRgb>> *palettes, int paletteIndex);
QJSValue getTilesetPalettes(QList<QList<QRgb>> *palettes);
QJSValue getTilesetPalette(const QList<QList<QRgb>> &palettes, int paletteIndex);
QJSValue getTilesetPalettes(const QList<QList<QRgb>> &palettes);
Q_INVOKABLE QJSValue getPrimaryTilesetPalette(int paletteIndex);
Q_INVOKABLE QJSValue getPrimaryTilesetPalettes();
Q_INVOKABLE QJSValue getSecondaryTilesetPalette(int paletteIndex);