gnomemm r1998 - in libgdamm/trunk: . libgda/src



Author: arminb
Date: Wed Jan 14 16:52:36 2009
New Revision: 1998
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1998&view=rev

Log:
2009-01-14  Armin Burgmeier  <armin openismus com>

	* libgda/src/connection.ccg (update_meta_store_table): Don't leak the
	GValue or other dynamically allocated resources.


Modified:
   libgdamm/trunk/ChangeLog
   libgdamm/trunk/libgda/src/connection.ccg

Modified: libgdamm/trunk/libgda/src/connection.ccg
==============================================================================
--- libgdamm/trunk/libgda/src/connection.ccg	(original)
+++ libgdamm/trunk/libgda/src/connection.ccg	Wed Jan 14 16:52:36 2009
@@ -349,13 +349,18 @@
 bool Connection::update_meta_store_table(const Glib::ustring& table_name, std::auto_ptr<Glib::Error>& err)
 #endif
 {
-  GdaMetaContext mcontext = {(gchar*)"_tables", 1, NULL, NULL};
-  mcontext.column_names = g_new (gchar *, 1);
-  mcontext.column_names[0] = (gchar*)"table_name";
-  mcontext.column_values = g_new (GValue *, 1);
-  g_value_set_string ((mcontext.column_values[0] = gda_value_new (G_TYPE_STRING)), table_name.c_str());
+  GValue table_name_value = { 0 };
+  g_value_init(&table_name_value, G_TYPE_STRING);
+  g_value_set_static_string(&table_name_value, table_name.c_str());
+
+  gchar* column_names[] = { (gchar*)"table_name" };
+  GValue* column_values[] = { &table_name_value };
+
+  GdaMetaContext mcontext = {(gchar*)"_tables", 1, column_names, column_values };
   GError* gerror = 0;
   bool retval = gda_connection_update_meta_store(gobj(), &mcontext, &gerror);
+
+  g_value_unset(&table_name_value);
   
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
   if(gerror)



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