Browse Source

fix some inventory memory leaks

Kolja Strohm 3 years ago
parent
commit
9028f508a2

+ 5 - 0
FactoryCraft/Block.cpp

@@ -66,6 +66,11 @@ void Block::setDimensionId( int id )
     dimansionId = id;
 }
 
+void api( Framework::StreamReader *zRequest, NetworkResponse *zResponse )
+{
+    // TODO: answer api requests
+}
+
 bool Block::isTickSource() const
 {
     return tickSource;

+ 1 - 0
FactoryCraft/BlockType.cpp

@@ -1,6 +1,7 @@
 #include "BlockType.h"
 #include "ItemType.h"
 #include "BasicBlocks.h"
+#include "Block.h"
 
 using namespace Framework;
 

+ 0 - 1
FactoryCraft/BlockType.h

@@ -5,7 +5,6 @@
 #include <Writer.h>
 
 #include "StaticRegistry.h"
-#include "Block.h"
 
 class Game;
 class Item;

+ 6 - 0
FactoryCraft/ItemSlot.cpp

@@ -12,6 +12,12 @@ ItemSlot::ItemSlot( int maxSize, int pullPriority, int pushPriority, int allowed
     allowHigherStackSize( allowHigherStackSize )
 {}
 
+ItemSlot::~ItemSlot()
+{
+    if( items )
+        items->release();
+}
+
 ItemStack *ItemSlot::takeItemsOut( int count, Direction dir )
 {
     if( !items )

+ 1 - 0
FactoryCraft/ItemSlot.h

@@ -16,6 +16,7 @@ private:
 
 public:
     ItemSlot( int maxSize, int pullPriority, int pushPriority, int allowedPullSide, int allowedPushSides, bool allowHigherStackSize );
+    ~ItemSlot();
 
     ItemStack *takeItemsOut( int count, Direction dir );
     void addItems( ItemStack *zStack, Direction dir );

+ 6 - 0
FactoryCraft/ItemStack.cpp

@@ -13,6 +13,12 @@ ItemStack::ItemStack( Item *item, int currentSize )
     : ItemStack( item, currentSize, item->getMaxStackSize() )
 {}
 
+ItemStack::~ItemStack()
+{
+    if( item )
+        item->release();
+}
+
 void ItemStack::setMaxSize( int size )
 {
     maxSize = size;

+ 1 - 0
FactoryCraft/ItemStack.h

@@ -12,6 +12,7 @@ private:
 public:
     ItemStack( Item *item, int currentSize, int maxSize );
     ItemStack( Item *item, int currentSize );
+    ~ItemStack();
 
     void setMaxSize( int size );
     ItemStack *split( int size );