subsurface/core
Linus Torvalds 3209b490dd Use proper sample pointer when deciding to split dives
The dive splitting was completely wrong, because we checked the time of
the previous sample by doing

	sample[i - 1].time.seconds

which is entirely wrong.  The 'sample' variable is the *current* sample,
so the time of the previous sample is simply

	sample[-1].time.seconds

Alternatively, we could have started from the first sample, and done

	dc->sample[i - 1].time.seconds

but mixing the two concepts up just gets you a random sample pointer
that is likely not a valid sample at all, and obviously does not have
the right time at all.

As a result, dive splitting was pretty much random.  Sometimes it worked
purely by mistake, because the rest of the logic was right (ie we _had_
found the right point where we reached the surface in the dive etc, the
"previous sample time" was simply used to decide if the surface interval
was sufficient to split the dive up).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-02 08:36:53 -07:00
..
subsurface-qt core: remove prefs-macros.h where unused 2018-07-01 22:06:28 +02:00
android.cpp Cleanup: introduce copy_qstring() function 2018-03-14 13:55:36 +02:00
btdiscovery.cpp core: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
btdiscovery.h Cleanup: Use QString as parameter for [get|save]BtDeviceInfo() 2018-02-26 08:52:34 +01:00
checkcloudconnection.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
checkcloudconnection.h Remove self-include of core/checkcloudconnection.h 2017-12-06 02:23:47 +01:00
cloudstorage.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
cloudstorage.h Remove bogus member that hides global variable 2017-10-26 20:44:02 +02:00
CMakeLists.txt build-system: don't always build qtserialbluetooth.cpp 2018-05-19 16:49:05 -07:00
cochran.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
cochran.h
color.cpp Fix CCR setpoint display bug 2018-05-07 13:56:23 +02:00
color.h Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
compressibility.r
configuredivecomputer.cpp Actually tie in the new libdivecomputer IO model to open the dive computer device 2018-04-24 17:54:08 -07:00
configuredivecomputer.h
configuredivecomputerthreads.cpp core: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
configuredivecomputerthreads.h
connectionlistmodel.cpp core: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
connectionlistmodel.h Add function to clear connectionModel data 2017-10-12 09:32:12 +02:00
datatrak.c Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
datatrak.h
deco.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
deco.h Localize global planner state 2017-11-25 20:13:01 +01:00
device.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
device.h Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
devicedetails.cpp
devicedetails.h
display.h Display values in info box only if value is interesting 2017-11-13 20:50:10 -08:00
dive.c Use proper sample pointer when deciding to split dives 2018-07-02 08:36:53 -07:00
dive.h equipment: sanitize 'ws_info' loop limits 2018-06-20 09:30:58 +09:00
divecomputer.cpp core: remove prefs-macros.h where unused 2018-07-01 22:06:28 +02:00
divecomputer.h Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divelist.c Don't compute SAC if total gas use is unknown 2018-05-28 09:57:00 +02:00
divelist.h Unused code: remove trip_has_selected_dives() 2018-01-10 16:45:42 +01:00
divelogexportlogic.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
divelogexportlogic.h
divesite-helper.cpp Cleanup: rename file to avoid confusion 2017-12-08 16:29:49 +01:00
divesite.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
divesite.h Tags for geo references: Nicer look, translations and warning message 2017-10-17 06:12:07 -04:00
divesitehelpers.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
divesitehelpers.h
downloadfromdcthread.cpp Add Cressi Giotto, Newton and Drake to list of devices 2018-06-28 11:52:24 +08:00
downloadfromdcthread.h core: remove qml properties from downloadfromcthread 2018-06-09 21:19:46 +02:00
equipment.c equipment: use MAX_TANK_INFO in equipment.c 2018-06-20 09:30:58 +09:00
errorhelper.c Make report_error() reentrant 2018-01-31 14:47:26 +01:00
exif.cpp Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
exif.h
file.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
file.h Make a few functions of static linkage 2018-01-08 09:52:55 +02:00
format.cpp Cleanup: Slightly shorten code in vqasprintf_loc() 2018-04-09 11:29:43 -07:00
format.h Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
gas-model.c
gaspressures.c Provide correct cylinder pressures for bailout dives 2018-06-08 17:07:20 +03:00
gaspressures.h
gettext.h
gettextfromc.cpp Localization: make cache thread safe and robust against use-after-free 2018-06-24 20:31:14 +02:00
gettextfromc.h Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
git-access.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
git-access.h Support non-https:// repositories for saving 2018-01-19 09:45:08 +02:00
gpslocation.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
gpslocation.h GPS: add signal to show that a new fix has been acquired 2018-04-14 13:37:44 -07:00
imagedownloader.cpp Dive pictures: render icons with white instead of transparent background 2018-06-28 21:58:29 +08:00
imagedownloader.h Dive pictures: Make failure of loading images less noisy 2018-06-13 08:35:23 -07:00
import-cobalt.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
import-csv.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
import-csv.h Make a few functions of static linkage 2018-01-08 09:52:55 +02:00
import-divinglog.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
import-shearwater.c Remove unnecessary {} 2018-05-27 23:18:01 +03:00
import-suunto.c DM5 import: support for larger sample size 2018-06-15 17:45:33 -07:00
ios.cpp core: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
isocialnetworkintegration.cpp
isocialnetworkintegration.h
libdivecomputer.c FTDI support: try ftdi_open first if the device name is 'ftdi' 2018-06-21 16:16:29 +09:00
libdivecomputer.h Create one function to determine the supported transports 2018-04-27 11:52:48 -07:00
linux.c Revert "cleanup: remove empty function" 2018-06-21 06:28:39 +09:00
liquivision.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
load-git.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
macos.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
membuffer.c Localization: Make Qt's locale-aware formatting accessible from C 2018-03-05 16:23:55 +01:00
membuffer.h Add usage documentation for membuffer helper functions 2018-04-10 08:18:32 -07:00
metadata.cpp Dive pictures: extract timestamp from MP4 and related formats 2018-04-01 16:04:48 +03:00
metadata.h Dive pictures: use get_metadata() in dive_create_picture() 2018-04-01 16:04:48 +03:00
metrics.cpp
metrics.h
ostctools.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
parse-xml.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
parse.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
parse.h Don't define cur_setting in header file 2018-01-05 00:29:20 +01:00
planner.c Fix interpretation of dive mode changes upon replan 2018-06-24 09:35:55 +02:00
planner.h
plannernotes.c Make planner notes divemode aware... 2018-06-24 09:35:55 +02:00
pluginmanager.cpp Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pluginmanager.h Unused code: remove PluginManager::socialNetworkIntegrationPlugins() 2018-01-10 16:45:42 +01:00
pref.h Revert "cleanup: remove empty function" 2018-06-21 06:28:39 +09:00
prefs-macros.h core: make prefs-macros compile safe. 2018-06-15 14:11:57 -07:00
profile.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
profile.h Plot OC-pO2 graph for SCR dives 2018-04-28 20:11:22 +03:00
qt-ble.cpp qt-ble: purge pending read data when writing 2018-06-20 16:38:04 +09:00
qt-ble.h Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
qt-gui.h Remove dead code 2017-11-19 12:20:43 -08:00
qt-init.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
qthelper.cpp Localization: don't go via C-string in qthelper.cpp 2018-06-24 20:31:14 +02:00
qthelper.h Dive pictures: remove cache_picture() call in dive_add_picture() 2018-06-07 18:41:32 +02:00
qtserialbluetooth.cpp core: replace (void) with no parameter name 2018-05-24 08:34:14 -07:00
save-git.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
save-html.c Cleanup: Unify qthelper.h and qthelperfromc.h 2018-02-26 19:06:02 +02:00
save-html.h
save-xml.c Bugfix: Saving divemode to xml and to git 2018-05-17 07:35:58 -07:00
serial_ftdi.c Convert our custom IO model to new libdivecomputer IO model 2018-04-24 17:54:08 -07:00
sha1.c
sha1.h
ssrf.h mobile: add timer to measure startup. 2018-05-30 21:47:07 -07:00
statistics.c Fix an error around translation of dive modes in the UI 2018-06-17 06:36:20 +09:00
statistics.h Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
strndup.h
strtod.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
subsurface-string.h Core: don't inline rarely used function 2018-05-14 10:13:39 -07:00
subsurfacestartup.c Revert "cleanup: remove empty function" 2018-06-21 06:28:39 +09:00
subsurfacestartup.h Fix ownership issues in preferences code 2017-11-25 07:41:09 -08:00
subsurfacesysinfo.cpp
subsurfacesysinfo.h
taxonomy.c Fix two bugs in taxonomy_set_country 2017-10-07 08:16:53 -07:00
taxonomy.h Add taxonomy helper functions 2017-10-04 08:05:09 -07:00
time.c
uemis-downloader.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
uemis.c Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
uemis.h
units.h core: removed clang warnings from units.h 2018-05-18 21:27:37 +03:00
version.c
version.h
webservice.h
windows.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
windowtitleupdate.cpp
windowtitleupdate.h
worldmap-options.h
worldmap-save.c Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
worldmap-save.h