If I don't call clear(); on the list before I assign it something else, there's a memory leak.
towrite->brushes.clear();
towrite->brushes = g_edmap.m_brush;
I tried reproducing the problem with lists of a simple dummy class but it doesn't leak memory like the code above.
The variables above are of type list<EdBrush>.
Any ideas why?
class EdBrush
{
public:
int m_nsides;
EdBrushSide* m_sides;
int m_nsharedv;
Vec3f* m_sharedv; //shared vertices array
int m_texture; //used to determine brush attributes
EdDoor* m_door;
EdBrush& operator=(const EdBrush& original);
EdBrush(const EdBrush& original);
EdBrush();
~EdBrush();
void add(EdBrushSide b);
void setsides(int nsides, EdBrushSide* sides);
void copysides(int* nsides, EdBrushSide** sides);
void removeside(int i);
void collapse();
void remaptex();
Vec3f traceray(Vec3f line[]);
void prunev(bool* invalidv);
void moveto(Vec3f newp);
};