Panic consistently.

This commit is contained in:
Nuno Cruces
2023-02-16 13:52:05 +00:00
parent 110f36bdf9
commit 6a80499823
4 changed files with 22 additions and 24 deletions

View File

@@ -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 != "" {

10
conn.go
View File

@@ -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}

21
stmt.go
View File

@@ -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])
}

10
vfs.go
View File

@@ -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) {