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



Author: murrayc
Date: Sun Dec 14 20:00:22 2008
New Revision: 1848
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1848&view=rev

Log:
2008-12-12  Murray Cumming  <murrayc murrayc com>

* libgda/src/datamodeliter.hg: Use refreturn on get_holder_for_field(), 
as we should for most get_*() that return a RefPtr. Add a const 
overload too.
* libgda/src/holder.hg: set_attribute(): Hand-code this so we can 
leak the string, because the (awful, stupid) 
gda_holder_set_attribute() function expects it to be a static string, 
instead of copying it. You haven't heard the last of this, 
gda_holder_set_attribute().


Modified:
   libgdamm/trunk/ChangeLog
   libgdamm/trunk/libgda/src/column.hg
   libgdamm/trunk/libgda/src/connection.hg
   libgdamm/trunk/libgda/src/datahandler.hg
   libgdamm/trunk/libgda/src/datamodel.hg
   libgdamm/trunk/libgda/src/datamodeliter.hg
   libgdamm/trunk/libgda/src/holder.ccg
   libgdamm/trunk/libgda/src/holder.hg
   libgdamm/trunk/libgda/src/row.hg
   libgdamm/trunk/libgda/src/serveroperation.hg
   libgdamm/trunk/libgda/src/set.hg

Modified: libgdamm/trunk/libgda/src/column.hg
==============================================================================
--- libgdamm/trunk/libgda/src/column.hg	(original)
+++ libgdamm/trunk/libgda/src/column.hg	Sun Dec 14 20:00:22 2008
@@ -63,8 +63,8 @@
   _WRAP_METHOD(Glib::ustring get_description() const, gda_column_get_description)
   _WRAP_METHOD(void set_description(const Glib::ustring& title), gda_column_set_description)
 
-  _WRAP_METHOD(void set_attribute (const Glib::ustring& attribute, const Value& value), gda_column_set_attribute);
-  _WRAP_METHOD(Value get_attribute(const Glib::ustring& attribute) const, gda_column_get_attribute);
+  _WRAP_METHOD(void set_attribute(const Glib::ustring& attribute, const Value& value), gda_column_set_attribute)
+  _WRAP_METHOD(Value get_attribute(const Glib::ustring& attribute) const, gda_column_get_attribute)
     
   _WRAP_METHOD(Glib::ustring get_name() const, gda_column_get_name)
   _WRAP_METHOD(void set_name(const Glib::ustring& name), gda_column_set_name)

Modified: libgdamm/trunk/libgda/src/connection.hg
==============================================================================
--- libgdamm/trunk/libgda/src/connection.hg	(original)
+++ libgdamm/trunk/libgda/src/connection.hg	Sun Dec 14 20:00:22 2008
@@ -142,7 +142,7 @@
   _WRAP_METHOD(Glib::RefPtr<DataModel> statement_execute_select_full(const Glib::RefPtr<Statement>& stmt, const Glib::RefPtr<Set>& params, StatementModelUsage model_usage, const Glib::ArrayHandle<GType>& col_types), gda_connection_statement_execute_select_full, errthrow)
   _IGNORE(gda_connection_statement_execute_select_fullv)
   
-  _WRAP_METHOD_DOCS_ONLY(gda_connection_statement_execute_non_select);
+  _WRAP_METHOD_DOCS_ONLY(gda_connection_statement_execute_non_select)
 
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
   int statement_execute_non_select(const Glib::RefPtr<Statement>& stmt, const Glib::RefPtr<Set>& params, Glib::RefPtr<Set>& last_insert_row);
@@ -211,8 +211,8 @@
   Glib::RefPtr<DataModel> Connection::get_meta_store_data(ConnectionMetaType meta_type, std::auto_ptr<Glib::Error>& error);
   #endif //GLIBMM_EXCEPTIONS_ENABLED
 
-  _WRAP_METHOD(Glib::RefPtr<MetaStore> get_meta_store(), gda_connection_get_meta_store);
-  _WRAP_METHOD(Glib::RefPtr<const MetaStore> get_meta_store() const, gda_connection_get_meta_store, consversion);
+  _WRAP_METHOD(Glib::RefPtr<MetaStore> get_meta_store(), gda_connection_get_meta_store)
+  _WRAP_METHOD(Glib::RefPtr<const MetaStore> get_meta_store() const, gda_connection_get_meta_store, consversion)
 
   #m4 _CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<Glib::Object> >',`$2((GSList*)$3, Glib::OWNERSHIP_SHALLOW)')
   _WRAP_METHOD(Glib::SListHandle< Glib::RefPtr<Glib::Object> > batch_execute(const Glib::RefPtr<Batch>& batch, const Glib::RefPtr<Set>& params, StatementModelUsage model_usage), gda_connection_batch_execute, errthrow)

Modified: libgdamm/trunk/libgda/src/datahandler.hg
==============================================================================
--- libgdamm/trunk/libgda/src/datahandler.hg	(original)
+++ libgdamm/trunk/libgda/src/datahandler.hg	Sun Dec 14 20:00:22 2008
@@ -61,9 +61,9 @@
   _WRAP_METHOD(Glib::ustring get_sql_from_value(const Value& value) const, gda_data_handler_get_sql_from_value)
   _WRAP_METHOD(Glib::ustring get_str_from_value(const Value& value) const, gda_data_handler_get_str_from_value)
 
-  _WRAP_METHOD(Value get_value_from_sql(const Glib::ustring& sql, GType type) const, gda_data_handler_get_value_from_sql);
-  _WRAP_METHOD(Value get_value_from_str(const Glib::ustring& sql, GType type) const, gda_data_handler_get_value_from_str);
-  _WRAP_METHOD(Value get_sane_init_value(GType type) const, gda_data_handler_get_sane_init_value);
+  _WRAP_METHOD(Value get_value_from_sql(const Glib::ustring& sql, GType type) const, gda_data_handler_get_value_from_sql)
+  _WRAP_METHOD(Value get_value_from_str(const Glib::ustring& sql, GType type) const, gda_data_handler_get_value_from_str)
+  _WRAP_METHOD(Value get_sane_init_value(GType type) const, gda_data_handler_get_sane_init_value)
 
   _WRAP_METHOD(unsigned int get_nb_g_types() const, gda_data_handler_get_nb_g_types)
   _WRAP_METHOD(bool accepts_g_type(GType type) const, gda_data_handler_accepts_g_type)

Modified: libgdamm/trunk/libgda/src/datamodel.hg
==============================================================================
--- libgdamm/trunk/libgda/src/datamodel.hg	(original)
+++ libgdamm/trunk/libgda/src/datamodel.hg	Sun Dec 14 20:00:22 2008
@@ -88,7 +88,7 @@
   _WRAP_METHOD(int get_n_rows() const, gda_data_model_get_n_rows)
   _WRAP_METHOD(int get_n_columns() const, gda_data_model_get_n_columns)
 
-  _WRAP_METHOD(int get_column_index(const Glib::ustring& name), gda_data_model_get_column_index);
+  _WRAP_METHOD(int get_column_index(const Glib::ustring& name), gda_data_model_get_column_index)
     
   _WRAP_METHOD(Glib::RefPtr<Column> describe_column(int col), gda_data_model_describe_column, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Column> describe_column(int col) const, gda_data_model_describe_column, refreturn, constversion)
@@ -96,8 +96,8 @@
   _WRAP_METHOD(Glib::ustring get_column_title(int col) const, gda_data_model_get_column_title)
   _WRAP_METHOD(void set_column_title(int col, const Glib::ustring& title), gda_data_model_set_column_title)
 
-  _WRAP_METHOD(Value get_value_at(int col, int row) const, gda_data_model_get_value_at, errthrow);
-  _WRAP_METHOD(Value get_typed_value_at(int col, int row, GType expected_type, bool nullok) const, gda_data_model_get_typed_value_at, errthrow);
+  _WRAP_METHOD(Value get_value_at(int col, int row) const, gda_data_model_get_value_at, errthrow)
+  _WRAP_METHOD(Value get_typed_value_at(int col, int row, GType expected_type, bool nullok) const, gda_data_model_get_typed_value_at, errthrow)
   _WRAP_METHOD(ValueAttribute get_attributes_at(int col, int row), gda_data_model_get_attributes_at)
 
   _WRAP_METHOD(Glib::RefPtr<DataModelIter> create_iter(), gda_data_model_create_iter)

Modified: libgdamm/trunk/libgda/src/datamodeliter.hg
==============================================================================
--- libgdamm/trunk/libgda/src/datamodeliter.hg	(original)
+++ libgdamm/trunk/libgda/src/datamodeliter.hg	Sun Dec 14 20:00:22 2008
@@ -80,7 +80,8 @@
   _WRAP_METHOD(int get_row() const, gda_data_model_iter_get_row)
   _WRAP_METHOD(void invalidate_contents(), gda_data_model_iter_invalidate_contents)
     
-  _WRAP_METHOD(Glib::RefPtr<Holder> get_holder_for_field (int col), gda_data_model_iter_get_holder_for_field)
+  _WRAP_METHOD(Glib::RefPtr<Holder> get_holder_for_field(int col), gda_data_model_iter_get_holder_for_field, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Holder> get_holder_for_field(int col) const, gda_data_model_iter_get_holder_for_field, refreturn)
 
   _WRAP_METHOD(Value get_value_at(int col) const, gda_data_model_iter_get_value_at)
   _WRAP_METHOD(Value get_value_for_field(const Glib::ustring& field_name) const, gda_data_model_iter_get_value_for_field)

Modified: libgdamm/trunk/libgda/src/holder.ccg
==============================================================================
--- libgdamm/trunk/libgda/src/holder.ccg	(original)
+++ libgdamm/trunk/libgda/src/holder.ccg	Sun Dec 14 20:00:22 2008
@@ -34,6 +34,15 @@
 {
 
 }
+
+void Holder::set_attribute(const Glib::ustring& attribute, const Value& value)
+{
+  //gda_holder_set_attribute() has stupid memory management.
+  //Leaking is the only way to make sure that the string stays alive.
+  //TODO: Fix gda_holder_set_attribute().
+  gchar* dup = g_strdup(attribute.c_str());
+  gda_holder_set_attribute(gobj(), dup, (value).gobj()); 
+}
   
 } /* namespace Gda */
 

Modified: libgdamm/trunk/libgda/src/holder.hg
==============================================================================
--- libgdamm/trunk/libgda/src/holder.hg	(original)
+++ libgdamm/trunk/libgda/src/holder.hg	Sun Dec 14 20:00:22 2008
@@ -58,8 +58,12 @@
   _WRAP_METHOD(bool set_value_str(const Glib::RefPtr<DataHandler>& dh, const Glib::ustring& value), gda_holder_set_value_str, errthrow)
   _WRAP_METHOD(bool take_value(const Value& value), gda_holder_take_value, errthrow)
   _WRAP_METHOD(Value take_static_value (const Value& value, bool& value_changed), gda_holder_take_static_value, errthrow)
-  _WRAP_METHOD(void set_attribute(const Glib::ustring& attribute, const Value& value), gda_holder_set_attribute);
-  _WRAP_METHOD(Value get_attribute(const Glib::ustring& attribute) const, gda_holder_get_attribute); 
+
+  void set_attribute(const Glib::ustring& attribute, const Value& value);
+
+  //TODO: gda_holder_set_attribute() has stupid memory management: _WRAP_METHOD(void set_attribute(const Glib::ustring& attribute, const Value& value), gda_holder_set_attribute)
+
+  _WRAP_METHOD(Value get_attribute(const Glib::ustring& attribute) const, gda_holder_get_attribute) 
   
   _WRAP_METHOD(Value get_default_value() const, gda_holder_get_default_value)
   _WRAP_METHOD(void set_default_value(const Value& value), gda_holder_set_default_value)

Modified: libgdamm/trunk/libgda/src/row.hg
==============================================================================
--- libgdamm/trunk/libgda/src/row.hg	(original)
+++ libgdamm/trunk/libgda/src/row.hg	Sun Dec 14 20:00:22 2008
@@ -53,7 +53,7 @@
 public:
   _WRAP_CREATE(int count)
 
-  _WRAP_METHOD(Value get_value(int num), gda_row_get_value);
+  _WRAP_METHOD(Value get_value(int num), gda_row_get_value)
 };
 
 } // namespace Gda

Modified: libgdamm/trunk/libgda/src/serveroperation.hg
==============================================================================
--- libgdamm/trunk/libgda/src/serveroperation.hg	(original)
+++ libgdamm/trunk/libgda/src/serveroperation.hg	Sun Dec 14 20:00:22 2008
@@ -70,11 +70,11 @@
 #endif // GLIBMM_EXCEPTIONS_ENABLED
 
   _WRAP_METHOD(ServerOperationNodeType get_node_type(const Glib::ustring& path, ServerOperationNodeStatus& status) const, gda_server_operation_get_node_type)
-  _WRAP_METHOD(guint get_sequence_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_size);
-  _WRAP_METHOD(guint get_sequence_max_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_max_size);
-  _WRAP_METHOD(guint get_sequence_min_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_min_size);
-  _WRAP_METHOD(Glib::StringArrayHandle get_sequence_item_names(const Glib::ustring& path) const, gda_server_operation_get_sequence_item_names);
-  _WRAP_METHOD(Glib::ustring get_sequence_name(const std::string& path) const, gda_server_operation_get_sequence_name);
+  _WRAP_METHOD(guint get_sequence_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_size)
+  _WRAP_METHOD(guint get_sequence_max_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_max_size)
+  _WRAP_METHOD(guint get_sequence_min_size(const Glib::ustring& path) const, gda_server_operation_get_sequence_min_size)
+  _WRAP_METHOD(Glib::StringArrayHandle get_sequence_item_names(const Glib::ustring& path) const, gda_server_operation_get_sequence_item_names)
+  _WRAP_METHOD(Glib::ustring get_sequence_name(const std::string& path) const, gda_server_operation_get_sequence_name)
 
   //TODO: Is this XML stuff really public API? murrayc.
 
@@ -88,7 +88,7 @@
   
   _WRAP_METHOD(bool del_item_from_sequence(const std::string& item_path), gda_server_operation_del_item_from_sequence)
   _WRAP_METHOD(guint add_item_to_sequence(const std::string& item_path), gda_server_operation_add_item_to_sequence)
-  _WRAP_METHOD(Glib::StringArrayHandle get_root_nodes() const, gda_server_operation_get_root_nodes);
+  _WRAP_METHOD(Glib::StringArrayHandle get_root_nodes() const, gda_server_operation_get_root_nodes)
 
   _WRAP_SIGNAL(void signal_sequence_item_added(Glib::ustring arg1, int arg2), "sequence-item-added", no_default_handler)
   _WRAP_SIGNAL(void signal_sequence_item_remove(Glib::ustring arg1, int arg2), "sequence-item-remove", no_default_handler)

Modified: libgdamm/trunk/libgda/src/set.hg
==============================================================================
--- libgdamm/trunk/libgda/src/set.hg	(original)
+++ libgdamm/trunk/libgda/src/set.hg	Sun Dec 14 20:00:22 2008
@@ -59,7 +59,7 @@
   
   _WRAP_METHOD(Glib::RefPtr<Set> copy(), gda_set_copy)
 
-  _WRAP_METHOD(Value get_holder_value(const Glib::ustring& holder_id) const, gda_set_get_holder_value);
+  _WRAP_METHOD(Value get_holder_value(const Glib::ustring& holder_id) const, gda_set_get_holder_value)
 
   _WRAP_METHOD_DOCS_ONLY(gda_set_set_holder_value)
   template<class T> bool set_holder_value(const Glib::ustring& holder_id, T value);



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