diff --git a/binding-mri/binding-util.h b/binding-mri/binding-util.h index 06bb416..b1ba786 100644 --- a/binding-mri/binding-util.h +++ b/binding-mri/binding-util.h @@ -204,7 +204,9 @@ rb_bool_new(bool value) if (!OBJ_INIT_COPY(self, orig)) /* When would this fail??*/\ return self; \ Klass *k = getPrivateData(orig); \ - setPrivateData(self, new Klass(*k)); \ + Klass *dup; \ + GUARD_EXC( dup = new Klass(*k); ) \ + setPrivateData(self, dup); \ return self; \ }