aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/chelper
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2021-08-06 09:56:06 -0400
committerKevin O'Connor <kevin@koconnor.net>2021-08-06 11:19:36 -0400
commitb17ec3d2e9d0afb96351a6ed26fba958584899ac (patch)
tree8b4ff3409373ecb5ebeb3b7fead0a3b4949efc4a /klippy/chelper
parent3176150050b666a582ac0993dc14e6663133ecb9 (diff)
downloadkutter-b17ec3d2e9d0afb96351a6ed26fba958584899ac.tar.gz
kutter-b17ec3d2e9d0afb96351a6ed26fba958584899ac.tar.xz
kutter-b17ec3d2e9d0afb96351a6ed26fba958584899ac.zip
stepcompress: Pass clock to stepcompress_set_last_position()
Using sc->last_step_clock for the last position marker does not work properly, because the stepper.py code calls stepcompress_reset() prior to calling stepcompress_set_last_position(). Fix by passing an explicit clock to stepcompress_set_last_position(). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/chelper')
-rw-r--r--klippy/chelper/__init__.py2
-rw-r--r--klippy/chelper/stepcompress.c5
-rw-r--r--klippy/chelper/stepcompress.h2
3 files changed, 5 insertions, 4 deletions
diff --git a/klippy/chelper/__init__.py b/klippy/chelper/__init__.py
index 6c579ab7..86560939 100644
--- a/klippy/chelper/__init__.py
+++ b/klippy/chelper/__init__.py
@@ -43,7 +43,7 @@ defs_stepcompress = """
void stepcompress_free(struct stepcompress *sc);
int stepcompress_reset(struct stepcompress *sc, uint64_t last_step_clock);
int stepcompress_set_last_position(struct stepcompress *sc
- , int64_t last_position);
+ , uint64_t clock, int64_t last_position);
int64_t stepcompress_find_past_position(struct stepcompress *sc
, uint64_t clock);
int stepcompress_queue_msg(struct stepcompress *sc
diff --git a/klippy/chelper/stepcompress.c b/klippy/chelper/stepcompress.c
index fab15a2c..b38b72ad 100644
--- a/klippy/chelper/stepcompress.c
+++ b/klippy/chelper/stepcompress.c
@@ -553,7 +553,8 @@ stepcompress_reset(struct stepcompress *sc, uint64_t last_step_clock)
// Set last_position in the stepcompress object
int __visible
-stepcompress_set_last_position(struct stepcompress *sc, int64_t last_position)
+stepcompress_set_last_position(struct stepcompress *sc, uint64_t clock
+ , int64_t last_position)
{
int ret = stepcompress_flush(sc, UINT64_MAX);
if (ret)
@@ -563,7 +564,7 @@ stepcompress_set_last_position(struct stepcompress *sc, int64_t last_position)
// Add a marker to the history list
struct history_steps *hs = malloc(sizeof(*hs));
memset(hs, 0, sizeof(*hs));
- hs->first_clock = hs->last_clock = sc->last_step_clock;
+ hs->first_clock = hs->last_clock = clock;
hs->start_position = last_position;
list_add_head(&hs->node, &sc->history_list);
return 0;
diff --git a/klippy/chelper/stepcompress.h b/klippy/chelper/stepcompress.h
index d10cccf9..5bca39a5 100644
--- a/klippy/chelper/stepcompress.h
+++ b/klippy/chelper/stepcompress.h
@@ -22,7 +22,7 @@ int stepcompress_append(struct stepcompress *sc, int sdir
, double print_time, double step_time);
int stepcompress_commit(struct stepcompress *sc);
int stepcompress_reset(struct stepcompress *sc, uint64_t last_step_clock);
-int stepcompress_set_last_position(struct stepcompress *sc
+int stepcompress_set_last_position(struct stepcompress *sc, uint64_t clock
, int64_t last_position);
int64_t stepcompress_find_past_position(struct stepcompress *sc
, uint64_t clock);