From 6a804998234244013a8af0ff45a483fbc33e81e2 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Thu, 16 Feb 2023 13:52:05 +0000 Subject: [PATCH] Panic consistently. --- compile.go | 5 +---- conn.go | 10 +++++----- stmt.go | 21 ++++++++++----------- vfs.go | 10 ++++++---- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/compile.go b/compile.go index fd424cb..d5c1ce2 100644 --- a/compile.go +++ b/compile.go @@ -40,10 +40,7 @@ func (s *sqlite3Runtime) instantiateModule(ctx context.Context) (api.Module, err func (s *sqlite3Runtime) compileModule(ctx context.Context) { s.runtime = wazero.NewRuntime(ctx) - s.err = vfsInstantiate(ctx, s.runtime) - if s.err != nil { - return - } + vfsInstantiate(ctx, s.runtime) bin := Binary if bin == nil && Path != "" { diff --git a/conn.go b/conn.go index 0ee1152..afdb85c 100644 --- a/conn.go +++ b/conn.go @@ -52,7 +52,7 @@ func OpenFlags(filename string, flags OpenFlag) (conn *Conn, err error) { r, err := c.api.open.Call(c.ctx, uint64(namePtr), uint64(connPtr), uint64(flags), 0) if err != nil { - return nil, err + panic(err) } c.handle = c.mem.readUint32(connPtr) @@ -70,7 +70,7 @@ func OpenFlags(filename string, flags OpenFlag) (conn *Conn, err error) { // // https://www.sqlite.org/c3ref/close.html func (c *Conn) Close() error { - if c == nil { + if c == nil || c.handle == 0 { return nil } @@ -78,7 +78,7 @@ func (c *Conn) Close() error { r, err := c.api.close.Call(c.ctx, uint64(c.handle)) if err != nil { - return err + panic(err) } if err := c.error(r[0]); err != nil { @@ -162,7 +162,7 @@ func (c *Conn) Exec(sql string) error { r, err := c.api.exec.Call(c.ctx, uint64(c.handle), uint64(sqlPtr), 0, 0, 0) if err != nil { - return err + panic(err) } return c.error(r[0]) } @@ -188,7 +188,7 @@ func (c *Conn) PrepareFlags(sql string, flags PrepareFlag) (stmt *Stmt, tail str uint64(sqlPtr), uint64(len(sql)+1), uint64(flags), uint64(stmtPtr), uint64(tailPtr)) if err != nil { - return nil, "", err + panic(err) } stmt = &Stmt{c: c} diff --git a/stmt.go b/stmt.go index 3b18e75..98850dc 100644 --- a/stmt.go +++ b/stmt.go @@ -17,13 +17,13 @@ type Stmt struct { // // https://www.sqlite.org/c3ref/finalize.html func (s *Stmt) Close() error { - if s == nil { + if s == nil || s.handle == 0 { return nil } r, err := s.c.api.finalize.Call(s.c.ctx, uint64(s.handle)) if err != nil { - return err + panic(err) } s.handle = 0 @@ -36,7 +36,7 @@ func (s *Stmt) Close() error { func (s *Stmt) Reset() error { r, err := s.c.api.reset.Call(s.c.ctx, uint64(s.handle)) if err != nil { - return err + panic(err) } s.err = nil return s.c.error(r[0]) @@ -48,7 +48,7 @@ func (s *Stmt) Reset() error { func (s *Stmt) ClearBindings() error { r, err := s.c.api.clearBindings.Call(s.c.ctx, uint64(s.handle)) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } @@ -65,8 +65,7 @@ func (s *Stmt) ClearBindings() error { func (s *Stmt) Step() bool { r, err := s.c.api.step.Call(s.c.ctx, uint64(s.handle)) if err != nil { - s.err = err - return false + panic(err) } if r[0] == _ROW { return true @@ -136,7 +135,7 @@ func (s *Stmt) BindInt64(param int, value int64) error { r, err := s.c.api.bindInteger.Call(s.c.ctx, uint64(s.handle), uint64(param), uint64(value)) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } @@ -149,7 +148,7 @@ func (s *Stmt) BindFloat(param int, value float64) error { r, err := s.c.api.bindFloat.Call(s.c.ctx, uint64(s.handle), uint64(param), math.Float64bits(value)) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } @@ -165,7 +164,7 @@ func (s *Stmt) BindText(param int, value string) error { uint64(ptr), uint64(len(value)), s.c.api.destructor, _UTF8) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } @@ -182,7 +181,7 @@ func (s *Stmt) BindBlob(param int, value []byte) error { uint64(ptr), uint64(len(value)), s.c.api.destructor) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } @@ -195,7 +194,7 @@ func (s *Stmt) BindNull(param int) error { r, err := s.c.api.bindNull.Call(s.c.ctx, uint64(s.handle), uint64(param)) if err != nil { - return err + panic(err) } return s.c.error(r[0]) } diff --git a/vfs.go b/vfs.go index 90d653b..311a973 100644 --- a/vfs.go +++ b/vfs.go @@ -18,12 +18,12 @@ import ( "github.com/tetratelabs/wazero/sys" ) -func vfsInstantiate(ctx context.Context, r wazero.Runtime) (err error) { +func vfsInstantiate(ctx context.Context, r wazero.Runtime) { wasi := r.NewHostModuleBuilder("wasi_snapshot_preview1") wasi.NewFunctionBuilder().WithFunc(vfsExit).Export("proc_exit") - _, err = wasi.Instantiate(ctx) + _, err := wasi.Instantiate(ctx) if err != nil { - return err + panic(err) } env := r.NewHostModuleBuilder("env") @@ -47,7 +47,9 @@ func vfsInstantiate(ctx context.Context, r wazero.Runtime) (err error) { env.NewFunctionBuilder().WithFunc(vfsCheckReservedLock).Export("go_check_reserved_lock") env.NewFunctionBuilder().WithFunc(vfsFileControl).Export("go_file_control") _, err = env.Instantiate(ctx) - return err + if err != nil { + panic(err) + } } func vfsExit(ctx context.Context, mod api.Module, exitCode uint32) {