gucharmap r1669 - trunk/gucharmap



Author: chpe
Date: Fri Mar 21 10:53:31 2008
New Revision: 1669
URL: http://svn.gnome.org/viewvc/gucharmap?rev=1669&view=rev

Log:
Don't leak the timer.


Modified:
   trunk/gucharmap/gucharmap-search-dialog.c

Modified: trunk/gucharmap/gucharmap-search-dialog.c
==============================================================================
--- trunk/gucharmap/gucharmap-search-dialog.c	(original)
+++ trunk/gucharmap/gucharmap-search-dialog.c	Fri Mar 21 10:53:31 2008
@@ -381,8 +381,8 @@
 idle_search (GucharmapSearchDialog *search_dialog)
 {
   GucharmapSearchDialogPrivate *priv = GUCHARMAP_SEARCH_DIALOG_GET_PRIVATE (search_dialog);
-  GTimer *timer = g_timer_new ();
   gunichar wc;
+  GTimer *timer;
 
   /* search without leading and tailing spaces */
   /* with "match whole word" option, there's no need for leading and tailing spaces */
@@ -390,6 +390,8 @@
   if (quick_checks_before (priv->search_state))
     return FALSE;
 
+  timer = g_timer_new ();
+
   do
     {
       priv->search_state->curr_index = (priv->search_state->curr_index + priv->search_state->increment + priv->search_state->list_num_chars) % priv->search_state->list_num_chars;
@@ -403,6 +405,7 @@
       if (priv->search_state->search_string_value != -1 && priv->search_state->curr_index == priv->search_state->search_string_value)
 	{
 	  priv->search_state->found_index = priv->search_state->curr_index;
+          g_timer_destroy (timer);
 	  return FALSE;
 	}
 
@@ -410,14 +413,20 @@
       if (matches (search_dialog, wc, priv->search_state->search_string_nfd, priv->search_state->annotations))
         {
           priv->search_state->found_index = priv->search_state->curr_index;
+          g_timer_destroy (timer);
           return FALSE;
         }
 
       if (g_timer_elapsed (timer, NULL) > 0.050)
-        return TRUE;
+        {
+          g_timer_destroy (timer);
+          return TRUE;
+        }
     }
   while (priv->search_state->curr_index != priv->search_state->start_index);
 
+  g_timer_destroy (timer);
+
   if (quick_checks_after (priv->search_state))
     return FALSE;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]