mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Remove SharedPtr, it's not used and will be never used, we use C++11
This commit is contained in:
		@@ -57,7 +57,6 @@ void make_tree(MMVManip &vmanip, v3s16 p0,
 | 
			
		||||
	p1.Y -= 1;
 | 
			
		||||
 | 
			
		||||
	VoxelArea leaves_a(v3s16(-2, -1, -2), v3s16(2, 2, 2));
 | 
			
		||||
	//SharedPtr<u8> leaves_d(new u8[leaves_a.getVolume()]);
 | 
			
		||||
	Buffer<u8> leaves_d(leaves_a.getVolume());
 | 
			
		||||
	for (s32 i = 0; i < leaves_a.getVolume(); i++)
 | 
			
		||||
		leaves_d[i] = 0;
 | 
			
		||||
@@ -780,7 +779,6 @@ void make_pine_tree(MMVManip &vmanip, v3s16 p0, INodeDefManager *ndef, s32 seed)
 | 
			
		||||
	p1.Y -= 1;
 | 
			
		||||
 | 
			
		||||
	VoxelArea leaves_a(v3s16(-3, -6, -3), v3s16(3, 3, 3));
 | 
			
		||||
	//SharedPtr<u8> leaves_d(new u8[leaves_a.getVolume()]);
 | 
			
		||||
	Buffer<u8> leaves_d(leaves_a.getVolume());
 | 
			
		||||
	for (s32 i = 0; i < leaves_a.getVolume(); i++)
 | 
			
		||||
		leaves_d[i] = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -24,80 +24,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
#include "../debug.h" // For assert()
 | 
			
		||||
#include <cstring>
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
class SharedPtr
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	SharedPtr(T *t=NULL)
 | 
			
		||||
	{
 | 
			
		||||
		refcount = new int;
 | 
			
		||||
		*refcount = 1;
 | 
			
		||||
		ptr = t;
 | 
			
		||||
	}
 | 
			
		||||
	SharedPtr(SharedPtr<T> &t)
 | 
			
		||||
	{
 | 
			
		||||
		//*this = t;
 | 
			
		||||
		drop();
 | 
			
		||||
		refcount = t.refcount;
 | 
			
		||||
		(*refcount)++;
 | 
			
		||||
		ptr = t.ptr;
 | 
			
		||||
	}
 | 
			
		||||
	~SharedPtr()
 | 
			
		||||
	{
 | 
			
		||||
		drop();
 | 
			
		||||
	}
 | 
			
		||||
	SharedPtr<T> & operator=(T *t)
 | 
			
		||||
	{
 | 
			
		||||
		drop();
 | 
			
		||||
		refcount = new int;
 | 
			
		||||
		*refcount = 1;
 | 
			
		||||
		ptr = t;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	SharedPtr<T> & operator=(SharedPtr<T> &t)
 | 
			
		||||
	{
 | 
			
		||||
		drop();
 | 
			
		||||
		refcount = t.refcount;
 | 
			
		||||
		(*refcount)++;
 | 
			
		||||
		ptr = t.ptr;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	T* operator->()
 | 
			
		||||
	{
 | 
			
		||||
		return ptr;
 | 
			
		||||
	}
 | 
			
		||||
	T & operator*()
 | 
			
		||||
	{
 | 
			
		||||
		return *ptr;
 | 
			
		||||
	}
 | 
			
		||||
	bool operator!=(T *t)
 | 
			
		||||
	{
 | 
			
		||||
		return ptr != t;
 | 
			
		||||
	}
 | 
			
		||||
	bool operator==(T *t)
 | 
			
		||||
	{
 | 
			
		||||
		return ptr == t;
 | 
			
		||||
	}
 | 
			
		||||
	T & operator[](unsigned int i)
 | 
			
		||||
	{
 | 
			
		||||
		return ptr[i];
 | 
			
		||||
	}
 | 
			
		||||
private:
 | 
			
		||||
	void drop()
 | 
			
		||||
	{
 | 
			
		||||
		assert((*refcount) > 0);
 | 
			
		||||
		(*refcount)--;
 | 
			
		||||
		if(*refcount == 0)
 | 
			
		||||
		{
 | 
			
		||||
			delete refcount;
 | 
			
		||||
			if(ptr != NULL)
 | 
			
		||||
				delete ptr;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	T *ptr;
 | 
			
		||||
	int *refcount;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
class Buffer
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user