diff options
author | Ali Polatel <alip@exherbo.org> | 2010-05-26 20:56:07 +0300 |
---|---|---|
committer | Ali Polatel <alip@exherbo.org> | 2010-06-06 09:18:00 +0300 |
commit | 5c9e385591b66fa20cbb186393c48c52831a23b7 (patch) | |
tree | 2c87c8356373a958623e65ef311054799f09e5ea /bindings/ruby/directory.c | |
parent | d2a457a5d8238c54445a8a6066f79c112ebd3a04 (diff) |
ruby: Don't barf if an object is destroyed more than once
Raise RuntimeError instead.
Also revise Notmuch::Database a bit.
Add Notmuch::Database.open singleton method.
Diffstat (limited to 'bindings/ruby/directory.c')
-rw-r--r-- | bindings/ruby/directory.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bindings/ruby/directory.c b/bindings/ruby/directory.c index e73658c1..36dcb8be 100644 --- a/bindings/ruby/directory.c +++ b/bindings/ruby/directory.c @@ -33,6 +33,7 @@ notmuch_rb_directory_destroy(VALUE self) Data_Get_Struct(self, notmuch_directory_t, dir); notmuch_directory_destroy(dir); + DATA_PTR(self) = NULL; return Qnil; } @@ -48,7 +49,7 @@ notmuch_rb_directory_get_mtime(VALUE self) { notmuch_directory_t *dir; - Data_Get_Struct(self, notmuch_directory_t, dir); + Data_Get_Notmuch_Directory(self, dir); return UINT2NUM(notmuch_directory_get_mtime(dir)); } @@ -64,7 +65,7 @@ notmuch_rb_directory_set_mtime(VALUE self, VALUE mtimev) notmuch_status_t ret; notmuch_directory_t *dir; - Data_Get_Struct(self, notmuch_directory_t, dir); + Data_Get_Notmuch_Directory(self, dir); if (!FIXNUM_P(mtimev)) rb_raise(rb_eTypeError, "First argument not a fixnum"); @@ -87,7 +88,7 @@ notmuch_rb_directory_get_child_files(VALUE self) notmuch_directory_t *dir; notmuch_filenames_t *fnames; - Data_Get_Struct(self, notmuch_directory_t, dir); + Data_Get_Notmuch_Directory(self, dir); fnames = notmuch_directory_get_child_files(dir); @@ -106,7 +107,7 @@ notmuch_rb_directory_get_child_directories(VALUE self) notmuch_directory_t *dir; notmuch_filenames_t *fnames; - Data_Get_Struct(self, notmuch_directory_t, dir); + Data_Get_Notmuch_Directory(self, dir); fnames = notmuch_directory_get_child_directories(dir); |