diff --git a/ChangeLog b/ChangeLog index 8a0d18d582..32db880223 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Tue Oct 7 21:40:17 2014 Masaki Suketa + + * ext/win32ole/win32ole_method.c: refactoring. add + olemethod_data_get_struct to wrap Data_Get_Struct. + * ext/win32ole/win32ole_method.h: ditto. + + * ext/win32ole/win32ole_param.c (oleparam_ole_param): + call olemethod_data_get_struct instead of Data_Get_Struct. + Tue Oct 7 11:17:08 2014 Nobuyoshi Nakada * ext/etc/etc.c (etc_systmpdir): try user temporary directory by diff --git a/ext/win32ole/win32ole_method.c b/ext/win32ole/win32ole_method.c index 4d3a398b14..1c068505e4 100644 --- a/ext/win32ole/win32ole_method.c +++ b/ext/win32ole/win32ole_method.c @@ -48,6 +48,14 @@ olemethod_free(struct olemethoddata *polemethod) OLE_FREE(polemethod->pOwnerTypeInfo); free(polemethod); } + +struct olemethoddata * +olemethod_data_get_struct(VALUE obj) +{ + struct olemethoddata *pmethod; + Data_Get_Struct(obj, struct olemethoddata, pmethod); + return pmethod; +} static VALUE ole_method_sub(VALUE self, ITypeInfo *pOwnerTypeInfo, ITypeInfo *pTypeInfo, VALUE name) diff --git a/ext/win32ole/win32ole_method.h b/ext/win32ole/win32ole_method.h index 7eacb1b596..ff2898ebeb 100644 --- a/ext/win32ole/win32ole_method.h +++ b/ext/win32ole/win32ole_method.h @@ -11,5 +11,6 @@ VALUE cWIN32OLE_METHOD; VALUE folemethod_s_allocate(VALUE klass); VALUE ole_methods_from_typeinfo(ITypeInfo *pTypeInfo, int mask); VALUE create_win32ole_method(ITypeInfo *pTypeInfo, VALUE name); +struct olemethoddata *olemethod_data_get_struct(VALUE obj); void Init_win32ole_method(void); #endif diff --git a/ext/win32ole/win32ole_param.c b/ext/win32ole/win32ole_param.c index c268a85ca6..6e77735f47 100644 --- a/ext/win32ole/win32ole_param.c +++ b/ext/win32ole/win32ole_param.c @@ -124,8 +124,7 @@ oleparam_ole_param_from_index(VALUE self, ITypeInfo *pTypeInfo, UINT method_inde static VALUE oleparam_ole_param(VALUE self, VALUE olemethod, int n) { - struct olemethoddata *pmethod; - Data_Get_Struct(olemethod, struct olemethoddata, pmethod); + struct olemethoddata *pmethod = olemethod_data_get_struct(olemethod); return oleparam_ole_param_from_index(self, pmethod->pTypeInfo, pmethod->index, n); }