Re: Problem with memofile



On Sat, 2004-01-10 at 13:58, David A. Desrosiers wrote:
> > Awesome!  I looked and looked and just could not seem to find it.
> > Thanks!
> 
> 	Note, it will fix the crash, not the conduit. You still will not
> be able to sync memos after applying that patch, it will just stop the
> conduit itself from crashing, and bringing down the whole daemon.
> 

er.  no, that actually does fix the conduit.  with that patch, I can
sync memo files correctly.

there's several patches that are sorely needed in both pilot-link and
gnome-pilot.  I'm attaching the e-mails with these patches.  The
gnome-pilot ones are from Matt Davey.  Applying these and rebuilding
gnome-pilot and gnome-pilot-conduits fixes everything perfectly for me
for pilot-syncing.  

The only remaining problem I had is due to the Clie NX70 that I have--I
can't do a backup because of the bigger size of some of the databases. 
So, the other e-mail attached is from you, David, that fixes the
pilot-link segfault that I hit (until I made the fixes and rebuilt the
packages) when trying to do a backup.

hopefully this helps those like me who were dealing with an unacceptably
broken pilot syncing sitiation.  =:/


> 
> d.
> _______________________________________________
> gnome-pilot-list mailing list
> gnome-pilot-list gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-pilot-list
-- 

,-----------------------------------------------------------------//
| Jason 'vanRijn' Kasper ::  Numbers 6:22-26 
 `
 | All brontosauruses are thin at one end, much MUCH thicker 
 | in the middle, and then thin again at the far end.  That is 
 | the theory that I have and which is mine, and what it is too.  
 ,
| bash$ :(){ :|:&};:
`----------------------//

--- Begin Message ---
Ok,

I've come up with a patch to fix the memo-file conduit problem.
It works for me.  I don't use evolution, etc., so this needs
further testing.  Other conduit code was already using the 
new marshalling stuff (see gpmarshal*), so the fix was
pretty straightforward.

The patched files are:
gpilotd/gnome-pilot-conduit-standard-abs.c
gpilotd/gnome-pilot-conduit-standard-abs.h
gpilotd/gpmarshal.c
gpilotd/gpmarshal.h
gpilotd/gpmarshal.list

Matt
--- /tmp/gnome-pilot-2.0.10/gpilotd/gpmarshal.c	2003-07-14 18:32:23.000000000 +0100
+++ gpmarshal.c	2003-08-26 15:39:46.000000000 +0100
@@ -209,2 +209,121 @@
 }
 
+/* INT:POINTER,INT,INT (./gpmarshal.list:5) */
+void
+gp_marshal_INT__POINTER_INT_INT (GClosure     *closure,
+                                 GValue       *return_value,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint,
+                                 gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_INT__POINTER_INT_INT) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gint         arg_2,
+                                                     gint         arg_3,
+                                                     gpointer     data2);
+  register GMarshalFunc_INT__POINTER_INT_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_INT__POINTER_INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_pointer (param_values + 1),
+                       g_marshal_value_peek_int (param_values + 2),
+                       g_marshal_value_peek_int (param_values + 3),
+                       data2);
+
+  g_value_set_int (return_value, v_return);
+}
+
+/* INT:POINTER (./gpmarshal.list:6) */
+void
+gp_marshal_INT__POINTER (GClosure     *closure,
+                         GValue       *return_value,
+                         guint         n_param_values,
+                         const GValue *param_values,
+                         gpointer      invocation_hint,
+                         gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_INT__POINTER) (gpointer     data1,
+                                             gpointer     arg_1,
+                                             gpointer     data2);
+  register GMarshalFunc_INT__POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_INT__POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_pointer (param_values + 1),
+                       data2);
+
+  g_value_set_int (return_value, v_return);
+}
+
+/* INT:NONE (./gpmarshal.list:7) */
+void
+gp_marshal_INT__VOID (GClosure     *closure,
+                      GValue       *return_value,
+                      guint         n_param_values,
+                      const GValue *param_values,
+                      gpointer      invocation_hint,
+                      gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_INT__VOID) (gpointer     data1,
+                                          gpointer     data2);
+  register GMarshalFunc_INT__VOID callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 1);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_INT__VOID) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       data2);
+
+  g_value_set_int (return_value, v_return);
+}
+
--- /tmp/gnome-pilot-2.0.10/gpilotd/gnome-pilot-conduit-standard-abs.c	2002-11-22 16:03:59.000000000 +0000
+++ gnome-pilot-conduit-standard-abs.c	2003-08-26 17:36:20.000000000 +0100
@@ -143,85 +143,4 @@
 }
 
-/* We have a bunch of marshalling functions that we need to declare.
- * We do so here */
-typedef gint (*GtkSignal_INT__POINTER_POINTER) (GtkObject * object,
-						gpointer arg1,
-						gpointer arg2,
-						gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_POINTER (GtkObject * object,
-				  GtkSignalFunc func,
-				  gpointer func_data,
-				  GtkArg * args)
-{
-	GtkSignal_INT__POINTER_POINTER rfunc;
-	gint *return_val;
-	return_val = GTK_RETLOC_INT (args[2]);
-	rfunc = (GtkSignal_INT__POINTER_POINTER) func;
-	*return_val = (*rfunc) (object,
-				GTK_VALUE_POINTER (args[0]),
-				GTK_VALUE_POINTER (args[1]),
-				func_data);
-}
-
-typedef gint (*GtkSignal_INT__POINTER_INT) (GtkObject * object,
-					    gpointer arg1,
-					    gint arg2,
-					    gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_INT (GtkObject * object,
-			      GtkSignalFunc func,
-			      gpointer func_data,
-			      GtkArg * args)
-{
-	GtkSignal_INT__POINTER_INT rfunc;
-	gint *return_val;
-	return_val = GTK_RETLOC_INT (args[2]);
-	rfunc = (GtkSignal_INT__POINTER_INT) func;
-	*return_val = (*rfunc) (object,
-				GTK_VALUE_POINTER (args[0]),
-				GTK_VALUE_INT (args[1]),
-				func_data);
-}
-
-typedef gint (*GtkSignal_INT__POINTER_INT_INT) (GtkObject * object,
-						gpointer arg1,
-						gint arg2,
-						gint arg3,
-						gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_INT_INT (GtkObject * object,
-				  GtkSignalFunc func,
-				  gpointer func_data,
-				  GtkArg * args)
-{
-	GtkSignal_INT__POINTER_INT_INT rfunc;
-	gint *return_val;
-	return_val = GTK_RETLOC_INT (args[3]);
-	rfunc = (GtkSignal_INT__POINTER_INT_INT) func;
-	*return_val = (*rfunc) (object,
-				GTK_VALUE_POINTER (args[0]),
-				GTK_VALUE_INT (args[1]),
-				GTK_VALUE_INT (args[2]),
-				func_data);
-}
-
-
-typedef gint (*GtkSignal_INT__NONE) (GtkObject * object,
-				     gpointer user_data);
-static void
-gtk_marshal_INT__NONE (GtkObject * object,
-		       GtkSignalFunc func,
-		       gpointer func_data,
-		       GtkArg * args)
-{
-	GtkSignal_INT__NONE rfunc;
-	gint *return_val;
-	return_val = GTK_RETLOC_INT (args[0]);
-	rfunc = (GtkSignal_INT__NONE) func;
-	*return_val = (*rfunc) (object,
-				func_data);
-}
-
 static void
 gnome_pilot_conduit_standard_abs_class_init (GnomePilotConduitStandardAbsClass *klass)
@@ -240,5 +159,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, match_record),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -248,5 +167,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, free_match),
-				gtk_marshal_INT__POINTER,
+				gp_marshal_INT__POINTER,
 				GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
 
@@ -256,5 +175,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, archive_local),
-				gtk_marshal_INT__POINTER,
+				gp_marshal_INT__POINTER,
 				GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
 
@@ -264,5 +183,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, archive_remote),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -272,5 +191,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, store_remote),
-				gtk_marshal_INT__POINTER,
+				gp_marshal_INT__POINTER,
 				GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
 
@@ -280,5 +199,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, iterate),
-				gtk_marshal_INT__POINTER,
+				gp_marshal_INT__POINTER,
 				GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
 
@@ -288,5 +207,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, iterate_specific),
-				gtk_marshal_INT__POINTER_INT_INT,
+				gp_marshal_INT__POINTER_INT_INT,
 				GTK_TYPE_INT, 3, GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_INT);
 
@@ -296,5 +215,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, purge),
-				gtk_marshal_INT__NONE,
+				gp_marshal_INT__NONE,
 				GTK_TYPE_INT, 0);
 
@@ -304,5 +223,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, set_status),
-				gtk_marshal_INT__POINTER_INT,
+				gp_marshal_INT__POINTER_INT,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
 
@@ -312,5 +231,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, set_pilot_id),
-				gtk_marshal_INT__POINTER_INT,
+				gp_marshal_INT__POINTER_INT,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
 
@@ -320,5 +239,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, compare),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -328,5 +247,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, compare_backup),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -336,5 +255,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, free_transmit),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -344,5 +263,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, delete_all),
-				gtk_marshal_INT__NONE,
+				gp_marshal_INT__NONE,
 				GTK_TYPE_INT, 0);
 
@@ -352,5 +271,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, transmit),
-				gtk_marshal_INT__POINTER_POINTER,
+				gp_marshal_INT__POINTER_POINTER,
 				GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
 
@@ -360,5 +279,5 @@
 				GTK_CLASS_TYPE (object_class),
 				GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, pre_sync),
-				gtk_marshal_INT__POINTER,
+				gp_marshal_INT__POINTER,
 				GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
 
--- /tmp/gnome-pilot-2.0.10/gpilotd/gnome-pilot-conduit-standard-abs.h	2001-06-19 03:06:23.000000000 +0100
+++ gnome-pilot-conduit-standard-abs.h	2003-08-26 17:36:28.000000000 +0100
@@ -28,4 +28,5 @@
 #include <gnome.h>
 #include "gnome-pilot-conduit-standard.h"
+#include "gpmarshal.h"
 
 #ifdef __cplusplus
--- /tmp/gnome-pilot-2.0.10/gpilotd/gpmarshal.list	2002-12-03 22:57:12.000000000 +0000
+++ gpmarshal.list	2003-08-26 15:33:18.000000000 +0100
@@ -3,2 +3,5 @@
 INT:POINTER,POINTER
 INT:POINTER,BOOL
+INT:POINTER,INT,INT
+INT:POINTER
+INT:NONE
--- /tmp/gnome-pilot-2.0.10/gpilotd/gpmarshal.h	2003-07-14 18:32:23.000000000 +0100
+++ gpmarshal.h	2003-08-26 15:36:39.000000000 +0100
@@ -7,5 +7,5 @@
 G_BEGIN_DECLS
 
-/* VOID:INT,POINTER (./gpmarshal.list:1) */
+/* VOID:INT,POINTER (gpmarshal.list:1) */
 extern void gp_marshal_VOID__INT_POINTER (GClosure     *closure,
                                           GValue       *return_value,
@@ -15,5 +15,5 @@
                                           gpointer      marshal_data);
 
-/* INT:POINTER,INT (./gpmarshal.list:2) */
+/* INT:POINTER,INT (gpmarshal.list:2) */
 extern void gp_marshal_INT__POINTER_INT (GClosure     *closure,
                                          GValue       *return_value,
@@ -23,5 +23,5 @@
                                          gpointer      marshal_data);
 
-/* INT:POINTER,POINTER (./gpmarshal.list:3) */
+/* INT:POINTER,POINTER (gpmarshal.list:3) */
 extern void gp_marshal_INT__POINTER_POINTER (GClosure     *closure,
                                              GValue       *return_value,
@@ -31,5 +31,5 @@
                                              gpointer      marshal_data);
 
-/* INT:POINTER,BOOL (./gpmarshal.list:4) */
+/* INT:POINTER,BOOL (gpmarshal.list:4) */
 extern void gp_marshal_INT__POINTER_BOOLEAN (GClosure     *closure,
                                              GValue       *return_value,
@@ -40,4 +40,29 @@
 #define gp_marshal_INT__POINTER_BOOL	gp_marshal_INT__POINTER_BOOLEAN
 
+/* INT:POINTER,INT,INT (gpmarshal.list:5) */
+extern void gp_marshal_INT__POINTER_INT_INT (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+
+/* INT:POINTER (gpmarshal.list:6) */
+extern void gp_marshal_INT__POINTER (GClosure     *closure,
+                                     GValue       *return_value,
+                                     guint         n_param_values,
+                                     const GValue *param_values,
+                                     gpointer      invocation_hint,
+                                     gpointer      marshal_data);
+
+/* INT:NONE (gpmarshal.list:7) */
+extern void gp_marshal_INT__VOID (GClosure     *closure,
+                                  GValue       *return_value,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint,
+                                  gpointer      marshal_data);
+#define gp_marshal_INT__NONE	gp_marshal_INT__VOID
+
 G_END_DECLS
 

--- End Message ---
--- Begin Message ---
> I have the same problem. Has there been any response?

	Probably yet-another application violating the 64k segment barrier.
You could try increasing DLP_BUF_SIZE in include/pi-dlp.h (and remove the
#define for the same in libpisock/dlp.c, which will be fixed in the next
release) and see if that helps. Something like 0x1ffff should do.

	Let me know if it works for you or not.

d.

_______________________________________________
pilot-link-general mailing list
pilot-link-general pilot-link org
http://www.pilot-link.org/mailman/listinfo/pilot-link-general

--- End Message ---


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