ext/RMagick/rmkinfo.c in rmagick-4.0.0 vs ext/RMagick/rmkinfo.c in rmagick-4.1.0.rc1
- old
+ new
@@ -51,14 +51,30 @@
*/
VALUE
KernelInfo_initialize(VALUE self, VALUE kernel_string)
{
KernelInfo *kernel;
+#if defined(IMAGEMAGICK_7)
+ ExceptionInfo *exception;
+#endif
Check_Type(kernel_string, T_STRING);
+#if defined(IMAGEMAGICK_7)
+ exception = AcquireExceptionInfo();
+ kernel = AcquireKernelInfo(StringValueCStr(kernel_string), exception);
+ if (rm_should_raise_exception(exception, DestroyExceptionRetention))
+ {
+ if (kernel != (KernelInfo *) NULL)
+ {
+ (void) DestroyKernelInfo(kernel);
+ }
+ rm_raise_exception(exception);
+ }
+#else
kernel = AcquireKernelInfo(StringValueCStr(kernel_string));
+#endif
if (!kernel)
{
rb_raise(rb_eRuntimeError, "failed to parse kernel string");
}
@@ -214,15 +230,31 @@
KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
{
KernelInfo *kernel;
KernelInfoType kernel_type;
GeometryInfo info;
+#if defined(IMAGEMAGICK_7)
+ ExceptionInfo *exception;
+#endif
Check_Type(geometry, T_STRING);
VALUE_TO_ENUM(what, kernel_type, KernelInfoType);
ParseGeometry(StringValueCStr(geometry), &info);
+#if defined(IMAGEMAGICK_7)
+ exception = AcquireExceptionInfo();
+ kernel = AcquireKernelBuiltIn(kernel_type, &info, exception);
+ if (rm_should_raise_exception(exception, DestroyExceptionRetention))
+ {
+ if (kernel != (KernelInfo *) NULL)
+ {
+ (void) DestroyKernelInfo(kernel);
+ }
+ rm_raise_exception(exception);
+ }
+#else
kernel = AcquireKernelBuiltIn(kernel_type, &info);
+#endif
if (!kernel)
{
rb_raise(rb_eRuntimeError, "failed to acquire builtin kernel");
}