Commit 39313c5 broke Bluetooth support (Clean up handling of various include file)

Rick Walsh rickmwalsh at gmail.com
Fri Apr 8 20:15:38 PDT 2016


On 30 March 2016 at 23:03, Dirk Hohndel <dirk at hohndel.org> wrote:

> On Wed, Mar 30, 2016 at 06:12:45PM +1100, Rick Walsh wrote:
> > On 15 March 2016 at 19:04, Rick Walsh <rickmwalsh at gmail.com> wrote:
> >
> > > Hi,
> > >
> > > There's no Bluetooth support in the current master.  I bisected it
> down to
> > > 39313c5 Clean up handling of various include file, but I have no idea
> what
> > > caused the problem.
> >
> > Does anyone know what might be going on here?  Is the Bluetooth download
> > option shown for other people on the current (or recent) master?
>

> Oops, I missed the original email or I would have investigated this long
> ago. The offending commit seems... harmless. There is one bug in there but
> that would IMHO only create compile failures, not a failure of BT to work.
>

Yes, it looks harmless.  I tracked it down to the individual lines of the
commit that broke Bluetooth for me.  I'm not sure why, but it has something
to do with including libdivecomputer/version.h

With the following changes made to master (reverting a couple of lines from
commit 39313c5), the option to download with bluetooth shows again.

diff --git a/core/configuredivecomputerthreads.cpp
b/core/configuredivecomputerthreads.cpp
index b229fc8..c86c096 100644
--- a/core/configuredivecomputerthreads.cpp
+++ b/core/configuredivecomputerthreads.cpp
@@ -1,7 +1,6 @@
 #include "configuredivecomputerthreads.h"
 #include "libdivecomputer/hw.h"
 #include "libdivecomputer.h"
-#include <libdivecomputer/version.h>

 #define OSTC3_GAS1                     0x10
 #define OSTC3_GAS2                     0x11
diff --git a/core/libdivecomputer.h b/core/libdivecomputer.h
index 99f1c24..f52f695 100644
--- a/core/libdivecomputer.h
+++ b/core/libdivecomputer.h
@@ -7,9 +7,7 @@
 #ifdef DC_VERSION /* prevent a warning with wingdi.h */
 #undef DC_VERSION
 #endif
-#ifdef HAVE_LIBDIVECOMPUTER
 #include <libdivecomputer/version.h>
-#endif
 #include <libdivecomputer/device.h>
 #include <libdivecomputer/parser.h>


Now I can do the Bluetooth scan and pair, but I get a segfault every time I
try to download from my DC (Petrel 2).  Here's a backtrace.

(gdb) bt
#0  0x0000000000737e08 in dc_device_foreach (device=0x7fffbc00b420,
callback=0x69d31a <dive_cb>, userdata=0x7fffffffd1e0) at
../../src/device.c:371
#1  0x000000000069de35 in do_device_import (data=0x7fffffffd1e0) at
/home/rick/src/subsurface/core/libdivecomputer.c:915
#2  0x000000000069e129 in do_libdivecomputer_import (data=0x7fffffffd1e0)
at /home/rick/src/subsurface/core/libdivecomputer.c:996
#3  0x00000000005e1fa6 in DownloadThread::run (this=0x15a8f30) at
/home/rick/src/subsurface/desktop-widgets/downloadfromdivecomputer.cpp:615
#4  0x00007ffff03513de in QThreadPrivate::start (arg=0x15a8f30) at
thread/qthread_unix.cpp:331
#5  0x00007ffff67fe60a in start_thread (arg=0x7fffc37fe700) at
pthread_create.c:334
#6  0x00007fffef82aa4d in clone () from /lib64/libc.so.6



> I actually brought a BT dive computer with me on this trip but haven't
> prioritized downloading from it, yet. I'll try that today and see if I can
> figure out what's going on.
>
> Please do try - I am completely lost as to what is going on.


> With stuff like this it really helps if you file a trac ticket, definitely
> if it doesn't get addressed right away.
>
> I'll do that.

Cheers,

Rick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20160409/6c704d43/attachment.html>


More information about the subsurface mailing list