From 11846a17eed6350063c753a0d4b684d9c3c695d0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 27 Feb 2011 01:37:03 +0000 Subject: avoid needless wrapping of the magic_t with struct No need to allocate anything at all. --- mahoro.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/mahoro.c b/mahoro.c index f99346a..385234e 100644 --- a/mahoro.c +++ b/mahoro.c @@ -12,20 +12,15 @@ # define RSTRING_PTR(s)->ptr #endif -struct MagicCookie -{ - magic_t cookie; -}; - static VALUE cMahoro; static VALUE eMahoroError; static void mahoro_free(ptr) - struct MagicCookie *ptr; + void *ptr; { - magic_close(ptr->cookie); - xfree(ptr); + if (ptr) + magic_close((magic_t)ptr); } static VALUE @@ -42,7 +37,6 @@ mahoro_initialize(argc, argv, self) { int flags = MAGIC_NONE; char *path = 0; - struct MagicCookie *ptr; magic_t cookie; VALUE vpath, vflags; @@ -66,9 +60,7 @@ mahoro_initialize(argc, argv, self) magic_error(cookie)); } - ptr = ALLOC(struct MagicCookie); - ptr->cookie = cookie; - DATA_PTR(self) = ptr; + DATA_PTR(self) = cookie; return self; } @@ -78,7 +70,7 @@ mahoro_file(self, path) VALUE self, path; { const char *msg; - magic_t cookie = ((struct MagicCookie *) DATA_PTR(self))->cookie; + magic_t cookie = (magic_t)DATA_PTR(self); if(!(msg = magic_file(cookie, StringValueCStr(path)))) { rb_raise(eMahoroError, "failed lookup: %s", magic_error(cookie)); @@ -92,7 +84,7 @@ mahoro_buffer(self, input) VALUE self, input; { const char *msg; - magic_t cookie = ((struct MagicCookie *) DATA_PTR(self))->cookie; + magic_t cookie = (magic_t)DATA_PTR(self); StringValue(input); @@ -108,7 +100,7 @@ static VALUE mahoro_set_flags(self, flags) VALUE self, flags; { - magic_t cookie = ((struct MagicCookie *) DATA_PTR(self))->cookie; + magic_t cookie = (magic_t)DATA_PTR(self); return INT2FIX(magic_setflags(cookie, FIX2INT(flags))); } @@ -120,7 +112,7 @@ mahoro_check(argc, argv, self) { char *path = 0; VALUE vpath; - magic_t cookie = ((struct MagicCookie *) DATA_PTR(self))->cookie; + magic_t cookie = (magic_t)DATA_PTR(self); switch(rb_scan_args(argc, argv, "01", &vpath)) { case 1: @@ -156,7 +148,7 @@ static VALUE mahoro_load(self, path) VALUE self, path; { - magic_t cookie = ((struct MagicCookie *) DATA_PTR(self))->cookie; + magic_t cookie = (magic_t)DATA_PTR(self); if(magic_load(cookie, StringValuePtr(path))) { rb_raise(eMahoroError, "failed load: %s", magic_error(cookie)); -- cgit v1.2.3-24-ge0c7