Remove all delete calls outside of _destroy functions

This commit is contained in:
Chris Thrasher committed 2024-09-18 11:30:12 -04:00
1 parent ac477cf8b2
commit 5b910f8761
6 files changed
+64 -125

No files matched your search

+11 -21
View File
@@ -35,28 +35,22 @@ sfMusic* sfMusic_createFromFile(const char* filename)
{
assert(filename);
auto* music = new sfMusic;
if (!music->This.openFromFile(filename))
{
delete music;
music = nullptr;
}
sf::Music music;
if (!music.openFromFile(filename))
return nullptr;
return music;
return new sfMusic{std::move(music), {}};
}
////////////////////////////////////////////////////////////
sfMusic* sfMusic_createFromMemory(const void* data, size_t sizeInBytes)
{
auto* music = new sfMusic;
if (!music->This.openFromMemory(data, sizeInBytes))
{
delete music;
music = nullptr;
}
sf::Music music;
if (!music.openFromMemory(data, sizeInBytes))
return nullptr;
return music;
return new sfMusic{std::move(music), {}};
}
@@ -65,15 +59,11 @@ sfMusic* sfMusic_createFromStream(sfInputStream* stream)
{
assert(stream);
auto* music = new sfMusic;
music->Stream = CallbackStream(stream);
auto music = std::make_unique<sfMusic>(sfMusic{{}, {stream}});
if (!music->This.openFromStream(music->Stream))
{
delete music;
music = nullptr;
}
return nullptr;
return music;
return music.release();
}
+1 -1
View File
@@ -37,6 +37,6 @@
////////////////////////////////////////////////////////////
struct sfMusic
{
CallbackStream Stream;
sf::Music This;
CallbackStream Stream;
};
+3 -7
View File
@@ -60,15 +60,11 @@ sfFont* sfFont_createFromStream(sfInputStream* stream)
{
assert(stream);
auto* font = new sfFont;
font->Stream = CallbackStream(stream);
auto font = std::make_unique<sfFont>(sfFont{{}, {}, {stream}});
if (!font->This.openFromStream(font->Stream))
{
delete font;
font = nullptr;
}
return nullptr;
return font;
return font.release();
}
+37 -79
View File
@@ -34,19 +34,17 @@
#include <CSFML/System/ConvertVector2.hpp>
#include <CSFML/Window/WindowStruct.hpp>
#include <memory>
////////////////////////////////////////////////////////////
sfTexture* sfTexture_create(sfVector2u size)
{
auto* texture = new sfTexture;
auto texture = std::make_unique<sfTexture>();
if (!texture->This->resize(convertVector2(size)))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
@@ -55,17 +53,12 @@ sfTexture* sfTexture_createFromFile(const char* filename, const sfIntRect* area)
{
assert(filename);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromFile(filename, false, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
@@ -73,49 +66,34 @@ sfTexture* sfTexture_createSrgbFromFile(const char* filename, const sfIntRect* a
{
assert(filename);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromFile(filename, true, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
sfTexture* sfTexture_createFromMemory(const void* data, size_t sizeInBytes, const sfIntRect* area)
{
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromMemory(data, sizeInBytes, false, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
sfTexture* sfTexture_createSrgbFromMemory(const void* data, size_t sizeInBytes, const sfIntRect* area)
{
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromMemory(data, sizeInBytes, true, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
@@ -124,18 +102,13 @@ sfTexture* sfTexture_createFromStream(sfInputStream* stream, const sfIntRect* ar
{
assert(stream);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
CallbackStream sfmlStream(stream);
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromStream(sfmlStream, false, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
@@ -143,18 +116,13 @@ sfTexture* sfTexture_createSrgbFromStream(sfInputStream* stream, const sfIntRect
{
assert(stream);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
CallbackStream sfmlStream(stream);
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromStream(sfmlStream, true, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
@@ -163,17 +131,12 @@ sfTexture* sfTexture_createFromImage(const sfImage* image, const sfIntRect* area
{
assert(image);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromImage(image->This, false, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
@@ -181,17 +144,12 @@ sfTexture* sfTexture_createSrgbFromImage(const sfImage* image, const sfIntRect*
{
assert(image);
auto* texture = new sfTexture;
const sf::IntRect rect = area ? convertRect(*area) : sf::IntRect();
const auto rect = area ? convertRect(*area) : sf::IntRect();
auto texture = std::make_unique<sfTexture>();
if (!texture->This->loadFromImage(image->This, true, rect))
{
delete texture;
texture = nullptr;
}
return nullptr;
return texture;
return texture.release();
}
////////////////////////////////////////////////////////////
+6 -12
View File
@@ -32,20 +32,14 @@
////////////////////////////////////////////////////////////
sfVertexBuffer* sfVertexBuffer_create(unsigned int vertexCount, sfPrimitiveType type, sfVertexBufferUsage usage)
{
auto* buffer = new sfVertexBuffer;
sf::VertexBuffer buffer;
if (!buffer.create(vertexCount))
return nullptr;
if (!buffer->This.create(vertexCount))
{
delete buffer;
buffer = nullptr;
}
else
{
buffer->This.setPrimitiveType(static_cast<sf::PrimitiveType>(type));
buffer->This.setUsage(static_cast<sf::VertexBuffer::Usage>(usage));
}
buffer.setPrimitiveType(static_cast<sf::PrimitiveType>(type));
buffer.setUsage(static_cast<sf::VertexBuffer::Usage>(usage));
return buffer;
return new sfVertexBuffer{std::move(buffer)};
}
+6 -5
View File
@@ -29,6 +29,8 @@
#include <CSFML/Network/TcpListenerStruct.hpp>
#include <CSFML/Network/TcpSocketStruct.hpp>
#include <memory>
////////////////////////////////////////////////////////////
sfTcpListener* sfTcpListener_create()
@@ -90,14 +92,13 @@ sfSocketStatus sfTcpListener_accept(sfTcpListener* listener, sfTcpSocket** conne
assert(listener);
assert(connected);
*connected = new sfTcpSocket;
auto status = static_cast<sfSocketStatus>(listener->This.accept((*connected)->This));
auto socket = std::make_unique<sfTcpSocket>();
auto status = static_cast<sfSocketStatus>(listener->This.accept(socket->This));
if (status != sfSocketDone)
{
delete *connected;
*connected = nullptr;
}
else
*connected = socket.release();
return status;
}