rmagick 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- data/ChangeLog +9 -0
- data/README.html +13 -13
- data/README.txt +11 -11
- data/doc/comtasks.html +25 -4
- data/doc/constants.html +8 -8
- data/doc/draw.html +112 -116
- data/doc/ex/axes.rb +1 -1
- data/doc/ex/clip_path.rb +5 -4
- data/doc/ex/get_type_metrics.rb +2 -2
- data/doc/ex/resize_to_fill.rb +10 -0
- data/doc/ex/{crop_resized.rb → resize_to_fit.rb} +2 -2
- data/doc/ilist.html +79 -82
- data/doc/image1.html +213 -322
- data/doc/image2.html +123 -136
- data/doc/image3.html +340 -198
- data/doc/imageattrs.html +211 -192
- data/doc/imusage.html +6 -7
- data/doc/index.html +9 -16
- data/doc/info.html +90 -61
- data/doc/magick.html +6 -6
- data/doc/optequiv.html +26 -13
- data/doc/rvg.html +22 -23
- data/doc/rvgclip.html +15 -16
- data/doc/rvggroup.html +23 -23
- data/doc/rvgimage.html +18 -19
- data/doc/rvgpattern.html +101 -82
- data/doc/rvgshape.html +14 -21
- data/doc/rvgstyle.html +4 -4
- data/doc/rvgtext.html +10 -9
- data/doc/rvgtspan.html +12 -11
- data/doc/rvgtut.html +4 -4
- data/doc/rvguse.html +4 -4
- data/doc/rvgxform.html +9 -9
- data/doc/struct.html +193 -195
- data/doc/usage.html +12 -10
- data/examples/constitute.rb +7 -0
- data/ext/RMagick/MANIFEST +4 -4
- data/ext/RMagick/extconf.rb +54 -42
- data/ext/RMagick/rmagick.h +34 -11
- data/ext/RMagick/rmdraw.c +6 -6
- data/ext/RMagick/rmfill.c +2 -2
- data/ext/RMagick/rmilist.c +9 -9
- data/ext/RMagick/rmimage.c +110 -106
- data/ext/RMagick/rminfo.c +33 -14
- data/ext/RMagick/rmmain.c +11 -21
- data/ext/RMagick/rmutil.c +51 -11
- data/lib/RMagick.rb +25 -18
- data/post-clean.rb +3 -3
- data/post-install.rb +4 -5
- data/rmagick.gemspec +5 -3
- data/uninstall.rb +6 -6
- metadata +7 -7
- data/doc/ex/Adispatch.rb +0 -43
- data/doc/ex/Zconstitute.rb +0 -9
data/ext/RMagick/rmimage.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
/* $Id: rmimage.c,v 1.
|
1
|
+
/* $Id: rmimage.c,v 1.277 2008/01/08 23:47:33 rmagick Exp $ */
|
2
2
|
/*============================================================================\
|
3
|
-
| Copyright (C)
|
3
|
+
| Copyright (C) 2008 by Timothy P. Hunter
|
4
4
|
| Name: rmimage.c
|
5
5
|
| Author: Tim Hunter
|
6
6
|
| Purpose: Image class method definitions for RMagick
|
@@ -14,7 +14,7 @@ typedef Image *(flipper_t)(const Image *, ExceptionInfo *);
|
|
14
14
|
typedef Image *(magnifier_t)(const Image *, ExceptionInfo *);
|
15
15
|
typedef Image *(reader_t)(const Info *, ExceptionInfo *);
|
16
16
|
typedef Image *(scaler_t)(const Image *, const unsigned long, const unsigned long, ExceptionInfo *);
|
17
|
-
typedef
|
17
|
+
typedef MagickBooleanType (thresholder_t)(Image *, const char *);
|
18
18
|
typedef Image *(xformer_t)(const Image *, const RectangleInfo *, ExceptionInfo *);
|
19
19
|
|
20
20
|
static VALUE cropper(int, int, VALUE *, VALUE);
|
@@ -350,10 +350,10 @@ Image_add_profile(VALUE self, VALUE name)
|
|
350
350
|
long profile_filename_l = 0;
|
351
351
|
const StringInfo *profile;
|
352
352
|
|
353
|
-
image =
|
353
|
+
image = rm_check_frozen(self);
|
354
354
|
|
355
355
|
// ProfileImage issues a warning if something goes wrong.
|
356
|
-
profile_filename =
|
356
|
+
profile_filename = rm_str2cstr(name, &profile_filename_l);
|
357
357
|
|
358
358
|
info = CloneImageInfo(NULL);
|
359
359
|
if (!info)
|
@@ -408,7 +408,7 @@ Image_alpha_eq(VALUE self, VALUE type)
|
|
408
408
|
Image *image;
|
409
409
|
AlphaChannelType alpha;
|
410
410
|
|
411
|
-
image =
|
411
|
+
image = rm_check_frozen(self);
|
412
412
|
|
413
413
|
VALUE_TO_ENUM(type, alpha, AlphaChannelType);
|
414
414
|
|
@@ -558,7 +558,7 @@ Image_aset(VALUE self, VALUE key_arg, VALUE attr_arg)
|
|
558
558
|
char *attr;
|
559
559
|
unsigned int okay;
|
560
560
|
|
561
|
-
image =
|
561
|
+
image = rm_check_frozen(self);
|
562
562
|
|
563
563
|
attr = attr_arg == Qnil ? NULL : StringValuePtr(attr_arg);
|
564
564
|
|
@@ -705,7 +705,7 @@ Image_auto_orient(VALUE self)
|
|
705
705
|
VALUE
|
706
706
|
Image_auto_orient_bang(VALUE self)
|
707
707
|
{
|
708
|
-
(void)
|
708
|
+
(void) rm_check_frozen(self);
|
709
709
|
return auto_orient(True, self);
|
710
710
|
}
|
711
711
|
|
@@ -729,7 +729,7 @@ Image_background_color(VALUE self)
|
|
729
729
|
VALUE
|
730
730
|
Image_background_color_eq(VALUE self, VALUE color)
|
731
731
|
{
|
732
|
-
Image *image =
|
732
|
+
Image *image = rm_check_frozen(self);
|
733
733
|
Color_to_PixelPacket(&image->background_color, color);
|
734
734
|
return self;
|
735
735
|
}
|
@@ -791,7 +791,7 @@ VALUE Image_bias_eq(VALUE self, VALUE pct)
|
|
791
791
|
Image *image;
|
792
792
|
double bias;
|
793
793
|
|
794
|
-
image =
|
794
|
+
image = rm_check_frozen(self);
|
795
795
|
bias = rm_percentage(pct);
|
796
796
|
image->bias = bias * QuantumRange;
|
797
797
|
|
@@ -865,7 +865,7 @@ Image_black_point_compensation_eq(VALUE self, VALUE arg)
|
|
865
865
|
Image *image;
|
866
866
|
char *value;
|
867
867
|
|
868
|
-
image =
|
868
|
+
image = rm_check_frozen(self);
|
869
869
|
(void) rm_set_property(image, BlackPointCompensationKey, NULL);
|
870
870
|
value = RTEST(arg) ? "true" : "false";
|
871
871
|
(void) rm_set_property(image, BlackPointCompensationKey, value);
|
@@ -1331,7 +1331,7 @@ Image_border_bang(
|
|
1331
1331
|
VALUE height,
|
1332
1332
|
VALUE color)
|
1333
1333
|
{
|
1334
|
-
(void)
|
1334
|
+
(void) rm_check_frozen(self);
|
1335
1335
|
return border(True, self, width, height, color);
|
1336
1336
|
}
|
1337
1337
|
|
@@ -1366,7 +1366,7 @@ Image_border_color(VALUE self)
|
|
1366
1366
|
VALUE
|
1367
1367
|
Image_border_color_eq(VALUE self, VALUE color)
|
1368
1368
|
{
|
1369
|
-
Image *image =
|
1369
|
+
Image *image = rm_check_frozen(self);
|
1370
1370
|
Color_to_PixelPacket(&image->border_color, color);
|
1371
1371
|
return self;
|
1372
1372
|
}
|
@@ -1700,7 +1700,7 @@ Image_chromaticity(VALUE self)
|
|
1700
1700
|
VALUE
|
1701
1701
|
Image_chromaticity_eq(VALUE self, VALUE chroma)
|
1702
1702
|
{
|
1703
|
-
Image *image =
|
1703
|
+
Image *image = rm_check_frozen(self);
|
1704
1704
|
ChromaticityInfo_to_ChromaticityInfo(&image->chromaticity, chroma);
|
1705
1705
|
return self;
|
1706
1706
|
}
|
@@ -1737,7 +1737,7 @@ Image_clut_channel(int argc, VALUE *argv, VALUE self)
|
|
1737
1737
|
ChannelType channels;
|
1738
1738
|
MagickBooleanType okay;
|
1739
1739
|
|
1740
|
-
image =
|
1740
|
+
image = rm_check_frozen(self);
|
1741
1741
|
|
1742
1742
|
// check_destroyed before confirming the arguments
|
1743
1743
|
if (argc >= 1)
|
@@ -1861,9 +1861,9 @@ static VALUE set_profile(VALUE self, const char *name, VALUE profile)
|
|
1861
1861
|
long profile_length;
|
1862
1862
|
const StringInfo *profile_data;
|
1863
1863
|
|
1864
|
-
image =
|
1864
|
+
image = rm_check_frozen(self);
|
1865
1865
|
|
1866
|
-
profile_blob =
|
1866
|
+
profile_blob = rm_str2cstr(profile, &profile_length);
|
1867
1867
|
|
1868
1868
|
GetExceptionInfo(&exception);
|
1869
1869
|
m = GetMagickInfo(name, &exception);
|
@@ -1894,7 +1894,7 @@ static VALUE set_profile(VALUE self, const char *name, VALUE profile)
|
|
1894
1894
|
{
|
1895
1895
|
(void)ProfileImage(image, profile_name, profile_data->datum
|
1896
1896
|
, (unsigned long)profile_data->length
|
1897
|
-
, (MagickBooleanType)
|
1897
|
+
, (MagickBooleanType)MagickFalse);
|
1898
1898
|
if (image->exception.severity >= ErrorException)
|
1899
1899
|
{
|
1900
1900
|
break;
|
@@ -2183,7 +2183,7 @@ Image_colorspace_eq(VALUE self, VALUE colorspace)
|
|
2183
2183
|
Image *image;
|
2184
2184
|
ColorspaceType new_cs;
|
2185
2185
|
|
2186
|
-
image =
|
2186
|
+
image = rm_check_frozen(self);
|
2187
2187
|
VALUE_TO_ENUM(colorspace, new_cs, ColorspaceType);
|
2188
2188
|
(void) SetImageColorspace(image, new_cs);
|
2189
2189
|
|
@@ -2349,7 +2349,7 @@ VALUE Image_compose_eq(
|
|
2349
2349
|
VALUE self,
|
2350
2350
|
VALUE compose_arg)
|
2351
2351
|
{
|
2352
|
-
Image *image =
|
2352
|
+
Image *image = rm_check_frozen(self);
|
2353
2353
|
VALUE_TO_ENUM(compose_arg, image->compose, CompositeOperator);
|
2354
2354
|
return self;
|
2355
2355
|
}
|
@@ -2622,7 +2622,7 @@ Image_compression(VALUE self)
|
|
2622
2622
|
VALUE
|
2623
2623
|
Image_compression_eq(VALUE self, VALUE compression)
|
2624
2624
|
{
|
2625
|
-
Image *image =
|
2625
|
+
Image *image = rm_check_frozen(self);
|
2626
2626
|
VALUE_TO_ENUM(compression, image->compression, CompressionType);
|
2627
2627
|
return self;
|
2628
2628
|
}
|
@@ -2635,7 +2635,7 @@ Image_compression_eq(VALUE self, VALUE compression)
|
|
2635
2635
|
VALUE
|
2636
2636
|
Image_compress_colormap_bang(VALUE self)
|
2637
2637
|
{
|
2638
|
-
Image *image =
|
2638
|
+
Image *image = rm_check_frozen(self);
|
2639
2639
|
(void) CompressImageColormap(image);
|
2640
2640
|
rm_check_image_exception(image, RetainOnError);
|
2641
2641
|
|
@@ -2692,13 +2692,13 @@ Image_constitute(VALUE class, VALUE width_arg, VALUE height_arg
|
|
2692
2692
|
rb_raise(rb_eArgError, "width and height must be non-zero");
|
2693
2693
|
}
|
2694
2694
|
|
2695
|
-
map =
|
2695
|
+
map = rm_str2cstr(map_arg, &map_l);
|
2696
2696
|
|
2697
2697
|
npixels = (long)(width * height * map_l);
|
2698
|
-
if (
|
2698
|
+
if (RARRAY_LEN(pixels_arg) != npixels)
|
2699
2699
|
{
|
2700
2700
|
rb_raise(rb_eArgError, "wrong number of array elements (%ld for %ld)"
|
2701
|
-
,
|
2701
|
+
, RARRAY_LEN(pixels_arg), npixels);
|
2702
2702
|
}
|
2703
2703
|
|
2704
2704
|
// Inspect the first element in the pixels array to determine the expected
|
@@ -3044,7 +3044,7 @@ Image_crop(int argc, VALUE *argv, VALUE self)
|
|
3044
3044
|
VALUE
|
3045
3045
|
Image_crop_bang(int argc, VALUE *argv, VALUE self)
|
3046
3046
|
{
|
3047
|
-
(void)
|
3047
|
+
(void) rm_check_frozen(self);
|
3048
3048
|
return cropper(True, argc, argv, self);
|
3049
3049
|
}
|
3050
3050
|
|
@@ -3109,7 +3109,7 @@ Image_density_eq(VALUE self, VALUE density_arg)
|
|
3109
3109
|
int count;
|
3110
3110
|
double x_res, y_res;
|
3111
3111
|
|
3112
|
-
image =
|
3112
|
+
image = rm_check_frozen(self);
|
3113
3113
|
|
3114
3114
|
// Get the Class ID for the Geometry class.
|
3115
3115
|
if (!Class_Geometry)
|
@@ -3189,7 +3189,7 @@ DEF_ATTR_ACCESSOR(Image, delay, ulong)
|
|
3189
3189
|
VALUE
|
3190
3190
|
Image_delete_profile(VALUE self, VALUE name)
|
3191
3191
|
{
|
3192
|
-
Image *image =
|
3192
|
+
Image *image = rm_check_frozen(self);
|
3193
3193
|
(void) ProfileImage(image, StringValuePtr(name), NULL, 0, MagickTrue);
|
3194
3194
|
rm_check_image_exception(image, RetainOnError);
|
3195
3195
|
|
@@ -3377,7 +3377,7 @@ Image_dispatch(int argc, VALUE *argv, VALUE self)
|
|
3377
3377
|
y = NUM2LONG(argv[1]);
|
3378
3378
|
columns = NUM2ULONG(argv[2]);
|
3379
3379
|
rows = NUM2ULONG(argv[3]);
|
3380
|
-
map =
|
3380
|
+
map = rm_str2cstr(argv[4], &mapL);
|
3381
3381
|
if (argc == 6)
|
3382
3382
|
{
|
3383
3383
|
stg_type = RTEST(argv[5]) ? DoublePixel : QuantumPixel;
|
@@ -3470,7 +3470,7 @@ Image_dispose(VALUE self)
|
|
3470
3470
|
VALUE
|
3471
3471
|
Image_dispose_eq(VALUE self, VALUE dispose)
|
3472
3472
|
{
|
3473
|
-
Image *image =
|
3473
|
+
Image *image = rm_check_frozen(self);
|
3474
3474
|
VALUE_TO_ENUM(dispose, image->dispose, DisposeType);
|
3475
3475
|
return self;
|
3476
3476
|
}
|
@@ -3561,7 +3561,7 @@ Image_distort(int argc, VALUE *argv, VALUE self)
|
|
3561
3561
|
break;
|
3562
3562
|
}
|
3563
3563
|
|
3564
|
-
npoints =
|
3564
|
+
npoints = RARRAY_LEN(pts);
|
3565
3565
|
// Allocate points array from Ruby's memory. If an error occurs Ruby will
|
3566
3566
|
// be able to clean it up.
|
3567
3567
|
points = ALLOC_N(double, npoints);
|
@@ -3858,7 +3858,7 @@ Image_endian(VALUE self)
|
|
3858
3858
|
VALUE
|
3859
3859
|
Image_endian_eq(VALUE self, VALUE type)
|
3860
3860
|
{
|
3861
|
-
Image *image =
|
3861
|
+
Image *image = rm_check_frozen(self);
|
3862
3862
|
VALUE_TO_ENUM(type, image->endian, EndianType);
|
3863
3863
|
return self;
|
3864
3864
|
}
|
@@ -3955,7 +3955,7 @@ Image_equalize_channel(int argc, VALUE *argv, VALUE self)
|
|
3955
3955
|
VALUE
|
3956
3956
|
Image_erase_bang(VALUE self)
|
3957
3957
|
{
|
3958
|
-
Image *image =
|
3958
|
+
Image *image = rm_check_frozen(self);
|
3959
3959
|
|
3960
3960
|
(void) SetImageBackgroundColor(image);
|
3961
3961
|
rm_check_image_exception(image, RetainOnError);
|
@@ -4019,7 +4019,7 @@ Image_excerpt(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
|
|
4019
4019
|
VALUE
|
4020
4020
|
Image_excerpt_bang(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
|
4021
4021
|
{
|
4022
|
-
(void)
|
4022
|
+
(void) rm_check_frozen(self);
|
4023
4023
|
return excerpt(True, self, x, y, width, height);
|
4024
4024
|
}
|
4025
4025
|
|
@@ -4292,7 +4292,7 @@ Image_extract_info(VALUE self)
|
|
4292
4292
|
VALUE
|
4293
4293
|
Image_extract_info_eq(VALUE self, VALUE rect)
|
4294
4294
|
{
|
4295
|
-
Image *image =
|
4295
|
+
Image *image = rm_check_frozen(self);
|
4296
4296
|
Rectangle_to_RectangleInfo(&image->extract_info, rect);
|
4297
4297
|
return self;
|
4298
4298
|
}
|
@@ -4326,7 +4326,7 @@ Image_filter(VALUE self)
|
|
4326
4326
|
VALUE
|
4327
4327
|
Image_filter_eq(VALUE self, VALUE filter)
|
4328
4328
|
{
|
4329
|
-
Image *image =
|
4329
|
+
Image *image = rm_check_frozen(self);
|
4330
4330
|
VALUE_TO_ENUM(filter, image->filter, FilterTypes);
|
4331
4331
|
return self;
|
4332
4332
|
}
|
@@ -4426,7 +4426,7 @@ Image_flip(VALUE self)
|
|
4426
4426
|
VALUE
|
4427
4427
|
Image_flip_bang(VALUE self)
|
4428
4428
|
{
|
4429
|
-
(void)
|
4429
|
+
(void) rm_check_frozen(self);
|
4430
4430
|
return flipflop(True, self, FlipImage);
|
4431
4431
|
}
|
4432
4432
|
|
@@ -4448,7 +4448,7 @@ Image_flop(VALUE self)
|
|
4448
4448
|
VALUE
|
4449
4449
|
Image_flop_bang(VALUE self)
|
4450
4450
|
{
|
4451
|
-
(void)
|
4451
|
+
(void) rm_check_frozen(self);
|
4452
4452
|
return flipflop(True, self, FlopImage);
|
4453
4453
|
}
|
4454
4454
|
|
@@ -4492,7 +4492,7 @@ Image_format_eq(VALUE self, VALUE magick)
|
|
4492
4492
|
char *mgk;
|
4493
4493
|
ExceptionInfo exception;
|
4494
4494
|
|
4495
|
-
image =
|
4495
|
+
image = rm_check_frozen(self);
|
4496
4496
|
|
4497
4497
|
GetExceptionInfo(&exception);
|
4498
4498
|
|
@@ -4609,7 +4609,7 @@ Image_from_blob(VALUE class, VALUE blob_arg)
|
|
4609
4609
|
class = class; // defeat gcc message
|
4610
4610
|
blob_arg = blob_arg; // defeat gcc message
|
4611
4611
|
|
4612
|
-
blob = (void *)
|
4612
|
+
blob = (void *) rm_str2cstr(blob_arg, &length);
|
4613
4613
|
|
4614
4614
|
// Get a new Info object - run the parm block if supplied
|
4615
4615
|
info_obj = rm_info_new();
|
@@ -4635,7 +4635,7 @@ DEF_ATTR_READER(Image, fuzz, dbl)
|
|
4635
4635
|
*/
|
4636
4636
|
VALUE Image_fuzz_eq(VALUE self, VALUE fuzz)
|
4637
4637
|
{
|
4638
|
-
Image *image =
|
4638
|
+
Image *image = rm_check_frozen(self);
|
4639
4639
|
image->fuzz = rm_fuzz_to_dbl(fuzz);
|
4640
4640
|
return self;
|
4641
4641
|
}
|
@@ -4797,7 +4797,7 @@ Image_geometry_eq(
|
|
4797
4797
|
volatile VALUE geom_str;
|
4798
4798
|
char *geom;
|
4799
4799
|
|
4800
|
-
image =
|
4800
|
+
image = rm_check_frozen(self);
|
4801
4801
|
|
4802
4802
|
if (geometry == Qnil)
|
4803
4803
|
{
|
@@ -4986,7 +4986,7 @@ Image_import_pixels(int argc, VALUE *argv, VALUE self)
|
|
4986
4986
|
volatile void *buffer;
|
4987
4987
|
unsigned int okay;
|
4988
4988
|
|
4989
|
-
image =
|
4989
|
+
image = rm_check_frozen(self);
|
4990
4990
|
|
4991
4991
|
switch (argc)
|
4992
4992
|
{
|
@@ -5017,7 +5017,7 @@ Image_import_pixels(int argc, VALUE *argv, VALUE self)
|
|
5017
5017
|
// binary pixel data.
|
5018
5018
|
if (rb_respond_to(pixel_arg, rb_intern("to_str")))
|
5019
5019
|
{
|
5020
|
-
buffer = (void *)
|
5020
|
+
buffer = (void *)rm_str2cstr(pixel_arg, &buffer_l);
|
5021
5021
|
switch (stg_type)
|
5022
5022
|
{
|
5023
5023
|
case CharPixel:
|
@@ -5068,14 +5068,14 @@ Image_import_pixels(int argc, VALUE *argv, VALUE self)
|
|
5068
5068
|
// and raises TypeError if it can't. It usually is possible.
|
5069
5069
|
pixel_ary = rb_Array(pixel_arg);
|
5070
5070
|
|
5071
|
-
if (
|
5071
|
+
if (RARRAY_LEN(pixel_ary) % map_l != 0)
|
5072
5072
|
{
|
5073
5073
|
rb_raise(rb_eArgError, "pixel array must contain an exact multiple of the map length");
|
5074
5074
|
}
|
5075
|
-
if ((unsigned long)
|
5075
|
+
if ((unsigned long)RARRAY_LEN(pixel_ary) < npixels)
|
5076
5076
|
{
|
5077
5077
|
rb_raise(rb_eArgError, "pixel array too small (need %lu elements, got %ld)"
|
5078
|
-
, npixels,
|
5078
|
+
, npixels, RARRAY_LEN(pixel_ary));
|
5079
5079
|
}
|
5080
5080
|
|
5081
5081
|
if (stg_type == DoublePixel || stg_type == FloatPixel)
|
@@ -5282,7 +5282,7 @@ Image_interlace(VALUE self)
|
|
5282
5282
|
VALUE
|
5283
5283
|
Image_interlace_eq(VALUE self, VALUE interlace)
|
5284
5284
|
{
|
5285
|
-
Image *image =
|
5285
|
+
Image *image = rm_check_frozen(self);
|
5286
5286
|
VALUE_TO_ENUM(interlace, image->interlace, InterlaceType);
|
5287
5287
|
return self;
|
5288
5288
|
}
|
@@ -5474,7 +5474,7 @@ Image__load(VALUE class, VALUE str)
|
|
5474
5474
|
|
5475
5475
|
info = CloneImageInfo(NULL);
|
5476
5476
|
|
5477
|
-
blob =
|
5477
|
+
blob = rm_str2cstr(str, &length);
|
5478
5478
|
|
5479
5479
|
// Must be as least as big as the 1st 4 fields in DumpedImage
|
5480
5480
|
if (length <= (long)(sizeof(DumpedImage)-MaxTextExtent))
|
@@ -5573,7 +5573,7 @@ Image_magnify(VALUE self)
|
|
5573
5573
|
VALUE
|
5574
5574
|
Image_magnify_bang(VALUE self)
|
5575
5575
|
{
|
5576
|
-
(void)
|
5576
|
+
(void) rm_check_frozen(self);
|
5577
5577
|
return magnify(True, self, MagnifyImage);
|
5578
5578
|
}
|
5579
5579
|
|
@@ -5589,7 +5589,7 @@ Image_map(int argc, VALUE *argv, VALUE self)
|
|
5589
5589
|
Image *image, *new_image;
|
5590
5590
|
Image *map;
|
5591
5591
|
volatile VALUE map_obj, map_arg;
|
5592
|
-
unsigned int dither =
|
5592
|
+
unsigned int dither = MagickFalse;
|
5593
5593
|
|
5594
5594
|
image = rm_check_destroyed(self);
|
5595
5595
|
switch (argc)
|
@@ -5657,7 +5657,7 @@ Image_mask_eq(VALUE self, VALUE mask)
|
|
5657
5657
|
PixelPacket *q;
|
5658
5658
|
ExceptionInfo exception;
|
5659
5659
|
|
5660
|
-
image =
|
5660
|
+
image = rm_check_frozen(self);
|
5661
5661
|
|
5662
5662
|
if (mask != Qnil)
|
5663
5663
|
{
|
@@ -5697,14 +5697,14 @@ Image_mask_eq(VALUE self, VALUE mask)
|
|
5697
5697
|
q->blue = q->opacity;
|
5698
5698
|
q += 1;
|
5699
5699
|
}
|
5700
|
-
if (SyncImagePixels(clip_mask) == (MagickBooleanType)
|
5700
|
+
if (SyncImagePixels(clip_mask) == (MagickBooleanType)MagickFalse)
|
5701
5701
|
{
|
5702
5702
|
(void) DestroyImage(clip_mask);
|
5703
5703
|
rm_magick_error("SyncImagePixels failed", NULL);
|
5704
5704
|
}
|
5705
5705
|
}
|
5706
5706
|
|
5707
|
-
if (SetImageStorageClass(clip_mask, DirectClass) == (MagickBooleanType)
|
5707
|
+
if (SetImageStorageClass(clip_mask, DirectClass) == (MagickBooleanType)MagickFalse)
|
5708
5708
|
{
|
5709
5709
|
(void) DestroyImage(clip_mask);
|
5710
5710
|
rm_magick_error("SetImageStorageClass failed", NULL);
|
@@ -5764,7 +5764,7 @@ Image_matte_eq(VALUE self, VALUE matte)
|
|
5764
5764
|
|
5765
5765
|
return Image_alpha_eq(self, alpha_channel_type);
|
5766
5766
|
#else
|
5767
|
-
Image *image =
|
5767
|
+
Image *image = rm_check_frozen(self);
|
5768
5768
|
image->matte = RTEST(matte) ? MagickTrue : MagickFalse;
|
5769
5769
|
return matte;
|
5770
5770
|
#endif
|
@@ -5789,7 +5789,7 @@ Image_matte_color(VALUE self)
|
|
5789
5789
|
VALUE
|
5790
5790
|
Image_matte_color_eq(VALUE self, VALUE color)
|
5791
5791
|
{
|
5792
|
-
Image *image =
|
5792
|
+
Image *image = rm_check_frozen(self);
|
5793
5793
|
Color_to_PixelPacket(&image->matte_color, color);
|
5794
5794
|
return self;
|
5795
5795
|
}
|
@@ -5924,7 +5924,7 @@ Image_minify(VALUE self)
|
|
5924
5924
|
VALUE
|
5925
5925
|
Image_minify_bang(VALUE self)
|
5926
5926
|
{
|
5927
|
-
(void)
|
5927
|
+
(void) rm_check_frozen(self);
|
5928
5928
|
return magnify(True, self, MinifyImage);
|
5929
5929
|
}
|
5930
5930
|
|
@@ -5984,7 +5984,7 @@ Image_modulate(int argc, VALUE *argv, VALUE self)
|
|
5984
5984
|
VALUE
|
5985
5985
|
Image_monitor_eq(VALUE self, VALUE monitor)
|
5986
5986
|
{
|
5987
|
-
Image *image =
|
5987
|
+
Image *image = rm_check_frozen(self);
|
5988
5988
|
|
5989
5989
|
if (NIL_P(monitor))
|
5990
5990
|
{
|
@@ -6100,7 +6100,7 @@ VALUE
|
|
6100
6100
|
Image_negate(int argc, VALUE *argv, VALUE self)
|
6101
6101
|
{
|
6102
6102
|
Image *image, *new_image;
|
6103
|
-
unsigned int grayscale =
|
6103
|
+
unsigned int grayscale = MagickFalse;
|
6104
6104
|
|
6105
6105
|
image = rm_check_destroyed(self);
|
6106
6106
|
if (argc == 1)
|
@@ -6131,7 +6131,7 @@ Image_negate_channel(int argc, VALUE *argv, VALUE self)
|
|
6131
6131
|
{
|
6132
6132
|
Image *image, *new_image;
|
6133
6133
|
ChannelType channels;
|
6134
|
-
unsigned int grayscale =
|
6134
|
+
unsigned int grayscale = MagickFalse;
|
6135
6135
|
|
6136
6136
|
image = rm_check_destroyed(self);
|
6137
6137
|
channels = extract_channels(&argc, argv);
|
@@ -6371,17 +6371,17 @@ VALUE
|
|
6371
6371
|
Image_opaque(VALUE self, VALUE target, VALUE fill)
|
6372
6372
|
{
|
6373
6373
|
Image *image, *new_image;
|
6374
|
-
|
6375
|
-
|
6374
|
+
MagickPixelPacket target_pp;
|
6375
|
+
MagickPixelPacket fill_pp;
|
6376
6376
|
|
6377
6377
|
image = rm_check_destroyed(self);
|
6378
6378
|
new_image = rm_clone_image(image);
|
6379
6379
|
|
6380
6380
|
// Allow color name or Pixel
|
6381
|
-
|
6382
|
-
|
6381
|
+
Color_to_MagickPixelPacket(image, &target_pp, target);
|
6382
|
+
Color_to_MagickPixelPacket(image, &fill_pp, fill);
|
6383
6383
|
|
6384
|
-
(void)
|
6384
|
+
(void) PaintOpaqueImage(new_image, &target_pp, &fill_pp);
|
6385
6385
|
rm_check_image_exception(new_image, DestroyOnError);
|
6386
6386
|
|
6387
6387
|
return rm_image_new(new_image);
|
@@ -6479,7 +6479,7 @@ Image_orientation(VALUE self)
|
|
6479
6479
|
VALUE
|
6480
6480
|
Image_orientation_eq(VALUE self, VALUE orientation)
|
6481
6481
|
{
|
6482
|
-
Image *image =
|
6482
|
+
Image *image = rm_check_frozen(self);
|
6483
6483
|
VALUE_TO_ENUM(orientation, image->orientation, OrientationType);
|
6484
6484
|
return self;
|
6485
6485
|
}
|
@@ -6504,7 +6504,7 @@ Image_page(VALUE self)
|
|
6504
6504
|
VALUE
|
6505
6505
|
Image_page_eq(VALUE self, VALUE rect)
|
6506
6506
|
{
|
6507
|
-
Image *image =
|
6507
|
+
Image *image = rm_check_frozen(self);
|
6508
6508
|
Rectangle_to_RectangleInfo(&image->page, rect);
|
6509
6509
|
return self;
|
6510
6510
|
}
|
@@ -6656,7 +6656,7 @@ Image_pixel_interpolation_method(VALUE self)
|
|
6656
6656
|
VALUE
|
6657
6657
|
Image_pixel_interpolation_method_eq(VALUE self, VALUE method)
|
6658
6658
|
{
|
6659
|
-
Image *image =
|
6659
|
+
Image *image = rm_check_frozen(self);
|
6660
6660
|
VALUE_TO_ENUM(method, image->interpolate, InterpolatePixelMethod);
|
6661
6661
|
return self;
|
6662
6662
|
}
|
@@ -7092,7 +7092,7 @@ Image_raise(int argc, VALUE *argv, VALUE self)
|
|
7092
7092
|
{
|
7093
7093
|
Image *image, *new_image;
|
7094
7094
|
RectangleInfo rect;
|
7095
|
-
int raised =
|
7095
|
+
int raised = MagickTrue; // default
|
7096
7096
|
|
7097
7097
|
memset(&rect, 0, sizeof(rect));
|
7098
7098
|
rect.width = 6; // default
|
@@ -7183,7 +7183,7 @@ rd_image(VALUE class, VALUE file, reader_t reader)
|
|
7183
7183
|
// Convert arg to string. If an exception occurs raise an error condition.
|
7184
7184
|
file = rb_rescue(rb_String, file, file_arg_rescue, file);
|
7185
7185
|
|
7186
|
-
filename =
|
7186
|
+
filename = rm_str2cstr(file, &filename_l);
|
7187
7187
|
filename_l = min(filename_l, MaxTextExtent-1);
|
7188
7188
|
memcpy(info->filename, filename, (size_t)filename_l);
|
7189
7189
|
info->filename[filename_l] = '\0';
|
@@ -7219,7 +7219,7 @@ Image_recolor(VALUE self, VALUE color_matrix)
|
|
7219
7219
|
GetExceptionInfo(&exception);
|
7220
7220
|
|
7221
7221
|
// Allocate color matrix from Ruby's memory
|
7222
|
-
len =
|
7222
|
+
len = RARRAY_LEN(color_matrix);
|
7223
7223
|
matrix = ALLOC_N(double, len);
|
7224
7224
|
|
7225
7225
|
for (x = 0; x < len; x++)
|
@@ -7269,7 +7269,7 @@ Image_read_inline(VALUE self, VALUE content)
|
|
7269
7269
|
|
7270
7270
|
self = self; // defeat gcc message
|
7271
7271
|
|
7272
|
-
image_data =
|
7272
|
+
image_data = rm_str2cstr(content, &image_data_l);
|
7273
7273
|
|
7274
7274
|
// Search for a comma. If found, we'll set the start of the
|
7275
7275
|
// image data just following the comma. Otherwise we'll assume
|
@@ -7373,7 +7373,7 @@ Image_rendering_intent(VALUE self)
|
|
7373
7373
|
VALUE
|
7374
7374
|
Image_rendering_intent_eq(VALUE self, VALUE ri)
|
7375
7375
|
{
|
7376
|
-
Image *image =
|
7376
|
+
Image *image = rm_check_frozen(self);
|
7377
7377
|
VALUE_TO_ENUM(ri, image->rendering_intent, RenderingIntent);
|
7378
7378
|
return self;
|
7379
7379
|
}
|
@@ -7467,7 +7467,7 @@ Image_resize(int argc, VALUE *argv, VALUE self)
|
|
7467
7467
|
VALUE
|
7468
7468
|
Image_resize_bang(int argc, VALUE *argv, VALUE self)
|
7469
7469
|
{
|
7470
|
-
(void)
|
7470
|
+
(void) rm_check_frozen(self);
|
7471
7471
|
return resize(True, argc, argv, self);
|
7472
7472
|
}
|
7473
7473
|
|
@@ -7518,7 +7518,7 @@ rotate(int bang, int argc, VALUE *argv, VALUE self)
|
|
7518
7518
|
switch (argc)
|
7519
7519
|
{
|
7520
7520
|
case 2:
|
7521
|
-
arrow =
|
7521
|
+
arrow = rm_str2cstr(argv[1], &arrow_l);
|
7522
7522
|
if (arrow_l != 1 || (*arrow != '<' && *arrow != '>'))
|
7523
7523
|
{
|
7524
7524
|
rb_raise(rb_eArgError, "second argument must be '<' or '>', '%s' given", arrow);
|
@@ -7567,7 +7567,7 @@ Image_rotate(int argc, VALUE *argv, VALUE self)
|
|
7567
7567
|
VALUE
|
7568
7568
|
Image_rotate_bang(int argc, VALUE *argv, VALUE self)
|
7569
7569
|
{
|
7570
|
-
(void)
|
7570
|
+
(void) rm_check_frozen(self);
|
7571
7571
|
return rotate(True, argc, argv, self);
|
7572
7572
|
}
|
7573
7573
|
|
@@ -7590,7 +7590,7 @@ Image_sample(int argc, VALUE *argv, VALUE self)
|
|
7590
7590
|
VALUE
|
7591
7591
|
Image_sample_bang(int argc, VALUE *argv, VALUE self)
|
7592
7592
|
{
|
7593
|
-
(void)
|
7593
|
+
(void) rm_check_frozen(self);
|
7594
7594
|
return scale(True, argc, argv, self, SampleImage);
|
7595
7595
|
}
|
7596
7596
|
|
@@ -7611,7 +7611,7 @@ Image_scale(int argc, VALUE *argv, VALUE self)
|
|
7611
7611
|
VALUE
|
7612
7612
|
Image_scale_bang(int argc, VALUE *argv, VALUE self)
|
7613
7613
|
{
|
7614
|
-
(void)
|
7614
|
+
(void) rm_check_frozen(self);
|
7615
7615
|
return scale(True, argc, argv, self, ScaleImage);
|
7616
7616
|
}
|
7617
7617
|
|
@@ -7693,7 +7693,7 @@ Image_set_channel_depth(VALUE self, VALUE channel_arg, VALUE depth)
|
|
7693
7693
|
ChannelType channel;
|
7694
7694
|
unsigned long channel_depth;
|
7695
7695
|
|
7696
|
-
image =
|
7696
|
+
image = rm_check_frozen(self);
|
7697
7697
|
|
7698
7698
|
VALUE_TO_ENUM(channel_arg, channel, ChannelType);
|
7699
7699
|
channel_depth = NUM2ULONG(depth);
|
@@ -7784,7 +7784,7 @@ Image_segment(int argc, VALUE *argv, VALUE self)
|
|
7784
7784
|
{
|
7785
7785
|
Image *image, *new_image;
|
7786
7786
|
int colorspace = RGBColorspace; // These are the Magick++ defaults
|
7787
|
-
unsigned int verbose =
|
7787
|
+
unsigned int verbose = MagickFalse;
|
7788
7788
|
double cluster_threshold = 1.0;
|
7789
7789
|
double smoothing_threshold = 1.5;
|
7790
7790
|
|
@@ -7825,7 +7825,7 @@ Image_opacity_eq(VALUE self, VALUE opacity_arg)
|
|
7825
7825
|
Image *image;
|
7826
7826
|
Quantum opacity;
|
7827
7827
|
|
7828
|
-
image =
|
7828
|
+
image = rm_check_frozen(self);
|
7829
7829
|
opacity = APP2QUANTUM(opacity_arg);
|
7830
7830
|
(void) SetImageOpacity(image, opacity);
|
7831
7831
|
rm_check_image_exception(image, RetainOnError);
|
@@ -7944,7 +7944,7 @@ Image_shade(int argc, VALUE *argv, VALUE self)
|
|
7944
7944
|
{
|
7945
7945
|
Image *image, *new_image;
|
7946
7946
|
double azimuth = 30.0, elevation = 30.0;
|
7947
|
-
unsigned int shading=
|
7947
|
+
unsigned int shading=MagickFalse;
|
7948
7948
|
ExceptionInfo exception;
|
7949
7949
|
|
7950
7950
|
image = rm_check_destroyed(self);
|
@@ -8108,7 +8108,7 @@ Image_shave_bang(
|
|
8108
8108
|
VALUE width,
|
8109
8109
|
VALUE height)
|
8110
8110
|
{
|
8111
|
-
(void)
|
8111
|
+
(void) rm_check_frozen(self);
|
8112
8112
|
return xform_image(True, self, INT2FIX(0), INT2FIX(0), width, height, ShaveImage);
|
8113
8113
|
}
|
8114
8114
|
|
@@ -8189,18 +8189,18 @@ VALUE
|
|
8189
8189
|
Image_signature(VALUE self)
|
8190
8190
|
{
|
8191
8191
|
Image *image;
|
8192
|
-
const
|
8192
|
+
const char *signature;
|
8193
8193
|
|
8194
8194
|
image = rm_check_destroyed(self);
|
8195
8195
|
|
8196
8196
|
(void) SignatureImage(image);
|
8197
|
-
signature =
|
8197
|
+
signature = rm_get_property(image, "signature");
|
8198
8198
|
rm_check_image_exception(image, RetainOnError);
|
8199
8199
|
if (!signature)
|
8200
8200
|
{
|
8201
8201
|
return Qnil;
|
8202
8202
|
}
|
8203
|
-
return rb_str_new(signature
|
8203
|
+
return rb_str_new(signature, 64);
|
8204
8204
|
}
|
8205
8205
|
|
8206
8206
|
|
@@ -8263,7 +8263,7 @@ VALUE
|
|
8263
8263
|
Image_spaceship(VALUE self, VALUE other)
|
8264
8264
|
{
|
8265
8265
|
Image *imageA, *imageB;
|
8266
|
-
const
|
8266
|
+
const char *sigA, *sigB;
|
8267
8267
|
int res;
|
8268
8268
|
|
8269
8269
|
imageA = rm_check_destroyed(self);
|
@@ -8278,14 +8278,14 @@ Image_spaceship(VALUE self, VALUE other)
|
|
8278
8278
|
|
8279
8279
|
(void) SignatureImage(imageA);
|
8280
8280
|
(void) SignatureImage(imageB);
|
8281
|
-
sigA =
|
8282
|
-
sigB =
|
8281
|
+
sigA = rm_get_property(imageA, "signature");
|
8282
|
+
sigB = rm_get_property(imageB, "signature");
|
8283
8283
|
if (!sigA || !sigB)
|
8284
8284
|
{
|
8285
8285
|
rb_raise(Class_ImageMagickError, "can't get image signature");
|
8286
8286
|
}
|
8287
8287
|
|
8288
|
-
res = memcmp(sigA
|
8288
|
+
res = memcmp(sigA, sigB, 64);
|
8289
8289
|
res = res > 0 ? 1 : (res < 0 ? -1 : 0); // reduce to 1, -1, 0
|
8290
8290
|
|
8291
8291
|
return INT2FIX(res);
|
@@ -8479,7 +8479,7 @@ Image_class_type_eq(VALUE self, VALUE new_class_type)
|
|
8479
8479
|
ClassType class_type;
|
8480
8480
|
QuantizeInfo qinfo;
|
8481
8481
|
|
8482
|
-
image =
|
8482
|
+
image = rm_check_frozen(self);
|
8483
8483
|
|
8484
8484
|
VALUE_TO_ENUM(new_class_type, class_type, ClassType);
|
8485
8485
|
|
@@ -8580,7 +8580,7 @@ Image_store_pixels(
|
|
8580
8580
|
VALUE
|
8581
8581
|
Image_strip_bang(VALUE self)
|
8582
8582
|
{
|
8583
|
-
Image *image =
|
8583
|
+
Image *image = rm_check_frozen(self);
|
8584
8584
|
(void) StripImage(image);
|
8585
8585
|
rm_check_image_exception(image, RetainOnError);
|
8586
8586
|
return self;
|
@@ -8860,7 +8860,7 @@ Image_thumbnail(int argc, VALUE *argv, VALUE self)
|
|
8860
8860
|
VALUE
|
8861
8861
|
Image_thumbnail_bang(int argc, VALUE *argv, VALUE self)
|
8862
8862
|
{
|
8863
|
-
(void)
|
8863
|
+
(void) rm_check_frozen(self);
|
8864
8864
|
return thumbnail(True, argc, argv, self);
|
8865
8865
|
}
|
8866
8866
|
|
@@ -8880,7 +8880,7 @@ Image_ticks_per_second(VALUE self)
|
|
8880
8880
|
VALUE
|
8881
8881
|
Image_ticks_per_second_eq(VALUE self, VALUE tps)
|
8882
8882
|
{
|
8883
|
-
Image *image =
|
8883
|
+
Image *image = rm_check_frozen(self);
|
8884
8884
|
image->ticks_per_second = NUM2ULONG(tps);
|
8885
8885
|
return self;
|
8886
8886
|
}
|
@@ -9093,7 +9093,7 @@ VALUE
|
|
9093
9093
|
Image_transparent(int argc, VALUE *argv, VALUE self)
|
9094
9094
|
{
|
9095
9095
|
Image *image, *new_image;
|
9096
|
-
|
9096
|
+
MagickPixelPacket color;
|
9097
9097
|
Quantum opacity = TransparentOpacity;
|
9098
9098
|
|
9099
9099
|
image = rm_check_destroyed(self);
|
@@ -9103,7 +9103,7 @@ Image_transparent(int argc, VALUE *argv, VALUE self)
|
|
9103
9103
|
case 2:
|
9104
9104
|
opacity = APP2QUANTUM(argv[1]);
|
9105
9105
|
case 1:
|
9106
|
-
|
9106
|
+
Color_to_MagickPixelPacket(image, &color, argv[0]);
|
9107
9107
|
break;
|
9108
9108
|
default:
|
9109
9109
|
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
|
@@ -9112,7 +9112,7 @@ Image_transparent(int argc, VALUE *argv, VALUE self)
|
|
9112
9112
|
|
9113
9113
|
new_image = rm_clone_image(image);
|
9114
9114
|
|
9115
|
-
(void)
|
9115
|
+
(void) PaintTransparentImage(new_image, &color, opacity);
|
9116
9116
|
rm_check_image_exception(new_image, DestroyOnError);
|
9117
9117
|
|
9118
9118
|
return rm_image_new(new_image);
|
@@ -9138,7 +9138,7 @@ Image_transparent_color(VALUE self)
|
|
9138
9138
|
VALUE
|
9139
9139
|
Image_transparent_color_eq(VALUE self, VALUE color)
|
9140
9140
|
{
|
9141
|
-
Image *image =
|
9141
|
+
Image *image = rm_check_frozen(self);
|
9142
9142
|
Color_to_PixelPacket(&image->transparent_color, color);
|
9143
9143
|
return self;
|
9144
9144
|
}
|
@@ -9160,7 +9160,7 @@ Image_transpose(VALUE self)
|
|
9160
9160
|
VALUE
|
9161
9161
|
Image_transpose_bang(VALUE self)
|
9162
9162
|
{
|
9163
|
-
(void)
|
9163
|
+
(void) rm_check_frozen(self);
|
9164
9164
|
return crisscross(True, self, TransposeImage);
|
9165
9165
|
}
|
9166
9166
|
|
@@ -9180,7 +9180,7 @@ Image_transverse(VALUE self)
|
|
9180
9180
|
VALUE
|
9181
9181
|
Image_transverse_bang(VALUE self)
|
9182
9182
|
{
|
9183
|
-
(void)
|
9183
|
+
(void) rm_check_frozen(self);
|
9184
9184
|
return crisscross(True, self, TransverseImage);
|
9185
9185
|
}
|
9186
9186
|
|
@@ -9255,7 +9255,7 @@ Image_trim(int argc, VALUE *argv, VALUE self)
|
|
9255
9255
|
VALUE
|
9256
9256
|
Image_trim_bang(int argc, VALUE *argv, VALUE self)
|
9257
9257
|
{
|
9258
|
-
(void)
|
9258
|
+
(void) rm_check_frozen(self);
|
9259
9259
|
return trimmer(True, argc, argv, self);
|
9260
9260
|
}
|
9261
9261
|
|
@@ -9273,7 +9273,7 @@ VALUE Image_gravity(VALUE self)
|
|
9273
9273
|
|
9274
9274
|
VALUE Image_gravity_eq(VALUE self, VALUE gravity)
|
9275
9275
|
{
|
9276
|
-
Image *image =
|
9276
|
+
Image *image = rm_check_frozen(self);
|
9277
9277
|
VALUE_TO_ENUM(gravity, image->gravity, GravityType);
|
9278
9278
|
return gravity;
|
9279
9279
|
}
|
@@ -9344,7 +9344,7 @@ Image_units_eq(
|
|
9344
9344
|
VALUE restype)
|
9345
9345
|
{
|
9346
9346
|
ResolutionType units;
|
9347
|
-
Image *image =
|
9347
|
+
Image *image = rm_check_frozen(self);
|
9348
9348
|
|
9349
9349
|
VALUE_TO_ENUM(restype, units, ResolutionType);
|
9350
9350
|
|
@@ -9567,7 +9567,7 @@ Image_virtual_pixel_method_eq(VALUE self, VALUE method)
|
|
9567
9567
|
Image *image;
|
9568
9568
|
VirtualPixelMethod vpm;
|
9569
9569
|
|
9570
|
-
image =
|
9570
|
+
image = rm_check_frozen(self);
|
9571
9571
|
VALUE_TO_ENUM(method, vpm, VirtualPixelMethod);
|
9572
9572
|
(void) SetImageVirtualPixelMethod(image, vpm);
|
9573
9573
|
rm_check_image_exception(image, RetainOnError);
|
@@ -9863,7 +9863,7 @@ Image_write(VALUE self, VALUE file)
|
|
9863
9863
|
// Convert arg to string. If an exception occurs raise an error condition.
|
9864
9864
|
file = rb_rescue(rb_String, file, file_arg_rescue, file);
|
9865
9865
|
|
9866
|
-
filename =
|
9866
|
+
filename = rm_str2cstr(file, &filename_l);
|
9867
9867
|
filename_l = min(filename_l, MaxTextExtent-1);
|
9868
9868
|
memcpy(info->filename, filename, (size_t)filename_l);
|
9869
9869
|
info->filename[filename_l] = '\0';
|
@@ -10221,10 +10221,14 @@ static void call_trace_proc(Image *image, char *which)
|
|
10221
10221
|
n = sprintf(buffer, "%016llx", (unsigned long long)image);
|
10222
10222
|
#elif HAVE_TYPE_UINT64_T
|
10223
10223
|
n = sprintf(buffer, "%016llx", (uint64_t)image);
|
10224
|
+
#elif HAVE_TYPE_UINTMAX_T
|
10225
|
+
n = sprintf(buffer, "%016llx", (uintmax_t)image);
|
10224
10226
|
#elif HAVE_TYPE___INT64
|
10225
10227
|
n = sprintf(buffer, "%016llx", (__int64)image);
|
10228
|
+
#elif SIZEOF_UNSIGNED_LONG == 8
|
10229
|
+
n = sprintf(buffer, "%016lx", (unsigned long)image);
|
10226
10230
|
#else
|
10227
|
-
#error
|
10231
|
+
#error "No 64-bit type detected."
|
10228
10232
|
#endif
|
10229
10233
|
#else
|
10230
10234
|
n = sprintf(buffer, "%08lx", (unsigned long)image);
|