When we use DialogSocket with std::vector it often call copy constructor instead assigment operator to copy DialogSocket into new location. DialogSocket don't have explicit copy constructor so C++ compiler use copy constructor by default (i.e. simple copy internal pointers). This cause the
DialogSocket to segfault because more than one instance of DialogSocket are pointed to the same internal buffer and when one of this are destroyed it destroys its internal buffer and other instances left pointed to deallocated memory.
Sergey N. Yatskevichsnc@spectrum-soft.ru