Author: sveinung Date: Wed Aug 20 11:16:12 2014 New Revision: 25958 URL: http://svn.gna.org/viewcvs/freeciv?rev=25958&view=rev Log: SDL clients: Fix segfault during industrial sabotage in a city with no buildings
The dialog were the building to sabotage would only initialize the variable pEndActiveWidgetList when the city had at least one building to sabotage. It would the read it later. Always initialize it. See bug #22495 Modified: trunk/client/gui-sdl/diplomat_dialog.c trunk/client/gui-sdl2/diplomat_dialog.c Modified: trunk/client/gui-sdl/diplomat_dialog.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-sdl/diplomat_dialog.c?rev=25958&r1=25957&r2=25958&view=diff ============================================================================== --- trunk/client/gui-sdl/diplomat_dialog.c (original) +++ trunk/client/gui-sdl/diplomat_dialog.c Wed Aug 20 11:16:12 2014 @@ -990,6 +990,9 @@ add_to_gui_list(ID_SEPARATOR, pBuf); area.h += pBuf->next->size.h; + + pDiplomat_Dlg->pdialog->pEndActiveWidgetList = pBuf; + /* ------------------ */ n = 0; city_built_iterate(pCity, pImprove) { @@ -1005,11 +1008,6 @@ area.w = MAX(area.w , pBuf->size.w); imp_h += pBuf->size.h; - - if (!pDiplomat_Dlg->pdialog->pEndActiveWidgetList) - { - pDiplomat_Dlg->pdialog->pEndActiveWidgetList = pBuf; - } if (n > 9) { set_wflag(pBuf, WF_HIDDEN); Modified: trunk/client/gui-sdl2/diplomat_dialog.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-sdl2/diplomat_dialog.c?rev=25958&r1=25957&r2=25958&view=diff ============================================================================== --- trunk/client/gui-sdl2/diplomat_dialog.c (original) +++ trunk/client/gui-sdl2/diplomat_dialog.c Wed Aug 20 11:16:12 2014 @@ -990,6 +990,9 @@ add_to_gui_list(ID_SEPARATOR, pBuf); area.h += pBuf->next->size.h; + + pDiplomat_Dlg->pdialog->pEndActiveWidgetList = pBuf; + /* ------------------ */ n = 0; city_built_iterate(pCity, pImprove) { @@ -1005,11 +1008,6 @@ area.w = MAX(area.w , pBuf->size.w); imp_h += pBuf->size.h; - - if (!pDiplomat_Dlg->pdialog->pEndActiveWidgetList) - { - pDiplomat_Dlg->pdialog->pEndActiveWidgetList = pBuf; - } if (n > 9) { set_wflag(pBuf, WF_HIDDEN); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits