From f317906408a8547b96744a84a1b5928adbf4500f Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 5 Feb 2013 08:53:18 +0000 Subject: [PATCH] Set number of returned modes early in the process. Let's be a bit pedantic here, if the number of returned modes is Zero, then just free resources and get out. Signed-off-by: Christopher Michael SVN revision: 83617 --- src/lib/ecore_x/xlib/ecore_x_randr.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c b/src/lib/ecore_x/xlib/ecore_x_randr.c index 9226b055fd..33c0ffc95d 100644 --- a/src/lib/ecore_x/xlib/ecore_x_randr.c +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c @@ -639,6 +639,18 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num) { Ecore_X_Randr_Mode_Info **ret = NULL; + /* set the returned number of modes */ + if (num) *num = res->nmode; + + /* if we did not get any modes from X, then cleanup and return */ + if (res->nmode == 0) + { + /* free the resources */ + XRRFreeScreenResources(res); + + return NULL; + } + /* try to allocate space for our return variable */ if ((ret = (Ecore_X_Randr_Mode_Info **) malloc(res->nmode * sizeof(Ecore_X_Randr_Mode_Info *)))) @@ -682,9 +694,6 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num) } } - /* set the returned number of modes */ - if ((ret) && (num)) *num = res->nmode; - /* free the resources */ XRRFreeScreenResources(res);