r14978 - gnucash/branches/swig-redo/src - Another pass through converting the engine module from gwrap to swig.

Chris Shoemaker chris at cvs.gnucash.org
Mon Oct 9 20:08:42 EDT 2006


Author: chris
Date: 2006-10-09 20:08:39 -0400 (Mon, 09 Oct 2006)
New Revision: 14978
Trac: http://svn.gnucash.org/trac/changeset/14978

Modified:
   gnucash/branches/swig-redo/src/app-utils/app-utils.i
   gnucash/branches/swig-redo/src/app-utils/gnc-helpers.c
   gnucash/branches/swig-redo/src/app-utils/hooks.scm
   gnucash/branches/swig-redo/src/app-utils/option-util.c
   gnucash/branches/swig-redo/src/business/business-core/business-core.i
   gnucash/branches/swig-redo/src/engine/engine-helpers.c
   gnucash/branches/swig-redo/src/engine/gnc-hooks.c
   gnucash/branches/swig-redo/src/engine/kvp-scm.c
   gnucash/branches/swig-redo/src/import-export/qif-import/druid-qif-import.c
Log:
Another pass through converting the engine module from gwrap to swig.

Remove some temporary swig<->gwrap typemaps that are no longer needed
because some more types have been swigified.  Convert some runtime
code for some engine types from gwrap to the swig api.

Remove a lot of gwrap-specific C code for handling gwrapped enums.
Use '() instead of #f for the empty object.



Modified: gnucash/branches/swig-redo/src/app-utils/app-utils.i
===================================================================
--- gnucash/branches/swig-redo/src/app-utils/app-utils.i	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/app-utils/app-utils.i	2006-10-10 00:08:39 UTC (rev 14978)
@@ -30,19 +30,11 @@
 }
 
 // Temporary SWIG<->G-wrap converters for engine types
-%typemap(in) QofBook * "$1 = (QofBook *)gw_wcp_get_ptr($input);"
-%typemap(out) QofBook * {
-  $result = gw_wcp_assimilate_ptr($1, scm_c_eval_string("<gnc:Book*>"));
-}
 %typemap(in) gboolean "$1 = SCM_NFALSEP($input) ? TRUE : FALSE;"
 %typemap(out) gboolean "$result = $1 ? SCM_BOOL_T : SCM_BOOL_F;"
 
 %typemap(in) gnc_numeric "$1 = gnc_scm_to_numeric($input);"
 %typemap(out) gnc_numeric "$result = gnc_numeric_to_scm($1);"
-%typemap(in) gnc_commodity * "$1 = (gnc_commodity *)gw_wcp_get_ptr($input);"
-%typemap(out) gnc_commodity * {
-  $result = gw_wcp_assimilate_ptr($1, scm_c_eval_string("<gnc:commodity*>"));
-}
 %typemap(in) Account * "$1 = (Account *)gw_wcp_get_ptr($input);"
 %typemap(out) Account * {
   $result = gw_wcp_assimilate_ptr($1, scm_c_eval_string("<gnc:Account*>"));
@@ -51,20 +43,6 @@
 %typemap(out) AccountGroup * {
   $result = gw_wcp_assimilate_ptr($1, scm_c_eval_string("<gnc:AccountGroup*>"));
 }
-%typemap(in) gnc_commodity_table * {
-  $1 = (gnc_commodity_table *)gw_wcp_get_ptr($input);
-}
-%typemap(out) gnc_commodity_table * {
-  $result = gw_wcp_assimilate_ptr($1,
-       scm_c_eval_string("<gnc:commodity-table*>"));
-}
-%typemap(in) gnc_commodity * {
-  $1 = (gnc_commodity *)gw_wcp_get_ptr($input);
-}
-%typemap(out) gnc_commodity * {
-  $result = gw_wcp_assimilate_ptr($1,
-       scm_c_eval_string("<gnc:commodity*>"));
-}
 
 // End of temporary typemaps.
 
@@ -121,9 +99,6 @@
 time_t gnc_accounting_period_fiscal_start(void);
 time_t gnc_accounting_period_fiscal_end(void);
 
-//temporary, until QofIdType is swigified
-
-%typemap(in) QofIdType { $1 = gw_wcp_get_ptr($input); }
 SCM gnc_make_kvp_options(QofIdType id_type);
 void gnc_register_kvp_option_generator(QofIdType id_type, SCM generator);
 

Modified: gnucash/branches/swig-redo/src/app-utils/gnc-helpers.c
===================================================================
--- gnucash/branches/swig-redo/src/app-utils/gnc-helpers.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/app-utils/gnc-helpers.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -26,7 +26,7 @@
 #include <libguile.h>
 #include "guile-mappings.h"
 #include <string.h>
-#include <g-wrap-wct.h>
+#include "swig-runtime.h"
 
 #include "gnc-engine.h"
 #include "engine-helpers.h"
@@ -67,10 +67,12 @@
   info.commodity = gnc_scm_to_commodity (SCM_CAR (info_scm));
 
   info_scm = SCM_CDR (info_scm);
-  info.max_decimal_places = scm_num2int (SCM_CAR (info_scm), SCM_ARG1, __FUNCTION__);
+  info.max_decimal_places = scm_num2int (SCM_CAR (info_scm), SCM_ARG1,
+                                         __FUNCTION__);
 
   info_scm = SCM_CDR (info_scm);
-  info.min_decimal_places = scm_num2int (SCM_CAR (info_scm), SCM_ARG1, __FUNCTION__);
+  info.min_decimal_places = scm_num2int (SCM_CAR (info_scm), SCM_ARG1,
+                                         __FUNCTION__);
 
   info_scm = SCM_CDR (info_scm);
   info.use_separators = SCM_NFALSEP (SCM_CAR (info_scm));
@@ -139,9 +141,9 @@
   source = gnc_commodity_get_quote_source (comm);
   name = gnc_quote_source_get_internal_name (source);
   tz = gnc_commodity_get_quote_tz (comm);
-  comm_scm = gw_wcp_assimilate_ptr (comm, scm_c_eval_string("<gnc:commodity*>"));
-  def_comm_scm = gw_wcp_assimilate_ptr (gnc_default_currency (),
-					scm_c_eval_string("<gnc:commodity*>"));
+  comm_scm = SWIG_NewPointerObj(comm, SWIG_TypeQuery("_p_gnc_commodity"), 0);
+  def_comm_scm = SWIG_NewPointerObj(gnc_default_currency (),
+                                    SWIG_TypeQuery("_p_gnc_commodity"), 0);
 
   if (tz)
     info_scm = scm_cons (scm_makfrom0str (tz), info_scm);

Modified: gnucash/branches/swig-redo/src/app-utils/hooks.scm
===================================================================
--- gnucash/branches/swig-redo/src/app-utils/hooks.scm	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/app-utils/hooks.scm	2006-10-10 00:08:39 UTC (rev 14978)
@@ -17,6 +17,6 @@
 
 (define (gnc:hook-run-danglers hook . args)
   (if (null? args)
-      (set! args #f)
+      (set! args '())
       (set! args (car args)))
   (gnc:hook-run-danglers-real hook args))

Modified: gnucash/branches/swig-redo/src/app-utils/option-util.c
===================================================================
--- gnucash/branches/swig-redo/src/app-utils/option-util.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/app-utils/option-util.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -34,7 +34,6 @@
 #include "qof.h"
 #include "guile-mappings.h"
 
-#include <g-wrap-wct.h>
 #include "swig-runtime.h"
 
 /* TODO: 
@@ -302,9 +301,8 @@
       return;
     }
   }
+  scm_slots = SWIG_NewPointerObj(slots, SWIG_TypeQuery("_p_KvpFrame"), 0);
 
-  scm_slots = gw_wcp_assimilate_ptr (slots, scm_c_eval_string("<gnc:kvp-frame*>"));
-
   scm_call_3 (kvp_to_scm, odb->guile_options, scm_slots, kvp_option_path);
 }
 
@@ -334,7 +332,7 @@
     }
   }
 
-  scm_slots = gw_wcp_assimilate_ptr (slots, scm_c_eval_string("<gnc:kvp-frame*>"));
+  scm_slots = SWIG_NewPointerObj(slots, SWIG_TypeQuery("p_KvpFrame"), 0);
 
   scm_call_3 (scm_to_kvp, odb->guile_options, scm_slots, kvp_option_path);
 }
@@ -433,8 +431,6 @@
                                        const char *section,
                                        const char *name)
 {
-  static SCM void_type = SCM_UNDEFINED;
-
   SCM register_proc;
   SCM arg;
   SCM args;
@@ -450,12 +446,6 @@
     return SCM_UNDEFINED;
   }
 
-  if(void_type == SCM_UNDEFINED) {
-    void_type = scm_c_eval_string("<gw:void*>");
-    /* don't really need this - types are bound globally anyway. */
-    if(void_type != SCM_UNDEFINED) scm_gc_protect_object(void_type);
-  }
-
   /* Now build the args list for apply */
   args = SCM_EOL;
 
@@ -463,7 +453,7 @@
   args = scm_cons(odb->guile_options, args);
 
   /* next the data */
-  arg = gw_wcp_assimilate_ptr(data, void_type);
+  arg = SWIG_NewPointerObj(data, SWIG_TypeQuery("_p_void"), 0);
   args = scm_cons(arg, args);
 
   /* next the callback */

Modified: gnucash/branches/swig-redo/src/business/business-core/business-core.i
===================================================================
--- gnucash/branches/swig-redo/src/business/business-core/business-core.i	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/business/business-core/business-core.i	2006-10-10 00:08:39 UTC (rev 14978)
@@ -16,15 +16,9 @@
 #include <gncBusGuile.h>
 #include "engine-helpers.h"
 #include "gncBusGuile.h"
-
-#include <g-wrap-wct.h> //Temporary. Adds no link dep?!?
 %}
 
 // Temporary SWIG<->G-wrap converters for engine types
-%typemap(in) QofBook * "$1 = (QofBook *)gw_wcp_get_ptr($input);"
-%typemap(out) QofBook * {
-  $result = gw_wcp_assimilate_ptr($1, scm_c_eval_string("<gnc:Book*>"));
-}
 %typemap(in) gboolean "$1 = SCM_NFALSEP($input) ? TRUE : FALSE;"
 %typemap(out) gboolean "$result = $1 ? SCM_BOOL_T : SCM_BOOL_F;"
 

Modified: gnucash/branches/swig-redo/src/engine/engine-helpers.c
===================================================================
--- gnucash/branches/swig-redo/src/engine/engine-helpers.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/engine/engine-helpers.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -24,7 +24,7 @@
 
 #include "config.h"
 
-#include <g-wrap-wct.h>
+#include "swig-runtime.h"
 #include <libguile.h>
 #include <string.h>
 
@@ -43,6 +43,8 @@
 #include "qofquery-p.h"
 #include "qofquerycore-p.h"
 
+#define FUNC_NAME __FUNCTION__
+
 static QofLogModule log_module = GNC_MOD_ENGINE;
 
 Timespec
@@ -197,123 +199,47 @@
   gnc_QUERY_v2
 } query_version_t;
 
-static SCM
-gnc_gw_enum_val2scm (const char *typestr, int value)
-{
-  char *func_name;
-  SCM func;
-  SCM scm;
-
-  func_name = g_strdup_printf ("gw:enum-%s-val->sym", typestr);
-
-  func = scm_c_eval_string (func_name);
-  if (SCM_PROCEDUREP (func))
-    scm = scm_call_2 (func, scm_int2num (value), SCM_BOOL_F);
-  else
-    scm = SCM_BOOL_F;
-
-  g_free (func_name);
-
-  return scm;
-}
-
-static int
-gnc_gw_enum_scm2val (const char *typestr, SCM enum_scm)
-{
-  char *func_name;
-  SCM func;
-  SCM scm;
-
-  func_name = g_strdup_printf ("gw:enum-%s-val->int", typestr);
-
-  func = scm_c_eval_string (func_name);
-  if (SCM_PROCEDUREP (func))
-    scm = scm_call_1 (func, enum_scm);
-  else
-    scm = scm_int2num (0);
-
-  g_free (func_name);
-
-  return scm_num2int (scm, SCM_ARG1, __FUNCTION__);
-}
-
 /* QofCompareFunc */
 
-static SCM
-gnc_query_compare2scm (QofQueryCompare how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:query-compare-how>", how);
-}
-
 static QofQueryCompare
 gnc_query_scm2compare (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:query-compare-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 /* QofStringMatch */
-static SCM
-gnc_query_string2scm (QofStringMatch how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:string-match-how>", how);
-}
-
 static QofStringMatch
 gnc_query_scm2string (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:string-match-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 /* QofDateMatch */
-static SCM
-gnc_query_date2scm (QofDateMatch how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:date-match-how>", how);
-}
-
 static QofDateMatch
 gnc_query_scm2date (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:date-match-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 /* QofNumericMatch */
-static SCM
-gnc_query_numericop2scm (QofNumericMatch how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:numeric-match-how>", how);
-}
-
 static QofNumericMatch
 gnc_query_scm2numericop (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:numeric-match-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 /* QofGuidMatch */
-static SCM
-gnc_query_guid2scm (QofGuidMatch how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:guid-match-how>", how);
-}
-
 static QofGuidMatch
 gnc_query_scm2guid (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:guid-match-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 /* QofCharMatch */
-static SCM
-gnc_query_char2scm (QofCharMatch how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:char-match-how>", how);
-}
-
 static QofCharMatch
 gnc_query_scm2char (SCM how_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:char-match-how>", how_scm);
+  return scm_num2int(how_scm, SCM_ARG1, __FUNCTION__);
 }
 
 static QofGuidMatch
@@ -379,7 +305,7 @@
 }
 
 static int
-gnc_scm2bitfield (const char *typestr, SCM field_scm)
+gnc_scm2bitfield (SCM field_scm)
 {
   int field = 0;
 
@@ -394,7 +320,7 @@
     scm = SCM_CAR (field_scm);
     field_scm = SCM_CDR (field_scm);
 
-    bit = gnc_gw_enum_scm2val (typestr, scm);
+    bit = scm_num2int(scm, SCM_ARG2, __FUNCTION__);
     field |= bit;
   }
 
@@ -404,7 +330,7 @@
 static cleared_match_t
 gnc_scm2cleared_match_how (SCM how_scm)
 {
-  return gnc_scm2bitfield ("<gnc:cleared-match-how>", how_scm);
+  return gnc_scm2bitfield (how_scm);
 }
 
 static gboolean
@@ -588,16 +514,10 @@
   g_slist_free (path);
 }
 
-static SCM
-gnc_KvpValueTypeype2scm (KvpValueType how)
-{
-  return gnc_gw_enum_val2scm ("<gnc:kvp-value-t>", how);
-}
-
 static KvpValueType
 gnc_scm2KvpValueTypeype (SCM value_type_scm)
 {
-  return gnc_gw_enum_scm2val ("<gnc:kvp-value-t>", value_type_scm);
+  return scm_num2int(value_type_scm, SCM_ARG1, __FUNCTION__);
 }
 
 static SCM gnc_kvp_frame2scm (KvpFrame *frame);
@@ -613,7 +533,7 @@
 
   value_t = kvp_value_get_type (value);
 
-  value_scm = scm_cons (gnc_KvpValueTypeype2scm (value_t), value_scm);
+  value_scm = scm_cons (scm_long2num (value_t), value_scm);
 
   switch (value_t)
   {
@@ -862,31 +782,31 @@
 
   pd = qof_query_term_get_pred_data (qt);
   qt_scm = scm_cons (scm_str2symbol (pd->type_name), qt_scm);
-  qt_scm = scm_cons (gnc_query_compare2scm (pd->how), qt_scm);
+  qt_scm = scm_cons (scm_long2num (pd->how), qt_scm);
 
   if (!safe_strcmp (pd->type_name, QOF_TYPE_STRING)) {
     query_string_t pdata = (query_string_t) pd;
 
-    qt_scm = scm_cons (gnc_query_string2scm (pdata->options), qt_scm);
+    qt_scm = scm_cons (scm_long2num (pdata->options), qt_scm);
     qt_scm = scm_cons (SCM_BOOL (pdata->is_regex), qt_scm);
     qt_scm = scm_cons (scm_makfrom0str (pdata->matchstring), qt_scm);
 
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_DATE)) {
     query_date_t pdata = (query_date_t) pd;
 
-    qt_scm = scm_cons (gnc_query_date2scm (pdata->options), qt_scm);
+    qt_scm = scm_cons (scm_long2num (pdata->options), qt_scm);
     qt_scm = scm_cons (gnc_timespec2timepair (pdata->date), qt_scm);
 
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_NUMERIC)) {
     query_numeric_t pdata = (query_numeric_t) pd;
 
-    qt_scm = scm_cons (gnc_query_numericop2scm (pdata->options), qt_scm);
+    qt_scm = scm_cons (scm_long2num (pdata->options), qt_scm);
     qt_scm = scm_cons (gnc_query_numeric2scm (pdata->amount), qt_scm);
 
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_GUID)) {
     query_guid_t pdata = (query_guid_t) pd;
 
-    qt_scm = scm_cons (gnc_query_guid2scm (pdata->options), qt_scm);
+    qt_scm = scm_cons (scm_long2num (pdata->options), qt_scm);
     qt_scm = scm_cons (gnc_guid_glist2scm (pdata->guids), qt_scm);
 
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_INT64)) {
@@ -907,7 +827,7 @@
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_CHAR)) {
     query_char_t pdata = (query_char_t) pd;
 
-    qt_scm = scm_cons (gnc_query_char2scm (pdata->options), qt_scm);
+    qt_scm = scm_cons (scm_long2num (pdata->options), qt_scm);
     qt_scm = scm_cons (scm_makfrom0str (pdata->char_list), qt_scm);
 
   } else if (!safe_strcmp (pd->type_name, QOF_TYPE_KVP)) {
@@ -2066,46 +1986,6 @@
   return q;
 }
 
-static int
-gnc_scm_traversal_adapter(Transaction *t, void *data)
-{
-  static SCM trans_type = SCM_BOOL_F;
-  SCM result;
-  SCM scm_trans;
-  SCM thunk = *((SCM *) data);
-
-  if(trans_type == SCM_BOOL_F) {
-    trans_type = scm_c_eval_string("<gnc:Transaction*>");
-    /* don't really need this - types are bound globally anyway. */
-    if(trans_type != SCM_BOOL_F) scm_gc_protect_object(trans_type);
-  }
-  
-  scm_trans = gw_wcp_assimilate_ptr(t, trans_type);
-  result = scm_call_1(thunk, scm_trans);
-
-  return (result != SCM_BOOL_F);
-}
-
-gboolean
-gnc_scmGroupStagedTransactionTraversal(AccountGroup *grp,
-                                       unsigned int new_marker,
-                                       SCM thunk)
-{
-  return xaccGroupStagedTransactionTraversal(grp, new_marker,
-                                             gnc_scm_traversal_adapter,
-                                             &thunk);
-}
-
-gboolean
-gnc_scmAccountStagedTransactionTraversal(Account *a,
-                                         unsigned int new_marker,
-                                         SCM thunk) 
-{
-  return xaccAccountStagedTransactionTraversal(a, new_marker,
-                                               gnc_scm_traversal_adapter,
-                                               &thunk);
-}
-
 SCM
 gnc_gint64_to_scm(const gint64 x)
 {
@@ -2265,89 +2145,60 @@
   }
 }
 
-/********************************************************************
- * gnc_scm_to_commodity
- ********************************************************************/
-gnc_commodity *
-gnc_scm_to_commodity(SCM scm)
+
+static SCM
+gnc_generic_to_scm(const void *x, const gchar *type_str)
 {
-  static SCM commodity_type = SCM_UNDEFINED;
+    swig_type_info * stype = NULL;
 
-  if(commodity_type == SCM_UNDEFINED) {
-    commodity_type = scm_c_eval_string("<gnc:commodity*>");
-    /* don't really need this - types are bound globally anyway. */
-    if(commodity_type != SCM_UNDEFINED) scm_gc_protect_object(commodity_type);
-  }
+    if (!x) return SCM_BOOL_F;
+    stype = SWIG_TypeQuery(type_str);
 
-  if(!gw_wcp_is_of_type_p(commodity_type, scm)) {
-    return NULL;
-  }
+    if (!stype) {
+        PERR("Unknown SWIG Type: %s ", type_str);
+        return SCM_BOOL_F;
+    }
 
-  return gw_wcp_get_ptr(scm);
+    return SWIG_NewPointerObj(x, stype, 0);
 }
 
+static void *
+gnc_scm_to_generic(SCM scm, const gchar *type_str)
+{
+    swig_type_info * stype = NULL;
 
-/********************************************************************
- * gnc_commodity_to_scm
- ********************************************************************/
+    stype = SWIG_TypeQuery(type_str);
+    if (!stype) {
+        PERR("Unknown SWIG Type: %s ", type_str);
+        return NULL;
+    }
+
+    if (!SWIG_IsPointerOfType(scm, stype))
+        return NULL;
+
+    return SWIG_MustGetPtr(scm, stype, 1, 0);
+}
+
+gnc_commodity *
+gnc_scm_to_commodity(SCM scm)
+{
+    return gnc_scm_to_generic(scm, "_p_gnc_commodity");
+}
+
 SCM
 gnc_commodity_to_scm (const gnc_commodity *commodity)
 {
-  static SCM commodity_type = SCM_UNDEFINED;
-
-  if(commodity == NULL) return SCM_BOOL_F;
-
-  if(commodity_type == SCM_UNDEFINED) {
-    commodity_type = scm_c_eval_string("<gnc:commodity*>");
-    /* don't really need this - types are bound globally anyway. */
-    if(commodity_type != SCM_UNDEFINED) scm_gc_protect_object(commodity_type);
-  }
-  
-  return gw_wcp_assimilate_ptr((void *) commodity, commodity_type);
+    return gnc_generic_to_scm(commodity, "_p_gnc_commodity");
 }
 
-/********************************************************************
- * gnc_book_to_scm
- ********************************************************************/
 SCM
 gnc_book_to_scm (QofBook *book)
 {
-  static SCM book_type = SCM_UNDEFINED;
-
-  if (!book)
-    return SCM_BOOL_F;
-
-  if (book_type == SCM_UNDEFINED)
-  {
-    book_type = scm_c_eval_string ("<gnc:Book*>");
-
-    /* don't really need this - types are bound globally anyway. */
-    if (book_type != SCM_UNDEFINED)
-      scm_gc_protect_object (book_type);
-  }
-  
-  return gw_wcp_assimilate_ptr ((void *) book, book_type);
+    return gnc_generic_to_scm(book, "_p_QofBook");
 }
 
-/********************************************************************
- * qof_session_to_scm
- ********************************************************************/
 SCM
 qof_session_to_scm (QofSession *session)
 {
-  static SCM session_type = SCM_UNDEFINED;
-
-  if (!session)
-    return SCM_BOOL_F;
-
-  if (session_type == SCM_UNDEFINED)
-  {
-    session_type = scm_c_eval_string ("<gnc:Session*>");
-
-    /* don't really need this - types are bound globally anyway. */
-    if (session_type != SCM_UNDEFINED)
-      scm_gc_protect_object (session_type);
-  }
-
-  return gw_wcp_assimilate_ptr ((void *) session, session_type);
+    return gnc_generic_to_scm(session, "_p_QofSession");
 }

Modified: gnucash/branches/swig-redo/src/engine/gnc-hooks.c
===================================================================
--- gnucash/branches/swig-redo/src/engine/gnc-hooks.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/engine/gnc-hooks.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -26,7 +26,7 @@
 #include <glib.h>
 #include <stdio.h>
 #include <libguile.h>
-#include <g-wrap-wct.h>
+#include "swig-runtime.h"
 #include "gnc-hooks.h"
 #include "gnc-hooks-scm.h"
 #include "gnc-engine.h"
@@ -191,8 +191,7 @@
 
   // XXX: FIXME: We really should make sure this is a session!!! */
   scm_call_1 (scm->proc,
-	      gw_wcp_assimilate_ptr (data,
-				     scm_c_eval_string("<gnc:Session*>")));
+              SWIG_NewPointerObj(data, SWIG_TypeQuery("_p_QofSession"), 0));
 
   LEAVE("");
 }

Modified: gnucash/branches/swig-redo/src/engine/kvp-scm.c
===================================================================
--- gnucash/branches/swig-redo/src/engine/kvp-scm.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/engine/kvp-scm.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -1,12 +1,12 @@
 #include "config.h"
 
 #include <qof.h>
-#include <g-wrap-wct.h>
 #include <libguile.h>
 #include <engine-helpers.h>
 
 #include "kvp-scm.h"
 #include "guile-mappings.h"
+#include "swig-runtime.h"
 
 int
 gnc_kvp_value_ptr_p(SCM arg)
@@ -53,10 +53,12 @@
         ret = kvp_value_new_string(newstr);
         return ret;
     }
-    else if(gw_wcp_p(val) &&
-	    gw_wcp_is_of_type_p(scm_c_eval_string("<gnc:kvp-frame*>"), val))
+    else if(SWIG_IsPointerOfType(val, SWIG_TypeQuery("_p_KvpFrame")))
     {
-        KvpFrame *frame = gw_wcp_get_ptr(val);
+        #define FUNC_NAME __FUNCTION__
+        KvpFrame *frame = SWIG_MustGetPtr(val, SWIG_TypeQuery("_p_KvpFrame"),
+                                          1, 0);
+        #undef FUNC_NAME
         return kvp_value_new_frame (frame);
     }
     /* FIXME: add binary handler here when it's figured out */
@@ -95,8 +97,7 @@
     {
         KvpFrame *frame = kvp_value_get_frame(val);
 	if (frame)
-	  return gw_wcp_assimilate_ptr (frame,
-					scm_c_eval_string("<gnc:kvp-frame*>"));
+            return SWIG_NewPointerObj(frame, SWIG_TypeQuery("_p_KvpFrame"), 0);
     }
         break;
 

Modified: gnucash/branches/swig-redo/src/import-export/qif-import/druid-qif-import.c
===================================================================
--- gnucash/branches/swig-redo/src/import-export/qif-import/druid-qif-import.c	2006-10-10 00:08:08 UTC (rev 14977)
+++ gnucash/branches/swig-redo/src/import-export/qif-import/druid-qif-import.c	2006-10-10 00:08:39 UTC (rev 14978)
@@ -1597,8 +1597,10 @@
   stocks = wind->new_stocks;
   while(!SCM_NULLP(stocks) && (stocks != SCM_BOOL_F)) {
     comm_ptr_token = scm_call_2(hash_ref, wind->stock_hash, SCM_CAR(stocks));
-    commodity      = gw_wcp_get_ptr(comm_ptr_token);
-    
+    #define FUNC_NAME "make_qif_druid_page"
+    commodity      = SWIG_MustGetPtr(comm_ptr_token,
+                                     SWIG_TypeQuery("_p_gnc_commodity"), 1, 0);
+    #undef FUNC_NAME
     new_page = make_qif_druid_page(commodity);
 
     g_signal_connect(new_page->page, "next",



More information about the gnucash-changes mailing list