mirror of
https://github.com/SFML/CSFML.git
synced 2026-10-24 21:53:37 +02:00
Remove all delete calls outside of _destroy functions
This commit is contained in:
1 parent
ac477cf8b2
commit
5b910f8761
6 files changed
+64
-125
No files matched your search
+11
-21
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +37,6 @@
|
||||
////////////////////////////////////////////////////////////
|
||||
struct sfMusic
|
||||
{
|
||||
CallbackStream Stream;
|
||||
sf::Music This;
|
||||
CallbackStream Stream;
|
||||
};
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -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)};
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user