rmagick 4.1.0.rc2 → 4.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.

Files changed (412) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +3 -0
  4. data/.github/workflows/ci.yml +148 -0
  5. data/.gitignore +3 -1
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +24 -0
  8. data/.rubocop_todo.yml +80 -270
  9. data/.yardopts +5 -0
  10. data/CHANGELOG.md +63 -0
  11. data/CONTRIBUTING.md +14 -10
  12. data/README.md +292 -0
  13. data/Rakefile +16 -22
  14. data/before_install_linux.sh +22 -32
  15. data/before_install_osx.sh +56 -2
  16. data/ext/RMagick/extconf.rb +100 -94
  17. data/ext/RMagick/rmagick.c +77 -104
  18. data/ext/RMagick/rmagick.h +74 -70
  19. data/ext/RMagick/rmdraw.c +261 -444
  20. data/ext/RMagick/rmenum.c +96 -113
  21. data/ext/RMagick/rmfill.c +46 -77
  22. data/ext/RMagick/rmilist.c +136 -244
  23. data/ext/RMagick/rmimage.c +3395 -4166
  24. data/ext/RMagick/rminfo.c +531 -737
  25. data/ext/RMagick/rmkinfo.c +21 -87
  26. data/ext/RMagick/rmmain.c +405 -245
  27. data/ext/RMagick/rmmontage.c +60 -126
  28. data/ext/RMagick/rmpixel.c +401 -345
  29. data/ext/RMagick/rmstruct.c +62 -88
  30. data/ext/RMagick/rmutil.c +112 -218
  31. data/lib/rmagick/version.rb +1 -1
  32. data/lib/rmagick_internal.rb +128 -77
  33. data/lib/rvg/clippath.rb +2 -1
  34. data/lib/rvg/container.rb +10 -5
  35. data/lib/rvg/describable.rb +1 -1
  36. data/lib/rvg/embellishable.rb +5 -4
  37. data/lib/rvg/misc.rb +15 -12
  38. data/lib/rvg/paint.rb +2 -1
  39. data/lib/rvg/pathdata.rb +12 -11
  40. data/lib/rvg/rvg.rb +8 -4
  41. data/lib/rvg/stylable.rb +9 -7
  42. data/lib/rvg/text.rb +11 -6
  43. data/lib/rvg/transformable.rb +3 -2
  44. data/lib/rvg/units.rb +1 -1
  45. data/rmagick.gemspec +7 -6
  46. metadata +31 -421
  47. data/.appveyor.yml +0 -57
  48. data/.circleci/config.yml +0 -56
  49. data/.ruby-version +0 -1
  50. data/.simplecov +0 -27
  51. data/.travis.yml +0 -64
  52. data/Doxyfile +0 -1514
  53. data/README.textile +0 -259
  54. data/benchmarks/memory/README.md +0 -50
  55. data/benchmarks/memory/image_new.rb +0 -8
  56. data/benchmarks/memory/rmagick.gnuplot +0 -16
  57. data/doc/.cvsignore +0 -1
  58. data/doc/comtasks.html +0 -287
  59. data/doc/constants.html +0 -1581
  60. data/doc/css/doc.css +0 -299
  61. data/doc/css/popup.css +0 -34
  62. data/doc/css/ref.css +0 -67
  63. data/doc/draw.html +0 -3272
  64. data/doc/ex/InitialCoords.rb +0 -22
  65. data/doc/ex/NewCoordSys.rb +0 -30
  66. data/doc/ex/OrigCoordSys.rb +0 -16
  67. data/doc/ex/PreserveAspectRatio.rb +0 -204
  68. data/doc/ex/RotateScale.rb +0 -36
  69. data/doc/ex/Skew.rb +0 -38
  70. data/doc/ex/Use01.rb +0 -15
  71. data/doc/ex/Use02.rb +0 -20
  72. data/doc/ex/Use03.rb +0 -16
  73. data/doc/ex/ViewBox.rb +0 -31
  74. data/doc/ex/adaptive_threshold.rb +0 -9
  75. data/doc/ex/add_noise.rb +0 -16
  76. data/doc/ex/affine.rb +0 -48
  77. data/doc/ex/affine_transform.rb +0 -20
  78. data/doc/ex/arc.rb +0 -49
  79. data/doc/ex/arcpath.rb +0 -32
  80. data/doc/ex/arcs01.rb +0 -28
  81. data/doc/ex/arcs02.rb +0 -59
  82. data/doc/ex/average.rb +0 -15
  83. data/doc/ex/axes.rb +0 -64
  84. data/doc/ex/baseline_shift01.rb +0 -17
  85. data/doc/ex/bilevel_channel.rb +0 -8
  86. data/doc/ex/blur_image.rb +0 -12
  87. data/doc/ex/border.rb +0 -10
  88. data/doc/ex/bounding_box.rb +0 -42
  89. data/doc/ex/cbezier1.rb +0 -41
  90. data/doc/ex/cbezier2.rb +0 -41
  91. data/doc/ex/cbezier3.rb +0 -41
  92. data/doc/ex/cbezier4.rb +0 -42
  93. data/doc/ex/cbezier5.rb +0 -42
  94. data/doc/ex/cbezier6.rb +0 -53
  95. data/doc/ex/channel.rb +0 -25
  96. data/doc/ex/charcoal.rb +0 -12
  97. data/doc/ex/chop.rb +0 -29
  98. data/doc/ex/circle.rb +0 -33
  99. data/doc/ex/circle01.rb +0 -16
  100. data/doc/ex/clip_path.rb +0 -60
  101. data/doc/ex/coalesce.rb +0 -57
  102. data/doc/ex/color_fill_to_border.rb +0 -29
  103. data/doc/ex/color_floodfill.rb +0 -28
  104. data/doc/ex/color_histogram.rb +0 -47
  105. data/doc/ex/color_reset.rb +0 -11
  106. data/doc/ex/colorize.rb +0 -16
  107. data/doc/ex/colors.rb +0 -64
  108. data/doc/ex/compose_mask.rb +0 -22
  109. data/doc/ex/composite.rb +0 -133
  110. data/doc/ex/composite_layers.rb +0 -52
  111. data/doc/ex/composite_tiled.rb +0 -21
  112. data/doc/ex/contrast.rb +0 -36
  113. data/doc/ex/crop.rb +0 -31
  114. data/doc/ex/crop_with_gravity.rb +0 -42
  115. data/doc/ex/cubic01.rb +0 -43
  116. data/doc/ex/cubic02.rb +0 -91
  117. data/doc/ex/cycle_colormap.rb +0 -21
  118. data/doc/ex/dissolve.rb +0 -12
  119. data/doc/ex/drawcomp.rb +0 -41
  120. data/doc/ex/drop_shadow.rb +0 -60
  121. data/doc/ex/edge.rb +0 -11
  122. data/doc/ex/ellipse.rb +0 -45
  123. data/doc/ex/ellipse01.rb +0 -21
  124. data/doc/ex/emboss.rb +0 -11
  125. data/doc/ex/enhance.rb +0 -28
  126. data/doc/ex/equalize.rb +0 -11
  127. data/doc/ex/evenodd.rb +0 -42
  128. data/doc/ex/fill_pattern.rb +0 -23
  129. data/doc/ex/flatten_images.rb +0 -36
  130. data/doc/ex/flip.rb +0 -11
  131. data/doc/ex/flop.rb +0 -11
  132. data/doc/ex/font_styles.rb +0 -32
  133. data/doc/ex/fonts.rb +0 -16
  134. data/doc/ex/frame.rb +0 -12
  135. data/doc/ex/gaussian_blur.rb +0 -11
  136. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  137. data/doc/ex/get_pixels.rb +0 -45
  138. data/doc/ex/get_type_metrics.rb +0 -142
  139. data/doc/ex/gradientfill.rb +0 -27
  140. data/doc/ex/grav.rb +0 -45
  141. data/doc/ex/gravity.rb +0 -78
  142. data/doc/ex/group.rb +0 -26
  143. data/doc/ex/hatchfill.rb +0 -27
  144. data/doc/ex/image.rb +0 -44
  145. data/doc/ex/images/Apple.miff +0 -0
  146. data/doc/ex/images/Ballerina.jpg +0 -0
  147. data/doc/ex/images/Ballerina3.jpg +0 -0
  148. data/doc/ex/images/Button_0.gif +0 -0
  149. data/doc/ex/images/Button_1.gif +0 -0
  150. data/doc/ex/images/Button_2.gif +0 -0
  151. data/doc/ex/images/Button_3.gif +0 -0
  152. data/doc/ex/images/Button_4.gif +0 -0
  153. data/doc/ex/images/Button_5.gif +0 -0
  154. data/doc/ex/images/Button_6.gif +0 -0
  155. data/doc/ex/images/Button_7.gif +0 -0
  156. data/doc/ex/images/Button_8.gif +0 -0
  157. data/doc/ex/images/Button_9.gif +0 -0
  158. data/doc/ex/images/Button_A.gif +0 -0
  159. data/doc/ex/images/Button_B.gif +0 -0
  160. data/doc/ex/images/Button_C.gif +0 -0
  161. data/doc/ex/images/Button_D.gif +0 -0
  162. data/doc/ex/images/Button_E.gif +0 -0
  163. data/doc/ex/images/Button_F.gif +0 -0
  164. data/doc/ex/images/Button_G.gif +0 -0
  165. data/doc/ex/images/Button_H.gif +0 -0
  166. data/doc/ex/images/Button_I.gif +0 -0
  167. data/doc/ex/images/Button_J.gif +0 -0
  168. data/doc/ex/images/Button_K.gif +0 -0
  169. data/doc/ex/images/Button_L.gif +0 -0
  170. data/doc/ex/images/Button_M.gif +0 -0
  171. data/doc/ex/images/Button_N.gif +0 -0
  172. data/doc/ex/images/Button_O.gif +0 -0
  173. data/doc/ex/images/Button_P.gif +0 -0
  174. data/doc/ex/images/Button_Q.gif +0 -0
  175. data/doc/ex/images/Button_R.gif +0 -0
  176. data/doc/ex/images/Button_S.gif +0 -0
  177. data/doc/ex/images/Button_T.gif +0 -0
  178. data/doc/ex/images/Button_U.gif +0 -0
  179. data/doc/ex/images/Button_V.gif +0 -0
  180. data/doc/ex/images/Button_W.gif +0 -0
  181. data/doc/ex/images/Button_X.gif +0 -0
  182. data/doc/ex/images/Button_Y.gif +0 -0
  183. data/doc/ex/images/Button_Z.gif +0 -0
  184. data/doc/ex/images/Cheetah.jpg +0 -0
  185. data/doc/ex/images/Coffee.png +0 -0
  186. data/doc/ex/images/Flower_Hat.jpg +0 -0
  187. data/doc/ex/images/Gold_Statue.jpg +0 -0
  188. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  189. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  190. data/doc/ex/images/Leaf.miff +0 -0
  191. data/doc/ex/images/No.png +0 -0
  192. data/doc/ex/images/Polynesia.jpg +0 -0
  193. data/doc/ex/images/Red_Rocks.jpg +0 -0
  194. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  195. data/doc/ex/images/Shorts.jpg +0 -0
  196. data/doc/ex/images/Snake.png +0 -0
  197. data/doc/ex/images/Violin.jpg +0 -0
  198. data/doc/ex/images/Yellow_Rose.miff +0 -0
  199. data/doc/ex/images/big-duck.gif +0 -0
  200. data/doc/ex/images/duck.gif +0 -0
  201. data/doc/ex/images/duck0.gif +0 -0
  202. data/doc/ex/images/duck1.gif +0 -0
  203. data/doc/ex/images/duck10.gif +0 -0
  204. data/doc/ex/images/duck11.gif +0 -0
  205. data/doc/ex/images/duck12.gif +0 -0
  206. data/doc/ex/images/duck13.gif +0 -0
  207. data/doc/ex/images/duck14.gif +0 -0
  208. data/doc/ex/images/duck15.gif +0 -0
  209. data/doc/ex/images/duck2.gif +0 -0
  210. data/doc/ex/images/duck3.gif +0 -0
  211. data/doc/ex/images/duck4.gif +0 -0
  212. data/doc/ex/images/duck5.gif +0 -0
  213. data/doc/ex/images/duck6.gif +0 -0
  214. data/doc/ex/images/duck7.gif +0 -0
  215. data/doc/ex/images/duck8.gif +0 -0
  216. data/doc/ex/images/duck9.gif +0 -0
  217. data/doc/ex/images/graydient230x6.gif +0 -0
  218. data/doc/ex/images/image_with_profile.jpg +0 -0
  219. data/doc/ex/images/logo400x83.gif +0 -0
  220. data/doc/ex/images/model.miff +0 -0
  221. data/doc/ex/images/notimplemented.gif +0 -0
  222. data/doc/ex/images/smile.miff +0 -0
  223. data/doc/ex/images/spin.gif +0 -0
  224. data/doc/ex/implode.rb +0 -34
  225. data/doc/ex/level.rb +0 -11
  226. data/doc/ex/level_colors.rb +0 -11
  227. data/doc/ex/line.rb +0 -41
  228. data/doc/ex/line01.rb +0 -21
  229. data/doc/ex/mask.rb +0 -35
  230. data/doc/ex/matte_fill_to_border.rb +0 -39
  231. data/doc/ex/matte_floodfill.rb +0 -32
  232. data/doc/ex/matte_replace.rb +0 -39
  233. data/doc/ex/median_filter.rb +0 -28
  234. data/doc/ex/modulate.rb +0 -11
  235. data/doc/ex/mono.rb +0 -23
  236. data/doc/ex/morph.rb +0 -25
  237. data/doc/ex/mosaic.rb +0 -37
  238. data/doc/ex/motion_blur.rb +0 -11
  239. data/doc/ex/negate.rb +0 -11
  240. data/doc/ex/negate_channel.rb +0 -9
  241. data/doc/ex/nested_rvg.rb +0 -21
  242. data/doc/ex/nonzero.rb +0 -42
  243. data/doc/ex/normalize.rb +0 -11
  244. data/doc/ex/oil_paint.rb +0 -11
  245. data/doc/ex/opacity.rb +0 -37
  246. data/doc/ex/ordered_dither.rb +0 -11
  247. data/doc/ex/path.rb +0 -63
  248. data/doc/ex/pattern1.rb +0 -25
  249. data/doc/ex/pattern2.rb +0 -26
  250. data/doc/ex/polaroid.rb +0 -26
  251. data/doc/ex/polygon.rb +0 -23
  252. data/doc/ex/polygon01.rb +0 -21
  253. data/doc/ex/polyline.rb +0 -22
  254. data/doc/ex/polyline01.rb +0 -21
  255. data/doc/ex/posterize.rb +0 -8
  256. data/doc/ex/preview.rb +0 -8
  257. data/doc/ex/qbezierpath.rb +0 -52
  258. data/doc/ex/quad01.rb +0 -34
  259. data/doc/ex/quantize-m.rb +0 -25
  260. data/doc/ex/radial_blur.rb +0 -9
  261. data/doc/ex/raise.rb +0 -8
  262. data/doc/ex/random_threshold_channel.rb +0 -13
  263. data/doc/ex/rect01.rb +0 -14
  264. data/doc/ex/rect02.rb +0 -20
  265. data/doc/ex/rectangle.rb +0 -34
  266. data/doc/ex/reduce_noise.rb +0 -28
  267. data/doc/ex/remap.rb +0 -11
  268. data/doc/ex/remap_images.rb +0 -19
  269. data/doc/ex/resize_to_fill.rb +0 -8
  270. data/doc/ex/resize_to_fit.rb +0 -8
  271. data/doc/ex/roll.rb +0 -9
  272. data/doc/ex/rotate.rb +0 -44
  273. data/doc/ex/rotate_f.rb +0 -14
  274. data/doc/ex/roundrect.rb +0 -33
  275. data/doc/ex/rubyname.rb +0 -30
  276. data/doc/ex/rvg_clippath.rb +0 -12
  277. data/doc/ex/rvg_linecap.rb +0 -42
  278. data/doc/ex/rvg_linejoin.rb +0 -40
  279. data/doc/ex/rvg_opacity.rb +0 -18
  280. data/doc/ex/rvg_pattern.rb +0 -26
  281. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  282. data/doc/ex/segment.rb +0 -11
  283. data/doc/ex/sepiatone.rb +0 -7
  284. data/doc/ex/shade.rb +0 -11
  285. data/doc/ex/shadow.rb +0 -30
  286. data/doc/ex/shave.rb +0 -15
  287. data/doc/ex/shear.rb +0 -10
  288. data/doc/ex/sketch.rb +0 -17
  289. data/doc/ex/skewx.rb +0 -51
  290. data/doc/ex/skewy.rb +0 -47
  291. data/doc/ex/smile.rb +0 -126
  292. data/doc/ex/solarize.rb +0 -11
  293. data/doc/ex/sparse_color.rb +0 -55
  294. data/doc/ex/splice.rb +0 -8
  295. data/doc/ex/spread.rb +0 -11
  296. data/doc/ex/stegano.rb +0 -54
  297. data/doc/ex/stroke_dasharray.rb +0 -42
  298. data/doc/ex/stroke_fill.rb +0 -10
  299. data/doc/ex/stroke_linecap.rb +0 -44
  300. data/doc/ex/stroke_linejoin.rb +0 -48
  301. data/doc/ex/stroke_width.rb +0 -49
  302. data/doc/ex/swirl.rb +0 -17
  303. data/doc/ex/text.rb +0 -37
  304. data/doc/ex/text01.rb +0 -16
  305. data/doc/ex/text_align.rb +0 -36
  306. data/doc/ex/text_antialias.rb +0 -37
  307. data/doc/ex/text_styles.rb +0 -19
  308. data/doc/ex/text_undercolor.rb +0 -28
  309. data/doc/ex/texture_fill_to_border.rb +0 -34
  310. data/doc/ex/texture_floodfill.rb +0 -32
  311. data/doc/ex/texturefill.rb +0 -24
  312. data/doc/ex/threshold.rb +0 -13
  313. data/doc/ex/to_blob.rb +0 -13
  314. data/doc/ex/translate.rb +0 -39
  315. data/doc/ex/transparent.rb +0 -38
  316. data/doc/ex/transpose.rb +0 -9
  317. data/doc/ex/transverse.rb +0 -9
  318. data/doc/ex/tref01.rb +0 -24
  319. data/doc/ex/triangle01.rb +0 -15
  320. data/doc/ex/trim.rb +0 -23
  321. data/doc/ex/tspan01.rb +0 -17
  322. data/doc/ex/tspan02.rb +0 -17
  323. data/doc/ex/tspan03.rb +0 -19
  324. data/doc/ex/unsharp_mask.rb +0 -28
  325. data/doc/ex/viewex.rb +0 -33
  326. data/doc/ex/vignette.rb +0 -12
  327. data/doc/ex/watermark.rb +0 -27
  328. data/doc/ex/wave.rb +0 -9
  329. data/doc/ex/wet_floor.rb +0 -58
  330. data/doc/ex/writing_mode01.rb +0 -26
  331. data/doc/ex/writing_mode02.rb +0 -26
  332. data/doc/ilist.html +0 -2056
  333. data/doc/image1.html +0 -4680
  334. data/doc/image2.html +0 -3665
  335. data/doc/image3.html +0 -4522
  336. data/doc/imageattrs.html +0 -1638
  337. data/doc/imusage.html +0 -514
  338. data/doc/index.html +0 -416
  339. data/doc/info.html +0 -1499
  340. data/doc/magick.html +0 -570
  341. data/doc/optequiv.html +0 -2435
  342. data/doc/rvg.html +0 -975
  343. data/doc/rvgclip.html +0 -248
  344. data/doc/rvggroup.html +0 -305
  345. data/doc/rvgimage.html +0 -289
  346. data/doc/rvgpattern.html +0 -475
  347. data/doc/rvgshape.html +0 -406
  348. data/doc/rvgstyle.html +0 -270
  349. data/doc/rvgtext.html +0 -465
  350. data/doc/rvgtspan.html +0 -238
  351. data/doc/rvgtut.html +0 -530
  352. data/doc/rvguse.html +0 -145
  353. data/doc/rvgxform.html +0 -294
  354. data/doc/scripts/doc.js +0 -22
  355. data/doc/scripts/stripeTables.js +0 -23
  356. data/doc/struct.html +0 -1339
  357. data/doc/usage.html +0 -1621
  358. data/examples/constitute.rb +0 -7
  359. data/examples/crop_with_gravity.rb +0 -43
  360. data/examples/demo.rb +0 -323
  361. data/examples/describe.rb +0 -41
  362. data/examples/find_similar_region.rb +0 -34
  363. data/examples/histogram.rb +0 -312
  364. data/examples/identify.rb +0 -174
  365. data/examples/image_opacity.rb +0 -28
  366. data/examples/import_export.rb +0 -31
  367. data/examples/pattern_fill.rb +0 -37
  368. data/examples/rotating_text.rb +0 -45
  369. data/examples/spinner.rb +0 -49
  370. data/examples/thumbnail.rb +0 -64
  371. data/examples/vignette.rb +0 -78
  372. data/spec/rmagick/ImageList1_spec.rb +0 -24
  373. data/spec/rmagick/draw_spec.rb +0 -155
  374. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  375. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  376. data/spec/rmagick/image/composite_spec.rb +0 -72
  377. data/spec/rmagick/image/constitute_spec.rb +0 -13
  378. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  379. data/spec/rmagick/image/dissolve_spec.rb +0 -54
  380. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  381. data/spec/rmagick/image/ping_spec.rb +0 -12
  382. data/spec/rmagick/image/properties_spec.rb +0 -27
  383. data/spec/rmagick/image/read_spec.rb +0 -28
  384. data/spec/spec_helper.rb +0 -9
  385. data/spec/support/issue_200/app.rb +0 -8
  386. data/test/Draw.rb +0 -351
  387. data/test/Enum.rb +0 -228
  388. data/test/Fill.rb +0 -93
  389. data/test/Image1.rb +0 -606
  390. data/test/Image2.rb +0 -1408
  391. data/test/Image3.rb +0 -1086
  392. data/test/ImageList1.rb +0 -858
  393. data/test/ImageList2.rb +0 -375
  394. data/test/Image_attributes.rb +0 -635
  395. data/test/Import_Export.rb +0 -111
  396. data/test/Info.rb +0 -436
  397. data/test/KernelInfo.rb +0 -59
  398. data/test/Magick.rb +0 -311
  399. data/test/Pixel.rb +0 -259
  400. data/test/PolaroidOptions.rb +0 -23
  401. data/test/Preview.rb +0 -26
  402. data/test/Struct.rb +0 -45
  403. data/test/appearance/Montage.rb +0 -26
  404. data/test/appearance/appearance_assertion.rb +0 -13
  405. data/test/appearance/expected/montage_border_color.jpg +0 -0
  406. data/test/cmyk.icm +0 -0
  407. data/test/lib/internal/Draw.rb +0 -811
  408. data/test/lib/internal/Geometry.rb +0 -98
  409. data/test/lib/internal/Magick.rb +0 -40
  410. data/test/srgb.icm +0 -0
  411. data/test/test_all_basic.rb +0 -49
  412. data/test/tmpnam_test.rb +0 -50
@@ -76,10 +76,10 @@ rm_enum_new(VALUE class, VALUE sym, VALUE val)
76
76
  static const char *
77
77
  rm_enum_to_cstr(VALUE enum_type)
78
78
  {
79
- MagickEnum *magick_enum;
79
+ MagickEnum *magick_enum;
80
80
 
81
- Data_Get_Struct(enum_type, MagickEnum, magick_enum);
82
- return rb_id2name(magick_enum->id);
81
+ Data_Get_Struct(enum_type, MagickEnum, magick_enum);
82
+ return rb_id2name(magick_enum->id);
83
83
  }
84
84
 
85
85
  /**
@@ -96,44 +96,34 @@ static void rm_enum_free(void *magick_enum)
96
96
  /**
97
97
  * Enum class alloc function.
98
98
  *
99
- * No Ruby usage (internal function)
100
- *
101
- * @param class the Ruby class to use
102
- * @return a new enumerator
99
+ * @return [Magick::Enum] a new enumerator
103
100
  */
104
101
  VALUE
105
102
  Enum_alloc(VALUE class)
106
103
  {
107
- MagickEnum *magick_enum;
108
- VALUE enumr;
104
+ MagickEnum *magick_enum;
105
+ VALUE enumr;
109
106
 
110
- enumr = Data_Make_Struct(class, MagickEnum, NULL, rm_enum_free, magick_enum);
111
- rb_obj_freeze(enumr);
107
+ enumr = Data_Make_Struct(class, MagickEnum, NULL, rm_enum_free, magick_enum);
108
+ rb_obj_freeze(enumr);
112
109
 
113
- return enumr;
110
+ return enumr;
114
111
  }
115
112
 
116
113
 
117
114
  /**
118
115
  * "Case equal" operator for Enum.
119
116
  *
120
- * Ruby usage:
121
- * - @verbatim Enum#=== @endverbatim
122
- *
123
- * Notes:
124
- * - Yes, I know "case equal" is a misnomer.
125
- *
126
- * @param self this object
127
- * @param other the other object
128
- * @return true or false
117
+ * @param other [Object] the other object
118
+ * @return [Boolean] true or false
129
119
  */
130
120
  VALUE
131
121
  Enum_case_eq(VALUE self, VALUE other)
132
122
  {
133
- MagickEnum *this, *that;
134
-
135
123
  if (CLASS_OF(self) == CLASS_OF(other))
136
124
  {
125
+ MagickEnum *this, *that;
126
+
137
127
  Data_Get_Struct(self, MagickEnum, this);
138
128
  Data_Get_Struct(other, MagickEnum, that);
139
129
  return this->val == that->val ? Qtrue : Qfalse;
@@ -146,58 +136,43 @@ Enum_case_eq(VALUE self, VALUE other)
146
136
  /**
147
137
  * Initialize a new Enum instance.
148
138
  *
149
- * Ruby usage:
150
- * - @verbatim Enum#initialize(sym,val) @endverbatim
151
- *
152
- * @param self this object
153
- * @param sym the symbol
154
- * @param val the value for the symbol
155
- * @return self
139
+ * @param sym [Symbol] the symbol as enum name
140
+ * @param val [Numeric] the value for enum
141
+ * @return [Magick::Enum] self
156
142
  */
157
143
  VALUE
158
144
  Enum_initialize(VALUE self, VALUE sym, VALUE val)
159
145
  {
160
- MagickEnum *magick_enum;
146
+ MagickEnum *magick_enum;
161
147
 
162
- Data_Get_Struct(self, MagickEnum, magick_enum);
163
- magick_enum->id = rb_to_id(sym); /* convert symbol to ID */
164
- magick_enum->val = NUM2INT(val);
148
+ Data_Get_Struct(self, MagickEnum, magick_enum);
149
+ magick_enum->id = rb_to_id(sym); /* convert symbol to ID */
150
+ magick_enum->val = NUM2INT(val);
165
151
 
166
- return self;
152
+ return self;
167
153
  }
168
154
 
169
155
 
170
156
  /**
171
157
  * Return the value of an enum.
172
158
  *
173
- * Ruby usage:
174
- * - @verbatim Enum#to_i @endverbatim
175
- *
176
- * @param self this object
177
- * @return this object's value
159
+ * @return [Numeric] this object's value
178
160
  */
179
161
  VALUE
180
162
  Enum_to_i(VALUE self)
181
163
  {
182
- MagickEnum *magick_enum;
164
+ MagickEnum *magick_enum;
183
165
 
184
- Data_Get_Struct(self, MagickEnum, magick_enum);
185
- return INT2NUM(magick_enum->val);
166
+ Data_Get_Struct(self, MagickEnum, magick_enum);
167
+ return INT2NUM(magick_enum->val);
186
168
  }
187
169
 
188
170
 
189
171
  /**
190
172
  * Support Comparable module in Enum.
191
173
  *
192
- * Ruby usage:
193
- * - @verbatim Enum#<=> @endverbatim
194
- *
195
- * Notes:
196
- * - Enums must be instances of the same class to be equal.
197
- *
198
- * @param self this object
199
- * @param other the other object
200
- * @return -1, 0, 1, or nil
174
+ * @param other [Object] the other object
175
+ * @return [-1, 0, 1, nil] the result of compare
201
176
  */
202
177
  VALUE
203
178
  Enum_spaceship(VALUE self, VALUE other)
@@ -225,67 +200,52 @@ Enum_spaceship(VALUE self, VALUE other)
225
200
 
226
201
  /**
227
202
  * Bitwise OR for enums
228
- *
229
- * Ruby usage:
230
- * - @verbatim Enum1 | Enum2 @endverbatim
231
- *
232
- * Notes:
233
- * - Enums must be instances of the same class.
234
203
  *
235
- * @param Enum1 this object
236
- * @param Enum2 another enum
237
- * @return new Enum instance
204
+ * @param another [Magick::Enum] the another enum
205
+ * @return [Magick::Enum] new Enum instance
238
206
  */
239
207
  VALUE
240
208
  Enum_bitwise_or(VALUE self, VALUE another)
241
209
  {
242
- VALUE new_enum, cls;
243
- MagickEnum *this, *that, *new_enum_data;
210
+ VALUE new_enum, cls;
211
+ MagickEnum *this, *that, *new_enum_data;
244
212
 
245
- cls = CLASS_OF(self);
246
- if (CLASS_OF(another) != cls)
247
- {
248
- rb_raise(rb_eArgError, "Expected class %s but got %s", rb_class2name(cls), rb_class2name(CLASS_OF(another)));
249
- }
213
+ cls = CLASS_OF(self);
214
+ if (CLASS_OF(another) != cls)
215
+ {
216
+ rb_raise(rb_eArgError, "Expected class %s but got %s", rb_class2name(cls), rb_class2name(CLASS_OF(another)));
217
+ }
250
218
 
251
- new_enum = Enum_alloc(cls);
219
+ new_enum = Enum_alloc(cls);
252
220
 
253
- Data_Get_Struct(self, MagickEnum, this);
254
- Data_Get_Struct(another, MagickEnum, that);
255
- Data_Get_Struct(new_enum, MagickEnum, new_enum_data);
221
+ Data_Get_Struct(self, MagickEnum, this);
222
+ Data_Get_Struct(another, MagickEnum, that);
223
+ Data_Get_Struct(new_enum, MagickEnum, new_enum_data);
256
224
 
257
- new_enum_data->id = rb_to_id(rb_sprintf("%s|%s", rb_id2name(this->id), rb_id2name(that->id)));
258
- new_enum_data->val = this->val | that->val;
225
+ new_enum_data->id = rb_to_id(rb_sprintf("%s|%s", rb_id2name(this->id), rb_id2name(that->id)));
226
+ new_enum_data->val = this->val | that->val;
259
227
 
260
- return new_enum;
228
+ return new_enum;
261
229
  }
262
230
 
263
231
  /**
264
232
  * Return the name of an enum.
265
233
  *
266
- * Ruby usage:
267
- * - @verbatim Enum#to_s @endverbatim
268
- *
269
- * @param self this object
270
- * @return the name
234
+ * @return [String] the name of an enum
271
235
  */
272
236
  VALUE
273
237
  Enum_to_s(VALUE self)
274
238
  {
275
- return rb_str_new2(rm_enum_to_cstr(self));
239
+ return rb_str_new2(rm_enum_to_cstr(self));
276
240
  }
277
241
 
278
242
 
279
243
  /**
280
244
  * Initialize method for all Enum subclasses.
281
245
  *
282
- * Ruby usage:
283
- * - @verbatim xxx#initialize(sym,val) @endverbatim
284
- *
285
- * @param self this object
286
- * @param sym the symbol
287
- * @param val the value of the symbol
288
- * @return self
246
+ * @param sym [Symbol] the symbol as enum name
247
+ * @param val [Numeric] the value for enum
248
+ * @return [Magick::Enum] self
289
249
  */
290
250
  VALUE
291
251
  Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
@@ -295,7 +255,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
295
255
 
296
256
  super_argv[0] = sym;
297
257
  super_argv[1] = val;
298
- (void) rb_call_super(2, (const VALUE *)super_argv);
258
+ rb_call_super(2, (const VALUE *)super_argv);
299
259
 
300
260
  if (rb_cvar_defined(CLASS_OF(self), rb_intern(ENUMERATORS_CLASS_VAR)) != Qtrue)
301
261
  {
@@ -303,7 +263,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
303
263
  }
304
264
 
305
265
  enumerators = rb_cv_get(CLASS_OF(self), ENUMERATORS_CLASS_VAR);
306
- (void) rb_ary_push(enumerators, self);
266
+ rb_ary_push(enumerators, self);
307
267
 
308
268
  RB_GC_GUARD(enumerators);
309
269
 
@@ -314,11 +274,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
314
274
  /**
315
275
  * Enum subclass #inspect.
316
276
  *
317
- * Ruby usage:
318
- * - @verbatim xxx#inspect @endverbatim
319
- *
320
- * @param self this object
321
- * @return string representation of self
277
+ * @return [String] representation of self
322
278
  */
323
279
  static VALUE
324
280
  Enum_type_inspect(VALUE self)
@@ -327,7 +283,7 @@ Enum_type_inspect(VALUE self)
327
283
  MagickEnum *magick_enum;
328
284
 
329
285
  Data_Get_Struct(self, MagickEnum, magick_enum);
330
- sprintf(str, "%.48s=%d", rb_id2name(magick_enum->id), magick_enum->val);
286
+ snprintf(str, sizeof(str), "%.48s=%d", rb_id2name(magick_enum->id), magick_enum->val);
331
287
 
332
288
  return rb_str_new2(str);
333
289
  }
@@ -336,15 +292,14 @@ Enum_type_inspect(VALUE self)
336
292
  /**
337
293
  * Behaves like #each if a block is present, otherwise like #to_a.
338
294
  *
339
- * Ruby usage:
340
- * - @verbatim xxx.values @endverbatim
341
- * - @verbatim xxx.values {|v| } @endverbatim
295
+ * @overload values
296
+ * @return [Array<Magick::Enum>] the enum values
342
297
  *
343
- * Notes:
344
- * - Defined for each Enum subclass
345
- *
346
- * @param class the subclass
347
- * @return iterator over values if given block, a copy of the values otherwise
298
+ * @overload values
299
+ * iterator over values if given block
300
+ * @yield [val]
301
+ * @yieldparam val [Magick::Enum] an enum
302
+ * @return [Magick::Enum] self
348
303
  */
349
304
  static VALUE
350
305
  Enum_type_values(VALUE class)
@@ -359,7 +314,7 @@ Enum_type_values(VALUE class)
359
314
  {
360
315
  for (x = 0; x < RARRAY_LEN(enumerators); x++)
361
316
  {
362
- (void) rb_yield(rb_ary_entry(enumerators, x));
317
+ rb_yield(rb_ary_entry(enumerators, x));
363
318
  }
364
319
  rv = class;
365
320
  }
@@ -368,7 +323,7 @@ Enum_type_values(VALUE class)
368
323
  copy = rb_ary_new2(RARRAY_LEN(enumerators));
369
324
  for (x = 0; x < RARRAY_LEN(enumerators); x++)
370
325
  {
371
- (void) rb_ary_push(copy, rb_ary_entry(enumerators, x));
326
+ rb_ary_push(copy, rb_ary_entry(enumerators, x));
372
327
  }
373
328
  rb_obj_freeze(copy);
374
329
  rv = copy;
@@ -403,12 +358,12 @@ Enum_find(VALUE class, int val)
403
358
 
404
359
  for (x = 0; x < RARRAY_LEN(enumerators); x++)
405
360
  {
406
- VALUE enumerator = rb_ary_entry(enumerators, x);
407
- Data_Get_Struct(enumerator, MagickEnum, magick_enum);
408
- if (magick_enum->val == val)
409
- {
410
- return enumerator;
411
- }
361
+ VALUE enumerator = rb_ary_entry(enumerators, x);
362
+ Data_Get_Struct(enumerator, MagickEnum, magick_enum);
363
+ if (magick_enum->val == val)
364
+ {
365
+ return enumerator;
366
+ }
412
367
  }
413
368
 
414
369
  return Qnil;
@@ -505,7 +460,35 @@ ComplianceType_name(ComplianceType *c)
505
460
  VALUE
506
461
  ComplianceType_find(ComplianceType compliance)
507
462
  {
508
- return Enum_find(Class_ComplianceType, compliance);
463
+ ComplianceType c;
464
+
465
+ // Turn off undefined bits
466
+ if ((compliance & (SVGCompliance|X11Compliance|XPMCompliance))
467
+ == (SVGCompliance|X11Compliance|XPMCompliance))
468
+ {
469
+ c = SVGCompliance|X11Compliance|XPMCompliance;
470
+ }
471
+ else if (compliance & SVGCompliance)
472
+ {
473
+ c = SVGCompliance;
474
+ }
475
+ else if (compliance & X11Compliance)
476
+ {
477
+ c = X11Compliance;
478
+ }
479
+ else if (compliance & XPMCompliance)
480
+ {
481
+ c = XPMCompliance;
482
+ }
483
+ else if (compliance == NoCompliance)
484
+ {
485
+ c = NoCompliance;
486
+ }
487
+ else
488
+ {
489
+ c = UndefinedCompliance;
490
+ }
491
+ return Enum_find(Class_ComplianceType, c);
509
492
  }
510
493
 
511
494
 
@@ -44,10 +44,7 @@ static void free_Fill(void *fill)
44
44
  /**
45
45
  * Create new GradientFill object.
46
46
  *
47
- * No Ruby usage (internal function)
48
- *
49
- * @param class the Ruby class to use
50
- * @return a new GradientFill object
47
+ * @return [Magick::GradientFill] a new GradientFill object
51
48
  */
52
49
  VALUE
53
50
  GradientFill_alloc(VALUE class)
@@ -59,19 +56,15 @@ GradientFill_alloc(VALUE class)
59
56
 
60
57
 
61
58
  /**
62
- * Store the vector points and the start and stop colors.
63
- *
64
- * Ruby usage:
65
- * - @verbatim GradientFill#initialize(x1,y1,x2,y2,start_color,stop_color) @endverbatim
66
- *
67
- * @param self this object
68
- * @param x1 x position of first point
69
- * @param y1 y position of first point
70
- * @param x2 x position of second point
71
- * @param y2 y position of second point
72
- * @param start_color the start color
73
- * @param stop_color the stop color
74
- * @return self
59
+ * Initialize GradientFill object.
60
+ *
61
+ * @param x1 [Float] x position of first point
62
+ * @param y1 [Float] y position of first point
63
+ * @param x2 [Float] x position of second point
64
+ * @param y2 [Float] y position of second point
65
+ * @param start_color [Magick::Pixel, String] the start color
66
+ * @param stop_color [Magick::Pixel, String] the stop color
67
+ * @return [Magick::GradientFill] self
75
68
  */
76
69
  VALUE
77
70
  GradientFill_initialize(
@@ -139,7 +132,7 @@ point_fill(
139
132
  #endif
140
133
 
141
134
  row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
142
- CHECK_EXCEPTION()
135
+ CHECK_EXCEPTION();
143
136
 
144
137
  for (x = 0; x < (ssize_t) image->columns; x++)
145
138
  {
@@ -161,10 +154,10 @@ point_fill(
161
154
  }
162
155
 
163
156
  SyncAuthenticPixels(image, exception);
164
- CHECK_EXCEPTION()
157
+ CHECK_EXCEPTION();
165
158
  }
166
159
 
167
- (void) DestroyExceptionInfo(exception);
160
+ DestroyExceptionInfo(exception);
168
161
  }
169
162
 
170
163
  /**
@@ -216,7 +209,7 @@ vertical_fill(
216
209
  Quantum *row_pixels;
217
210
 
218
211
  row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
219
- CHECK_EXCEPTION()
212
+ CHECK_EXCEPTION();
220
213
 
221
214
  for (x = 0; x < (ssize_t) image->columns; x++)
222
215
  {
@@ -230,10 +223,10 @@ vertical_fill(
230
223
  }
231
224
 
232
225
  SyncAuthenticPixels(image, exception);
233
- CHECK_EXCEPTION()
226
+ CHECK_EXCEPTION();
234
227
  }
235
228
 
236
- (void) DestroyExceptionInfo(exception);
229
+ DestroyExceptionInfo(exception);
237
230
  #else
238
231
  // All the rows are the same. Make a "master row" and simply copy
239
232
  // it to each actual row.
@@ -270,7 +263,7 @@ vertical_fill(
270
263
  }
271
264
  }
272
265
 
273
- (void) DestroyExceptionInfo(exception);
266
+ DestroyExceptionInfo(exception);
274
267
 
275
268
  xfree((void *) master);
276
269
  #endif
@@ -322,7 +315,7 @@ horizontal_fill(
322
315
  Quantum *row_pixels;
323
316
 
324
317
  row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
325
- CHECK_EXCEPTION()
318
+ CHECK_EXCEPTION();
326
319
 
327
320
  double distance = fabs(y1 - y);
328
321
  for (x = 0; x < (ssize_t) image->columns; x++)
@@ -336,10 +329,10 @@ horizontal_fill(
336
329
  }
337
330
 
338
331
  SyncAuthenticPixels(image, exception);
339
- CHECK_EXCEPTION()
332
+ CHECK_EXCEPTION();
340
333
  }
341
334
 
342
- (void) DestroyExceptionInfo(exception);
335
+ DestroyExceptionInfo(exception);
343
336
  #else
344
337
  // All the columns are the same, so make a master column and copy it to
345
338
  // each of the "real" columns.
@@ -375,7 +368,7 @@ horizontal_fill(
375
368
  }
376
369
  }
377
370
 
378
- (void) DestroyExceptionInfo(exception);
371
+ DestroyExceptionInfo(exception);
379
372
 
380
373
  xfree((void *) master);
381
374
  #endif
@@ -425,7 +418,7 @@ v_diagonal_fill(
425
418
 
426
419
  if (d1 < 0 && d2 < 0)
427
420
  {
428
- steps += FMAX(fabs(d1),fabs(d2));
421
+ steps += FMAX(fabs(d1), fabs(d2));
429
422
  }
430
423
  else if (d1 > (double)image->rows && d2 > (double)image->rows)
431
424
  {
@@ -458,7 +451,7 @@ v_diagonal_fill(
458
451
  #endif
459
452
 
460
453
  row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
461
- CHECK_EXCEPTION()
454
+ CHECK_EXCEPTION();
462
455
 
463
456
  for (x = 0; x < (ssize_t) image->columns; x++)
464
457
  {
@@ -479,10 +472,10 @@ v_diagonal_fill(
479
472
  }
480
473
 
481
474
  SyncAuthenticPixels(image, exception);
482
- CHECK_EXCEPTION()
475
+ CHECK_EXCEPTION();
483
476
  }
484
477
 
485
- (void) DestroyExceptionInfo(exception);
478
+ DestroyExceptionInfo(exception);
486
479
  }
487
480
 
488
481
  /**
@@ -531,11 +524,11 @@ h_diagonal_fill(
531
524
  // the number of steps.
532
525
  if (d1 < 0 && d2 < 0)
533
526
  {
534
- steps += FMAX(fabs(d1),fabs(d2));
527
+ steps += FMAX(fabs(d1), fabs(d2));
535
528
  }
536
529
  else if (d1 > (double)image->columns && d2 > (double)image->columns)
537
530
  {
538
- steps += FMAX(abs((int)(image->columns-d1)),abs((int)(image->columns-d2)));
531
+ steps += FMAX(abs((int)(image->columns-d1)), abs((int)(image->columns-d2)));
539
532
  }
540
533
 
541
534
  d1 = FMAX(d1, image->columns-d1);
@@ -564,7 +557,7 @@ h_diagonal_fill(
564
557
  #endif
565
558
 
566
559
  row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
567
- CHECK_EXCEPTION()
560
+ CHECK_EXCEPTION();
568
561
 
569
562
  for (x = 0; x < (ssize_t) image->columns; x++)
570
563
  {
@@ -585,22 +578,18 @@ h_diagonal_fill(
585
578
  }
586
579
 
587
580
  SyncAuthenticPixels(image, exception);
588
- CHECK_EXCEPTION()
581
+ CHECK_EXCEPTION();
589
582
  }
590
583
 
591
- (void) DestroyExceptionInfo(exception);
584
+ DestroyExceptionInfo(exception);
592
585
  }
593
586
 
594
587
  /**
595
588
  * Call GradientFill with the start and stop colors specified when this fill
596
589
  * object was created.
597
590
  *
598
- * Ruby usage:
599
- * - @verbatim GradientFill#fill(image) @endverbatim
600
- *
601
- * @param self this object
602
- * @param image_obj the image
603
- * @return self
591
+ * @param image_obj [Magick::Image] the image to fill
592
+ * @return [Magick::GradientFill] self
604
593
  */
605
594
  VALUE
606
595
  GradientFill_fill(VALUE self, VALUE image_obj)
@@ -678,44 +667,28 @@ free_TextureFill(void *fill_obj)
678
667
  rm_TextureFill *fill = (rm_TextureFill *)fill_obj;
679
668
 
680
669
  // Do not trace destruction
681
- (void) DestroyImage(fill->texture);
670
+ DestroyImage(fill->texture);
682
671
  xfree(fill);
683
672
  }
684
673
 
685
674
  /**
686
675
  * Create new TextureFill object.
687
676
  *
688
- * No Ruby usage (internal function)
689
- *
690
- * Notes:
691
- * - The texture is an Image or Image *object
692
- *
693
- * @param class the Ruby class to use
694
- * @return a new TextureFill object
677
+ * @return [Magick::TextureFill] a new TextureFill object
695
678
  */
696
679
  VALUE
697
680
  TextureFill_alloc(VALUE class)
698
681
  {
699
682
  rm_TextureFill *fill;
700
- return Data_Make_Struct(class
701
- , rm_TextureFill
702
- , NULL
703
- , free_TextureFill
704
- , fill);
683
+ return Data_Make_Struct(class, rm_TextureFill, NULL, free_TextureFill, fill);
705
684
  }
706
685
 
707
686
  /**
708
- * Store the texture image.
709
- *
710
- * Ruby usage:
711
- * - @verbatim TextureFill#initialize(texture) @endverbatim
687
+ * Initialize TextureFill object.
712
688
  *
713
- * Notes:
714
- * - The texture is an Image or Image *object
715
- *
716
- * @param self this object
717
- * @param texture_arg the texture
718
- * @return self
689
+ * @param texture_arg [Magick::Image, Magick::ImageList] Either an imagelist or an image. If an
690
+ * imagelist, uses the current image.
691
+ * @return [Magick::TextureFill] self
719
692
  */
720
693
  VALUE
721
694
  TextureFill_initialize(VALUE self, VALUE texture_arg)
@@ -730,7 +703,7 @@ TextureFill_initialize(VALUE self, VALUE texture_arg)
730
703
 
731
704
  // Bump the reference count on the texture image.
732
705
  texture = rm_check_destroyed(texture_image);
733
- (void) ReferenceImage(texture);
706
+ ReferenceImage(texture);
734
707
 
735
708
  fill->texture = texture;
736
709
 
@@ -743,12 +716,8 @@ TextureFill_initialize(VALUE self, VALUE texture_arg)
743
716
  * Call TextureFill with the texture specified when this fill object was
744
717
  * created.
745
718
  *
746
- * Ruby usage:
747
- * - @verbatim TextureFill#fill(image) @endverbatim
748
- *
749
- * @param self this object
750
- * @param image_obj the image
751
- * @return self
719
+ * @param image_obj [Magick::Image] the image to fill
720
+ * @return [Magick::TextureFill] self
752
721
  */
753
722
  VALUE
754
723
  TextureFill_fill(VALUE self, VALUE image_obj)
@@ -764,11 +733,11 @@ TextureFill_fill(VALUE self, VALUE image_obj)
764
733
 
765
734
  #if defined(IMAGEMAGICK_7)
766
735
  exception = AcquireExceptionInfo();
767
- (void) TextureImage(image, fill->texture, exception);
768
- CHECK_EXCEPTION()
769
- (void) DestroyExceptionInfo(exception);
736
+ TextureImage(image, fill->texture, exception);
737
+ CHECK_EXCEPTION();
738
+ DestroyExceptionInfo(exception);
770
739
  #else
771
- (void) TextureImage(image, fill->texture);
740
+ TextureImage(image, fill->texture);
772
741
  rm_check_image_exception(image, RetainOnError);
773
742
  #endif
774
743