Skip to content

Commit 6d8d58c

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents c239774 + af29ee5 commit 6d8d58c

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

include/runtime/proof_trace_writer.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ class proof_trace_callback_writer : public proof_trace_writer {
285285
std::optional<rewrite_event_construction> current_rewrite_event_{
286286
std::nullopt};
287287

288+
bool rewrite_callback_pending_;
289+
288290
virtual void proof_trace_header_callback(uint32_t version) { }
289291
virtual void hook_event_callback(call_event_construction const &event) { }
290292
virtual void rewrite_event_callback(rewrite_event_construction const &event) {
@@ -332,6 +334,8 @@ class proof_trace_callback_writer : public proof_trace_writer {
332334
current_rewrite_event_.emplace(ordinal, arity);
333335
if (arity == 0) {
334336
rewrite_event_callback(current_rewrite_event_.value());
337+
} else {
338+
rewrite_callback_pending_ = true;
335339
}
336340
}
337341

@@ -345,7 +349,12 @@ class proof_trace_callback_writer : public proof_trace_writer {
345349
p.second.bits = bits;
346350
size_t new_pos = ++current_rewrite_event_->pos;
347351
if (new_pos == current_rewrite_event_->arity) {
348-
rewrite_event_callback(current_rewrite_event_.value());
352+
if (rewrite_callback_pending_) {
353+
rewrite_event_callback(current_rewrite_event_.value());
354+
rewrite_callback_pending_ = false;
355+
} else {
356+
side_condition_event_callback(current_rewrite_event_.value());
357+
}
349358
}
350359
}
351360

0 commit comments

Comments
 (0)