There's a missing native 64-bit int implementations of operator>> in 
DBusMessageReader. I duplicated the dbus_int64_t and dbus_uint64_t 
implementations, which somebody else discovered too:

http://www.mail-archive.com/[email protected]/msg16660.html

The approach seems sound to me, so patch below.

Jon




Index: strigi.info
===================================================================
RCS file: /cvsroot/fink/dists/10.4/unstable/main/finkinfo/libs/strigi.info,v
retrieving revision 1.8
diff -c -r1.8 strigi.info
*** strigi.info 17 Jun 2009 02:56:54 -0000      1.8
--- strigi.info 15 Sep 2009 07:20:58 -0000
***************
*** 26,31 ****
--- 26,33 ----
   Source: http://www.vandenoever.info/software/strigi/strigi-%v.tar.bz2
   Source-MD5: 7f265c331c02802e199b922e7b2a2292
   SourceDirectory: strigi-%v
+ PatchFile: strigi.patch
+ PatchFile-MD5: 0c10067acf0b65b4744dc62f6f9d8ae4

   CompileScript: <<
   #!/bin/sh -ev


Index: strigi.patch
===================================================================
diff -rc strigi-0.6.5/src/daemon/dbus/dbuscpp/dbusmessagereader.cpp 
strigi-0.6.5-new/src/daemon/dbus/dbuscpp/dbusmessagereader.cpp
*** strigi-0.6.5/src/daemon/dbus/dbuscpp/dbusmessagereader.cpp 
2008-03-22 20:14:00.000000000 +0000
--- strigi-0.6.5-new/src/daemon/dbus/dbuscpp/dbusmessagereader.cpp 
2009-09-15 08:16:57.000000000 +0100
***************
*** 74,79 ****
--- 74,90 ----
       return *this;
   }
   DBusMessageReader&
+ DBusMessageReader::operator>>(uint64_t& s) {
+     if (!isOk()) return *this;
+     if (DBUS_TYPE_UINT64 != dbus_message_iter_get_arg_type(&it)) {
+         close();
+         return *this;
+     }
+     dbus_message_iter_get_basic(&it, &s);
+     dbus_message_iter_next(&it);
+     return *this;
+ }
+ DBusMessageReader&
   DBusMessageReader::operator>>(string& s) {
       if (!isOk()) return *this;
       if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&it)) {
diff -rc strigi-0.6.5/src/daemon/dbus/dbuscpp/dbusmessagereader.h 
strigi-0.6.5-new/src/daemon/dbus/dbuscpp/dbusmessagereader.h
*** strigi-0.6.5/src/daemon/dbus/dbuscpp/dbusmessagereader.h 
2009-01-03 18:33:15.000000000 +0000
--- strigi-0.6.5-new/src/daemon/dbus/dbuscpp/dbusmessagereader.h 
2009-09-15 08:12:52.000000000 +0100
***************
*** 64,69 ****
--- 64,71 ----
       DBusMessageReader& operator>>(dbus_uint32_t& s);
       DBusMessageReader& operator>>(dbus_uint64_t& s);
       DBusMessageReader& operator>>(dbus_int64_t& s);
+     DBusMessageReader& operator>>(int64_t& s);
+     DBusMessageReader& operator>>(uint64_t& s);
       DBusMessageReader& operator>>(std::multimap<int, std::string>&);
       DBusMessageReader& operator>>(std::vector<std::pair<bool, 
std::string> >&);
       bool isOk() const { return ok; }


------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Fink-devel mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to