commit ea6bfa050eebeb782d7cc49dabce637aa821c7ba
parent 2bffe532f21eb6450794553e382da370be2b98de
Author: lash <dev@holbrook.no>
Date: Wed, 5 Feb 2025 09:27:58 +0000
Add force bytecode clear option to engine reset
Diffstat:
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/engine/db.go b/engine/db.go
@@ -584,13 +584,19 @@ func (en *DefaultEngine) Flush(ctx context.Context, w io.Writer) (int, error) {
}
// start execution over at top node while keeping current state of client error flags.
-func (en *DefaultEngine) Reset(ctx context.Context) (bool, error) {
- b, err := en.st.GetCode()
- if err != nil {
- return false, err
- }
- if len(b) > 0 {
- return false, ErrCodeRemaining
+func (en *DefaultEngine) Reset(ctx context.Context, force bool) (bool, error) {
+ var err error
+ var b []byte
+ if force {
+ en.st.SetCode(b)
+ } else {
+ b, err = en.st.GetCode()
+ if err != nil {
+ return false, err
+ }
+ if len(b) > 0 {
+ return false, ErrCodeRemaining
+ }
}
return en.reset(ctx)
}