the cycle when deleted, so when deleting and then adding a radio button, we
get a crash
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35182
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- Added support for left, centre and right text alignment attributes under
GTK+2 multi-line text controls (Mart Raudsepp).
+wxMac:
+
+- Automatic menu management improved.
+- Fixed crash when wxRadioButton is deleted from a group of radio buttons,
+ due to dangling cycle pointers.
+
wxOS2
- Adjustments for building with Open Watcom C++.
{
Create(parent, id, label, pos, size, style, validator, name);
}
+ ~wxRadioButton();
bool Create(wxWindow *parent, wxWindowID id,
const wxString& label,
virtual wxInt32 MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
void Command(wxCommandEvent& event);
wxRadioButton *AddInCycle(wxRadioButton *cycle);
+ void RemoveFromCycle();
inline wxRadioButton *NextInCycle() {return m_cycle;}
protected:
return true;
}
+wxRadioButton::~wxRadioButton()
+{
+ RemoveFromCycle();
+}
+
void wxRadioButton::SetValue(bool val)
{
wxRadioButton *cycle;
}
}
+void wxRadioButton::RemoveFromCycle()
+{
+ if (m_cycle==NULL || m_cycle == this)
+ {
+ return;
+ }
+ else
+ {
+ // Find the previous one and make it point to the next one
+ wxRadioButton* prev = this;
+ while (prev->m_cycle != this)
+ prev = prev->m_cycle;
+ prev->m_cycle = m_cycle;
+ }
+}
+
#endif