fxruby 1.6.41 → 1.6.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.travis.yml +2 -2
  4. data/.yardopts +1 -1
  5. data/Gemfile +2 -3
  6. data/History.md +27 -1
  7. data/README.rdoc +10 -5
  8. data/Rakefile +16 -5
  9. data/appveyor.yml +8 -7
  10. data/docs/Fox/Canvas/CanvasError.html +124 -0
  11. data/docs/Fox/Canvas/CircleShape.html +477 -0
  12. data/docs/Fox/Canvas/ImageShape.html +477 -0
  13. data/docs/Fox/Canvas/LineShape.html +1005 -0
  14. data/docs/Fox/Canvas/PolygonShape.html +145 -0
  15. data/docs/Fox/Canvas/RectangleShape.html +439 -0
  16. data/docs/Fox/Canvas/SelectionPolicy.html +352 -0
  17. data/docs/Fox/Canvas/Shape.html +1955 -0
  18. data/docs/Fox/Canvas/ShapeCanvas.html +2031 -0
  19. data/docs/Fox/Canvas/ShapeGroup.html +527 -0
  20. data/docs/Fox/Canvas/SingleSelectionPolicy.html +291 -0
  21. data/docs/Fox/Canvas/TextShape.html +609 -0
  22. data/docs/Fox/Canvas.html +141 -0
  23. data/docs/Fox/FTNonModal.html +550 -0
  24. data/docs/Fox/FX4Splitter.html +1336 -0
  25. data/docs/Fox/FX7Segment.html +1010 -0
  26. data/docs/Fox/FXAccelTable.html +715 -0
  27. data/docs/Fox/FXApp.html +7998 -0
  28. data/docs/Fox/FXArc.html +562 -0
  29. data/docs/Fox/FXArrowButton.html +865 -0
  30. data/docs/Fox/FXBMPIcon.html +450 -0
  31. data/docs/Fox/FXBMPImage.html +434 -0
  32. data/docs/Fox/FXBitmap.html +1362 -0
  33. data/docs/Fox/FXBitmapFrame.html +595 -0
  34. data/docs/Fox/FXBitmapView.html +1451 -0
  35. data/docs/Fox/FXButton.html +534 -0
  36. data/docs/Fox/FXCURCursor.html +261 -0
  37. data/docs/Fox/FXCalendar.html +880 -0
  38. data/docs/Fox/FXCanvas.html +311 -0
  39. data/docs/Fox/FXCheckButton.html +949 -0
  40. data/docs/Fox/FXChoiceBox.html +472 -0
  41. data/docs/Fox/FXColor.html +1519 -0
  42. data/docs/Fox/FXColorBar.html +759 -0
  43. data/docs/Fox/FXColorDialog.html +591 -0
  44. data/docs/Fox/FXColorItem.html +323 -0
  45. data/docs/Fox/FXColorList.html +712 -0
  46. data/docs/Fox/FXColorRing.html +817 -0
  47. data/docs/Fox/FXColorSelector.html +796 -0
  48. data/docs/Fox/FXColorWell.html +850 -0
  49. data/docs/Fox/FXColorWheel.html +770 -0
  50. data/docs/Fox/FXComboBox.html +2939 -0
  51. data/docs/Fox/FXComboTableItem.html +544 -0
  52. data/docs/Fox/FXCommand.html +526 -0
  53. data/docs/Fox/FXComposite.html +433 -0
  54. data/docs/Fox/FXCursor.html +779 -0
  55. data/docs/Fox/FXDC.html +5231 -0
  56. data/docs/Fox/FXDCPrint.html +696 -0
  57. data/docs/Fox/FXDCWindow.html +358 -0
  58. data/docs/Fox/FXDataTarget.html +573 -0
  59. data/docs/Fox/FXDebugTarget.html +305 -0
  60. data/docs/Fox/FXDelegator.html +305 -0
  61. data/docs/Fox/FXDial.html +1133 -0
  62. data/docs/Fox/FXDialogBox.html +413 -0
  63. data/docs/Fox/FXDict.html +1063 -0
  64. data/docs/Fox/FXDirBox.html +752 -0
  65. data/docs/Fox/FXDirDialog.html +914 -0
  66. data/docs/Fox/FXDirItem.html +989 -0
  67. data/docs/Fox/FXDirList.html +1554 -0
  68. data/docs/Fox/FXDirSelector.html +995 -0
  69. data/docs/Fox/FXDockBar.html +1451 -0
  70. data/docs/Fox/FXDockHandler.html +468 -0
  71. data/docs/Fox/FXDockSite.html +678 -0
  72. data/docs/Fox/FXDockTitle.html +606 -0
  73. data/docs/Fox/FXDocument.html +536 -0
  74. data/docs/Fox/FXDragCorner.html +440 -0
  75. data/docs/Fox/FXDrawable.html +478 -0
  76. data/docs/Fox/FXDriveBox.html +746 -0
  77. data/docs/Fox/FXEvent.html +1736 -0
  78. data/docs/Fox/FXExtentd.html +1374 -0
  79. data/docs/Fox/FXExtentf.html +1374 -0
  80. data/docs/Fox/FXFileAssoc.html +850 -0
  81. data/docs/Fox/FXFileDialog.html +2688 -0
  82. data/docs/Fox/FXFileDict.html +1058 -0
  83. data/docs/Fox/FXFileItem.html +1141 -0
  84. data/docs/Fox/FXFileList.html +2259 -0
  85. data/docs/Fox/FXFileSelector.html +2529 -0
  86. data/docs/Fox/FXFileStream.html +503 -0
  87. data/docs/Fox/FXFoldingItem.html +2822 -0
  88. data/docs/Fox/FXFoldingList.html +5189 -0
  89. data/docs/Fox/FXFont.html +2998 -0
  90. data/docs/Fox/FXFontDesc.html +710 -0
  91. data/docs/Fox/FXFontDialog.html +420 -0
  92. data/docs/Fox/FXFontSelector.html +576 -0
  93. data/docs/Fox/FXFrame.html +1012 -0
  94. data/docs/Fox/FXGIFCursor.html +337 -0
  95. data/docs/Fox/FXGIFIcon.html +450 -0
  96. data/docs/Fox/FXGIFImage.html +434 -0
  97. data/docs/Fox/FXGLCanvas.html +700 -0
  98. data/docs/Fox/FXGLCone.html +785 -0
  99. data/docs/Fox/FXGLContext.html +649 -0
  100. data/docs/Fox/FXGLCube.html +703 -0
  101. data/docs/Fox/FXGLCylinder.html +791 -0
  102. data/docs/Fox/FXGLGroup.html +1385 -0
  103. data/docs/Fox/FXGLLine.html +653 -0
  104. data/docs/Fox/FXGLObject.html +759 -0
  105. data/docs/Fox/FXGLPoint.html +561 -0
  106. data/docs/Fox/FXGLShape.html +714 -0
  107. data/docs/Fox/FXGLSphere.html +626 -0
  108. data/docs/Fox/FXGLViewer.html +3506 -0
  109. data/docs/Fox/FXGLVisual.html +2147 -0
  110. data/docs/Fox/FXGradient.html +562 -0
  111. data/docs/Fox/FXGradientBar.html +2479 -0
  112. data/docs/Fox/FXGroupBox.html +688 -0
  113. data/docs/Fox/FXHeader.html +3040 -0
  114. data/docs/Fox/FXHeaderItem.html +1353 -0
  115. data/docs/Fox/FXHiliteStyle.html +804 -0
  116. data/docs/Fox/FXHorizontalFrame.html +359 -0
  117. data/docs/Fox/FXHorizontalSeparator.html +349 -0
  118. data/docs/Fox/FXICOIcon.html +450 -0
  119. data/docs/Fox/FXICOImage.html +434 -0
  120. data/docs/Fox/FXIcon.html +384 -0
  121. data/docs/Fox/FXIconDict.html +752 -0
  122. data/docs/Fox/FXIconItem.html +1518 -0
  123. data/docs/Fox/FXIconList.html +4676 -0
  124. data/docs/Fox/FXIconSource.html +963 -0
  125. data/docs/Fox/FXId.html +712 -0
  126. data/docs/Fox/FXImage.html +2328 -0
  127. data/docs/Fox/FXImageFrame.html +489 -0
  128. data/docs/Fox/FXImageView.html +504 -0
  129. data/docs/Fox/FXInputDialog.html +894 -0
  130. data/docs/Fox/FXIrb.html +942 -0
  131. data/docs/Fox/FXJPGIcon.html +607 -0
  132. data/docs/Fox/FXJPGImage.html +591 -0
  133. data/docs/Fox/FXKnob.html +1048 -0
  134. data/docs/Fox/FXLabel.html +1013 -0
  135. data/docs/Fox/FXLight.html +920 -0
  136. data/docs/Fox/FXList.html +3717 -0
  137. data/docs/Fox/FXListBox.html +2518 -0
  138. data/docs/Fox/FXListItem.html +1459 -0
  139. data/docs/Fox/FXMDIChild.html +2175 -0
  140. data/docs/Fox/FXMDIClient.html +781 -0
  141. data/docs/Fox/FXMDIDeleteButton.html +334 -0
  142. data/docs/Fox/FXMDIMaximizeButton.html +334 -0
  143. data/docs/Fox/FXMDIMenu.html +335 -0
  144. data/docs/Fox/FXMDIMinimizeButton.html +334 -0
  145. data/docs/Fox/FXMDIRestoreButton.html +334 -0
  146. data/docs/Fox/FXMDIWindowButton.html +334 -0
  147. data/docs/Fox/FXMainWindow.html +337 -0
  148. data/docs/Fox/FXMaterial.html +570 -0
  149. data/docs/Fox/FXMatrix.html +734 -0
  150. data/docs/Fox/FXMemoryBuffer.html +472 -0
  151. data/docs/Fox/FXMemoryStream.html +632 -0
  152. data/docs/Fox/FXMenuBar.html +347 -0
  153. data/docs/Fox/FXMenuButton.html +829 -0
  154. data/docs/Fox/FXMenuCaption.html +1080 -0
  155. data/docs/Fox/FXMenuCascade.html +388 -0
  156. data/docs/Fox/FXMenuCheck.html +721 -0
  157. data/docs/Fox/FXMenuCommand.html +400 -0
  158. data/docs/Fox/FXMenuPane.html +333 -0
  159. data/docs/Fox/FXMenuRadio.html +721 -0
  160. data/docs/Fox/FXMenuSeparator.html +440 -0
  161. data/docs/Fox/FXMenuTitle.html +405 -0
  162. data/docs/Fox/FXMessageBox.html +658 -0
  163. data/docs/Fox/FXObject.html +545 -0
  164. data/docs/Fox/FXOption.html +491 -0
  165. data/docs/Fox/FXOptionMenu.html +885 -0
  166. data/docs/Fox/FXPCXIcon.html +450 -0
  167. data/docs/Fox/FXPCXImage.html +434 -0
  168. data/docs/Fox/FXPNGIcon.html +524 -0
  169. data/docs/Fox/FXPNGImage.html +508 -0
  170. data/docs/Fox/FXPPMIcon.html +450 -0
  171. data/docs/Fox/FXPPMImage.html +373 -0
  172. data/docs/Fox/FXPSBounds.html +500 -0
  173. data/docs/Fox/FXPacker.html +1229 -0
  174. data/docs/Fox/FXPicker.html +345 -0
  175. data/docs/Fox/FXPopup.html +1099 -0
  176. data/docs/Fox/FXPrintDialog.html +485 -0
  177. data/docs/Fox/FXPrinter.html +1330 -0
  178. data/docs/Fox/FXProgressBar.html +1150 -0
  179. data/docs/Fox/FXProgressDialog.html +715 -0
  180. data/docs/Fox/FXPseudoKeyboard.html +428 -0
  181. data/docs/Fox/FXPseudoMouse.html +800 -0
  182. data/docs/Fox/FXPseudoTarget.html +472 -0
  183. data/docs/Fox/FXQuatd.html +1377 -0
  184. data/docs/Fox/FXQuatf.html +1392 -0
  185. data/docs/Fox/FXRGBIcon.html +450 -0
  186. data/docs/Fox/FXRGBImage.html +434 -0
  187. data/docs/Fox/FXRadioButton.html +885 -0
  188. data/docs/Fox/FXRanged.html +1522 -0
  189. data/docs/Fox/FXRangef.html +1522 -0
  190. data/docs/Fox/FXRealSlider.html +1187 -0
  191. data/docs/Fox/FXRealSpinner.html +2175 -0
  192. data/docs/Fox/FXRecentFiles.html +841 -0
  193. data/docs/Fox/FXRectangle.html +802 -0
  194. data/docs/Fox/FXRegion.html +841 -0
  195. data/docs/Fox/FXRegistry.html +682 -0
  196. data/docs/Fox/FXReplaceDialog.html +648 -0
  197. data/docs/Fox/FXRootWindow.html +312 -0
  198. data/docs/Fox/FXRuler.html +2000 -0
  199. data/docs/Fox/FXRulerView.html +3997 -0
  200. data/docs/Fox/FXScintilla.html +49117 -0
  201. data/docs/Fox/FXScrollArea.html +1363 -0
  202. data/docs/Fox/FXScrollBar.html +1019 -0
  203. data/docs/Fox/FXScrollCorner.html +290 -0
  204. data/docs/Fox/FXScrollPane.html +499 -0
  205. data/docs/Fox/FXScrollWindow.html +409 -0
  206. data/docs/Fox/FXSearchDialog.html +382 -0
  207. data/docs/Fox/FXSegment.html +422 -0
  208. data/docs/Fox/FXSeparator.html +402 -0
  209. data/docs/Fox/FXSettings.html +1861 -0
  210. data/docs/Fox/FXShell.html +233 -0
  211. data/docs/Fox/FXShutter.html +472 -0
  212. data/docs/Fox/FXShutterItem.html +669 -0
  213. data/docs/Fox/FXSize.html +592 -0
  214. data/docs/Fox/FXSlider.html +1129 -0
  215. data/docs/Fox/FXSphered.html +906 -0
  216. data/docs/Fox/FXSpheref.html +906 -0
  217. data/docs/Fox/FXSpinner.html +2102 -0
  218. data/docs/Fox/FXSplashScreen.html +497 -0
  219. data/docs/Fox/FXSplashWindow.html +494 -0
  220. data/docs/Fox/FXSplitter.html +643 -0
  221. data/docs/Fox/FXSpring.html +517 -0
  222. data/docs/Fox/FXStatusBar.html +593 -0
  223. data/docs/Fox/FXStatusLine.html +754 -0
  224. data/docs/Fox/FXStream.html +1372 -0
  225. data/docs/Fox/FXStreamAllocError.html +148 -0
  226. data/docs/Fox/FXStreamEndError.html +148 -0
  227. data/docs/Fox/FXStreamError.html +259 -0
  228. data/docs/Fox/FXStreamFailureError.html +148 -0
  229. data/docs/Fox/FXStreamFormatError.html +148 -0
  230. data/docs/Fox/FXStreamFullError.html +148 -0
  231. data/docs/Fox/FXStreamNoReadError.html +148 -0
  232. data/docs/Fox/FXStreamNoWriteError.html +148 -0
  233. data/docs/Fox/FXStreamUnknownError.html +148 -0
  234. data/docs/Fox/FXStringDict.html +552 -0
  235. data/docs/Fox/FXSwitcher.html +619 -0
  236. data/docs/Fox/FXTGAIcon.html +450 -0
  237. data/docs/Fox/FXTGAImage.html +434 -0
  238. data/docs/Fox/FXTIFIcon.html +604 -0
  239. data/docs/Fox/FXTIFImage.html +588 -0
  240. data/docs/Fox/FXTabBar.html +644 -0
  241. data/docs/Fox/FXTabBook.html +373 -0
  242. data/docs/Fox/FXTabItem.html +478 -0
  243. data/docs/Fox/FXTable.html +10107 -0
  244. data/docs/Fox/FXTableItem.html +2195 -0
  245. data/docs/Fox/FXTablePos.html +360 -0
  246. data/docs/Fox/FXTableRange.html +360 -0
  247. data/docs/Fox/FXText.html +6870 -0
  248. data/docs/Fox/FXTextChange.html +492 -0
  249. data/docs/Fox/FXTextField.html +2016 -0
  250. data/docs/Fox/FXToggleButton.html +844 -0
  251. data/docs/Fox/FXToolBar.html +452 -0
  252. data/docs/Fox/FXToolBarGrip.html +584 -0
  253. data/docs/Fox/FXToolBarShell.html +788 -0
  254. data/docs/Fox/FXToolBarTab.html +729 -0
  255. data/docs/Fox/FXToolTip.html +761 -0
  256. data/docs/Fox/FXTopWindow.html +1716 -0
  257. data/docs/Fox/FXTranslator.html +481 -0
  258. data/docs/Fox/FXTreeItem.html +2813 -0
  259. data/docs/Fox/FXTreeList.html +5095 -0
  260. data/docs/Fox/FXTreeListBox.html +3080 -0
  261. data/docs/Fox/FXTriStateButton.html +681 -0
  262. data/docs/Fox/FXUndoList.html +2560 -0
  263. data/docs/Fox/FXVec2d.html +1450 -0
  264. data/docs/Fox/FXVec2f.html +1442 -0
  265. data/docs/Fox/FXVec3d.html +1649 -0
  266. data/docs/Fox/FXVec3f.html +1649 -0
  267. data/docs/Fox/FXVec4d.html +1858 -0
  268. data/docs/Fox/FXVec4f.html +1858 -0
  269. data/docs/Fox/FXVerticalFrame.html +359 -0
  270. data/docs/Fox/FXVerticalSeparator.html +349 -0
  271. data/docs/Fox/FXViewport.html +780 -0
  272. data/docs/Fox/FXVisual.html +1023 -0
  273. data/docs/Fox/FXWindow.html +9948 -0
  274. data/docs/Fox/FXWizard.html +1052 -0
  275. data/docs/Fox/FXXBMIcon.html +453 -0
  276. data/docs/Fox/FXXBMImage.html +437 -0
  277. data/docs/Fox/FXXPMIcon.html +450 -0
  278. data/docs/Fox/FXXPMImage.html +434 -0
  279. data/docs/Fox/NotifyHeader.html +286 -0
  280. data/docs/Fox/SCNotification.html +1438 -0
  281. data/docs/Fox/TextRange.html +281 -0
  282. data/docs/Fox.html +11184 -0
  283. data/docs/IRB.html +204 -0
  284. data/docs/Responder.html +693 -0
  285. data/docs/Responder2.html +225 -0
  286. data/docs/_index.html +2101 -0
  287. data/docs/class_list.html +51 -0
  288. data/docs/css/common.css +1 -0
  289. data/docs/css/full_list.css +58 -0
  290. data/docs/css/style.css +496 -0
  291. data/docs/file.History.html +869 -0
  292. data/docs/file.README.html +104 -0
  293. data/docs/file_list.html +66 -0
  294. data/docs/frames.html +17 -0
  295. data/docs/index.html +614 -0
  296. data/docs/js/app.js +314 -0
  297. data/docs/js/full_list.js +216 -0
  298. data/docs/js/jquery.js +4 -0
  299. data/docs/method_list.html +31043 -0
  300. data/docs/top-level-namespace.html +214 -0
  301. data/examples/canvasdemo.rb +5 -1
  302. data/examples/gltest.rb +162 -106
  303. data/examples/glviewer.rb +12 -8
  304. data/ext/fox16_c/core_wrap.cpp +117 -115
  305. data/ext/fox16_c/dc_wrap.cpp +82 -60
  306. data/ext/fox16_c/dialogs_wrap.cpp +87 -67
  307. data/ext/fox16_c/extconf.rb +12 -12
  308. data/ext/fox16_c/frames_wrap.cpp +101 -75
  309. data/ext/fox16_c/fx3d_wrap.cpp +258 -302
  310. data/ext/fox16_c/iconlist_wrap.cpp +70 -52
  311. data/ext/fox16_c/icons_wrap.cpp +75 -55
  312. data/ext/fox16_c/image_wrap.cpp +75 -57
  313. data/ext/fox16_c/label_wrap.cpp +78 -60
  314. data/ext/fox16_c/layout_wrap.cpp +83 -65
  315. data/ext/fox16_c/list_wrap.cpp +70 -52
  316. data/ext/fox16_c/mdi_wrap.cpp +76 -58
  317. data/ext/fox16_c/menu_wrap.cpp +78 -60
  318. data/ext/fox16_c/scintilla_wrap.cpp +85 -61
  319. data/ext/fox16_c/swigruby.h +64 -46
  320. data/ext/fox16_c/table_wrap.cpp +80 -58
  321. data/ext/fox16_c/text_wrap.cpp +75 -55
  322. data/ext/fox16_c/treelist_wrap.cpp +71 -53
  323. data/ext/fox16_c/ui_wrap.cpp +101 -81
  324. data/fxruby.gemspec +1 -1
  325. data/lib/fox16/aliases.rb +0 -0
  326. data/lib/fox16/bitmapview.rb +0 -0
  327. data/lib/fox16/calendar.rb +0 -0
  328. data/lib/fox16/canvas.rb +76 -45
  329. data/lib/fox16/chore.rb +0 -0
  330. data/lib/fox16/colors.rb +0 -0
  331. data/lib/fox16/core.rb +0 -0
  332. data/lib/fox16/dict.rb +0 -0
  333. data/lib/fox16/glgroup.rb +5 -5
  334. data/lib/fox16/glshapes.rb +111 -99
  335. data/lib/fox16/input.rb +0 -0
  336. data/lib/fox16/irb.rb +0 -0
  337. data/lib/fox16/iterators.rb +0 -0
  338. data/lib/fox16/keys.rb +0 -0
  339. data/lib/fox16/missingdep.rb +0 -0
  340. data/lib/fox16/pseudokeyboard.rb +0 -0
  341. data/lib/fox16/pseudomouse.rb +0 -0
  342. data/lib/fox16/responder.rb +0 -0
  343. data/lib/fox16/responder2.rb +0 -0
  344. data/lib/fox16/scintilla.rb +0 -0
  345. data/lib/fox16/settings.rb +0 -0
  346. data/lib/fox16/signal.rb +0 -0
  347. data/lib/fox16/timeout.rb +0 -0
  348. data/lib/fox16/tkcompat.rb +0 -0
  349. data/lib/fox16/undolist.rb +0 -0
  350. data/lib/fox16/version.rb +1 -1
  351. data/lib/fox16.rb +2 -4
  352. data.tar.gz.sig +2 -0
  353. metadata +327 -6
  354. metadata.gz.sig +0 -0
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 3.0.12
3
+ * Version 4.0.2
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -331,6 +331,7 @@ template <typename T> T SwigValueInit() {
331
331
  /* Flags for pointer conversions */
332
332
  #define SWIG_POINTER_DISOWN 0x1
333
333
  #define SWIG_CAST_NEW_MEMORY 0x2
334
+ #define SWIG_POINTER_NO_NULL 0x4
334
335
 
335
336
  /* Flags for new pointer objects */
336
337
  #define SWIG_POINTER_OWN 0x1
@@ -982,42 +983,53 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
982
983
  #ifndef RSTRUCT_PTR
983
984
  # define RSTRUCT_PTR(x) RSTRUCT(x)->ptr
984
985
  #endif
986
+ #ifndef RTYPEDDATA_P
987
+ # define RTYPEDDATA_P(x) (TYPE(x) != T_DATA)
988
+ #endif
985
989
 
986
990
 
987
991
 
988
992
  /*
989
- * Need to be very careful about how these macros are defined, especially
990
- * when compiling C++ code or C code with an ANSI C compiler.
993
+ * The following macros are used for providing the correct type of a
994
+ * function pointer to the Ruby C API.
995
+ * Starting with Ruby 2.7 (corresponding to RB_METHOD_DEFINITION_DECL being
996
+ * defined) these macros act transparently due to Ruby's moving away from
997
+ * ANYARGS and instead employing strict function signatures.
998
+ *
999
+ * Note: In case of C (not C++) the macros are transparent even before
1000
+ * Ruby 2.7 due to the fact that the Ruby C API used function declarators
1001
+ * with empty parentheses, which allows for an unspecified number of
1002
+ * arguments.
1003
+ *
1004
+ * PROTECTFUNC(f) is used for the function pointer argument of the Ruby
1005
+ * C API function rb_protect().
991
1006
  *
992
- * VALUEFUNC(f) is a macro used to typecast a C function that implements
993
- * a Ruby method so that it can be passed as an argument to API functions
994
- * like rb_define_method() and rb_define_singleton_method().
1007
+ * VALUEFUNC(f) is used for the function pointer argument(s) of Ruby C API
1008
+ * functions like rb_define_method() and rb_define_singleton_method().
995
1009
  *
996
- * VOIDFUNC(f) is a macro used to typecast a C function that implements
997
- * either the "mark" or "free" stuff for a Ruby Data object, so that it
998
- * can be passed as an argument to API functions like Data_Wrap_Struct()
1010
+ * VOIDFUNC(f) is used to typecast a C function that implements either
1011
+ * the "mark" or "free" stuff for a Ruby Data object, so that it can be
1012
+ * passed as an argument to Ruby C API functions like Data_Wrap_Struct()
999
1013
  * and Data_Make_Struct().
1014
+ *
1015
+ * SWIG_RUBY_VOID_ANYARGS_FUNC(f) is used for the function pointer
1016
+ * argument(s) of Ruby C API functions like rb_define_virtual_variable().
1017
+ *
1018
+ * SWIG_RUBY_INT_ANYARGS_FUNC(f) is used for the function pointer
1019
+ * argument(s) of Ruby C API functions like st_foreach().
1000
1020
  */
1001
-
1002
- #ifdef __cplusplus
1003
- # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
1004
- # define PROTECTFUNC(f) ((VALUE (*)()) f)
1005
- # define VALUEFUNC(f) ((VALUE (*)()) f)
1006
- # define VOIDFUNC(f) ((void (*)()) f)
1007
- # else
1008
- # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
1009
- # define PROTECTFUNC(f) ((VALUE (*)()) f)
1010
- # define VALUEFUNC(f) ((VALUE (*)()) f)
1011
- # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1012
- # else /* These definitions should work for Ruby 1.7+ */
1013
- # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
1014
- # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
1015
- # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1016
- # endif
1017
- # endif
1021
+ #if defined(__cplusplus) && !defined(RB_METHOD_DEFINITION_DECL)
1022
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
1023
+ # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
1024
+ # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1025
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) ((void (*)(ANYARGS))(f))
1026
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) ((int (*)(ANYARGS))(f))
1018
1027
  #else
1028
+ # define PROTECTFUNC(f) (f)
1019
1029
  # define VALUEFUNC(f) (f)
1020
1030
  # define VOIDFUNC(f) (f)
1031
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) (f)
1032
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) (f)
1021
1033
  #endif
1022
1034
 
1023
1035
  /* Don't use for expressions have side effect */
@@ -1205,7 +1217,7 @@ void Ruby_Format_OverloadedError(
1205
1217
  /* -----------------------------------------------------------------------------
1206
1218
  * rubytracking.swg
1207
1219
  *
1208
- * This file contains support for tracking mappings from
1220
+ * This file contains support for tracking mappings from
1209
1221
  * Ruby objects to C++ objects. This functionality is needed
1210
1222
  * to implement mark functions for Ruby's mark and sweep
1211
1223
  * garbage collector.
@@ -1232,7 +1244,7 @@ extern "C" {
1232
1244
  #endif
1233
1245
 
1234
1246
  /* Global hash table to store Trackings from C/C++
1235
- structs to Ruby Objects.
1247
+ structs to Ruby Objects.
1236
1248
  */
1237
1249
  static st_table* swig_ruby_trackings = NULL;
1238
1250
 
@@ -1246,7 +1258,7 @@ SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) {
1246
1258
  /* Create a hash table to store Trackings from C++
1247
1259
  objects to Ruby objects. */
1248
1260
 
1249
- /* Try to see if some other .so has already created a
1261
+ /* Try to see if some other .so has already created a
1250
1262
  tracking hash table, which we keep hidden in an instance var
1251
1263
  in the SWIG module.
1252
1264
  This is done to allow multiple DSOs to share the same
@@ -1273,8 +1285,9 @@ SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) {
1273
1285
  swig_ruby_trackings = (st_table*)NUM2SWIG(trackings_value);
1274
1286
  }
1275
1287
 
1276
- rb_define_virtual_variable("SWIG_TRACKINGS_COUNT", RUBY_VALUE_METHOD_FUNC(swig_ruby_trackings_count), RUBY_VOID_METHOD_FUNC((rb_gvar_setter_t*)NULL))
1277
- ;
1288
+ rb_define_virtual_variable("SWIG_TRACKINGS_COUNT",
1289
+ VALUEFUNC(swig_ruby_trackings_count),
1290
+ SWIG_RUBY_VOID_ANYARGS_FUNC((rb_gvar_setter_t*)NULL));
1278
1291
  }
1279
1292
 
1280
1293
  /* Add a Tracking from a C/C++ struct to a Ruby object */
@@ -1306,13 +1319,14 @@ SWIGRUNTIME void SWIG_RubyRemoveTracking(void* ptr) {
1306
1319
 
1307
1320
  /* This is a helper method that unlinks a Ruby object from its
1308
1321
  underlying C++ object. This is needed if the lifetime of the
1309
- Ruby object is longer than the C++ object */
1322
+ Ruby object is longer than the C++ object. */
1310
1323
  SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) {
1311
1324
  VALUE object = SWIG_RubyInstanceFor(ptr);
1312
1325
 
1313
1326
  if (object != Qnil) {
1314
- if (TYPE(object) != T_DATA)
1315
- abort();
1327
+ // object might have the T_ZOMBIE type, but that's just
1328
+ // because the GC has flagged it as such for a deferred
1329
+ // destruction. Until then, it's still a T_DATA object.
1316
1330
  DATA_PTR(object) = 0;
1317
1331
  }
1318
1332
  }
@@ -1322,14 +1336,15 @@ SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) {
1322
1336
  to the passed callback function. */
1323
1337
 
1324
1338
  /* Proxy method to abstract the internal trackings datatype */
1325
- static int swig_ruby_internal_iterate_callback(st_data_t ptr, st_data_t obj, st_data_t meth) {
1326
- ((void(*)(void*, VALUE))meth)((void*)ptr, (VALUE)obj);
1327
-
1339
+ static int swig_ruby_internal_iterate_callback(st_data_t ptr, st_data_t obj, st_data_t meth) {
1340
+ ((void (*) (void *, VALUE))meth)((void *)ptr, (VALUE)obj);
1328
1341
  return ST_CONTINUE;
1329
1342
  }
1330
1343
 
1331
1344
  SWIGRUNTIME void SWIG_RubyIterateTrackings( void(*meth)(void* ptr, VALUE obj) ) {
1332
- st_foreach(swig_ruby_trackings, RUBY_INT_METHOD_FUNC(swig_ruby_internal_iterate_callback), (st_data_t)meth);
1345
+ st_foreach(swig_ruby_trackings,
1346
+ SWIG_RUBY_INT_ANYARGS_FUNC(swig_ruby_internal_iterate_callback),
1347
+ (st_data_t)meth);
1333
1348
  }
1334
1349
 
1335
1350
  #ifdef __cplusplus
@@ -1546,10 +1561,11 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1546
1561
  swig_class *sklass;
1547
1562
  VALUE klass;
1548
1563
  VALUE obj;
1549
-
1564
+
1550
1565
  if (!ptr)
1551
1566
  return Qnil;
1552
-
1567
+
1568
+ assert(type);
1553
1569
  if (type->clientdata) {
1554
1570
  sklass = (swig_class *) type->clientdata;
1555
1571
 
@@ -1557,7 +1573,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1557
1573
  track = sklass->trackObjects;
1558
1574
  if (track) {
1559
1575
  obj = SWIG_RubyInstanceFor(ptr);
1560
-
1576
+
1561
1577
  /* Check the object's type and make sure it has the correct type.
1562
1578
  It might not in cases where methods do things like
1563
1579
  downcast methods. */
@@ -1589,7 +1605,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1589
1605
  obj = Data_Wrap_Struct(klass, 0, 0, ptr);
1590
1606
  }
1591
1607
  rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name));
1592
-
1608
+
1593
1609
  return obj;
1594
1610
  }
1595
1611
 
@@ -1609,6 +1625,8 @@ SWIGRUNTIMEINLINE char *
1609
1625
  SWIG_Ruby_MangleStr(VALUE obj)
1610
1626
  {
1611
1627
  VALUE stype = rb_iv_get(obj, "@__swigtype__");
1628
+ if (NIL_P(stype))
1629
+ return NULL;
1612
1630
  return StringValuePtr(stype);
1613
1631
  }
1614
1632
 
@@ -1621,7 +1639,7 @@ typedef struct {
1621
1639
  SWIGRUNTIME swig_ruby_owntype
1622
1640
  SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) {
1623
1641
  swig_ruby_owntype oldown = {0, 0};
1624
- if (obj) {
1642
+ if (TYPE(obj) == T_DATA && !RTYPEDDATA_P(obj)) {
1625
1643
  oldown.datafree = RDATA(obj)->dfree;
1626
1644
  RDATA(obj)->dfree = own.datafree;
1627
1645
  }
@@ -1640,9 +1658,9 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
1640
1658
  if (NIL_P(obj)) {
1641
1659
  if (ptr)
1642
1660
  *ptr = 0;
1643
- return SWIG_OK;
1661
+ return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK;
1644
1662
  } else {
1645
- if (TYPE(obj) != T_DATA) {
1663
+ if (TYPE(obj) != T_DATA || (TYPE(obj) == T_DATA && RTYPEDDATA_P(obj))) {
1646
1664
  return SWIG_ERROR;
1647
1665
  }
1648
1666
  Data_Get_Struct(obj, void, vptr);
@@ -1737,7 +1755,7 @@ SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
1737
1755
  return rb_str_new2(result);
1738
1756
  }
1739
1757
 
1740
- /* Convert a packed value value */
1758
+ /* Convert a packed pointer value */
1741
1759
  SWIGRUNTIME int
1742
1760
  SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
1743
1761
  swig_cast_info *tc;
@@ -1977,7 +1995,7 @@ static swig_module_info swig_module = {swig_types, 119, 0, 0, 0, 0};
1977
1995
  #define SWIG_RUBY_THREAD_END_BLOCK
1978
1996
 
1979
1997
 
1980
- #define SWIGVERSION 0x030012
1998
+ #define SWIGVERSION 0x040002
1981
1999
  #define SWIG_VERSION SWIGVERSION
1982
2000
 
1983
2001
 
@@ -2082,14 +2100,16 @@ SWIG_From_unsigned_SS_int (unsigned int value)
2082
2100
 
2083
2101
 
2084
2102
  SWIGINTERN VALUE
2085
- SWIG_ruby_failed(VALUE, VALUE)
2103
+ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
2086
2104
  {
2087
2105
  return Qnil;
2088
2106
  }
2089
2107
 
2090
2108
 
2091
- /*@SWIG:/usr/share/swig3.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2092
- SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE pargs){VALUE *args=(VALUE *)pargs;
2109
+ /*@SWIG:/usr/share/swig4.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2110
+ SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
2111
+ {
2112
+ VALUE *args = (VALUE *)arg;
2093
2113
  VALUE obj = args[0];
2094
2114
  VALUE type = TYPE(obj);
2095
2115
  long *res = (long *)(args[1]);
@@ -2107,7 +2127,7 @@ SWIG_AsVal_long (VALUE obj, long* val)
2107
2127
  VALUE a[2];
2108
2128
  a[0] = obj;
2109
2129
  a[1] = (VALUE)(&v);
2110
- if (rb_rescue(RUBY_VALUE_METHOD_FUNC(SWIG_AUX_NUM2LONG), (VALUE)a, RUBY_VALUE_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) {
2130
+ if (rb_rescue(VALUEFUNC(SWIG_AUX_NUM2LONG), (VALUE)a, VALUEFUNC(SWIG_ruby_failed), 0) != Qnil) {
2111
2131
  if (val) *val = v;
2112
2132
  return SWIG_OK;
2113
2133
  }
@@ -2132,8 +2152,10 @@ SWIG_AsVal_int (VALUE obj, int *val)
2132
2152
  }
2133
2153
 
2134
2154
 
2135
- /*@SWIG:/usr/share/swig3.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2136
- SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE pargs){VALUE *args=(VALUE *)pargs;
2155
+ /*@SWIG:/usr/share/swig4.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2156
+ SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE arg)
2157
+ {
2158
+ VALUE *args = (VALUE *)arg;
2137
2159
  VALUE obj = args[0];
2138
2160
  VALUE type = TYPE(obj);
2139
2161
  unsigned long *res = (unsigned long *)(args[1]);
@@ -2151,7 +2173,7 @@ SWIG_AsVal_unsigned_SS_long (VALUE obj, unsigned long *val)
2151
2173
  VALUE a[2];
2152
2174
  a[0] = obj;
2153
2175
  a[1] = (VALUE)(&v);
2154
- if (rb_rescue(RUBY_VALUE_METHOD_FUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, RUBY_VALUE_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) {
2176
+ if (rb_rescue(VALUEFUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, VALUEFUNC(SWIG_ruby_failed), 0) != Qnil) {
2155
2177
  if (val) *val = v;
2156
2178
  return SWIG_OK;
2157
2179
  }
@@ -11229,7 +11251,7 @@ SWIGINTERN VALUE _wrap_FXTable_setShape(int nargs, VALUE *args, VALUE self) {
11229
11251
  _v = SWIG_CheckState(res);
11230
11252
  if (_v) {
11231
11253
  void *vptr = 0;
11232
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_FXRegion, 0);
11254
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_FXRegion, SWIG_POINTER_NO_NULL);
11233
11255
  _v = SWIG_CheckState(res);
11234
11256
  if (_v) {
11235
11257
  return _wrap_FXTable_setShape__SWIG_0(nargs, args, self);
@@ -14198,7 +14220,7 @@ SWIG_InitializeModule(void *clientdata) {
14198
14220
 
14199
14221
  /* Now work on filling in swig_module.types */
14200
14222
  #ifdef SWIGRUNTIME_DEBUG
14201
- printf("SWIG_InitializeModule: size %d\n", swig_module.size);
14223
+ printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size);
14202
14224
  #endif
14203
14225
  for (i = 0; i < swig_module.size; ++i) {
14204
14226
  swig_type_info *type = 0;
@@ -14206,7 +14228,7 @@ SWIG_InitializeModule(void *clientdata) {
14206
14228
  swig_cast_info *cast;
14207
14229
 
14208
14230
  #ifdef SWIGRUNTIME_DEBUG
14209
- printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
14231
+ printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
14210
14232
  #endif
14211
14233
 
14212
14234
  /* if there is another module already loaded */
@@ -14282,7 +14304,7 @@ SWIG_InitializeModule(void *clientdata) {
14282
14304
  for (i = 0; i < swig_module.size; ++i) {
14283
14305
  int j = 0;
14284
14306
  swig_cast_info *cast = swig_module.cast_initial[i];
14285
- printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
14307
+ printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
14286
14308
  while (cast->type) {
14287
14309
  printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
14288
14310
  cast++;
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 3.0.12
3
+ * Version 4.0.2
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -331,6 +331,7 @@ template <typename T> T SwigValueInit() {
331
331
  /* Flags for pointer conversions */
332
332
  #define SWIG_POINTER_DISOWN 0x1
333
333
  #define SWIG_CAST_NEW_MEMORY 0x2
334
+ #define SWIG_POINTER_NO_NULL 0x4
334
335
 
335
336
  /* Flags for new pointer objects */
336
337
  #define SWIG_POINTER_OWN 0x1
@@ -982,42 +983,53 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
982
983
  #ifndef RSTRUCT_PTR
983
984
  # define RSTRUCT_PTR(x) RSTRUCT(x)->ptr
984
985
  #endif
986
+ #ifndef RTYPEDDATA_P
987
+ # define RTYPEDDATA_P(x) (TYPE(x) != T_DATA)
988
+ #endif
985
989
 
986
990
 
987
991
 
988
992
  /*
989
- * Need to be very careful about how these macros are defined, especially
990
- * when compiling C++ code or C code with an ANSI C compiler.
993
+ * The following macros are used for providing the correct type of a
994
+ * function pointer to the Ruby C API.
995
+ * Starting with Ruby 2.7 (corresponding to RB_METHOD_DEFINITION_DECL being
996
+ * defined) these macros act transparently due to Ruby's moving away from
997
+ * ANYARGS and instead employing strict function signatures.
998
+ *
999
+ * Note: In case of C (not C++) the macros are transparent even before
1000
+ * Ruby 2.7 due to the fact that the Ruby C API used function declarators
1001
+ * with empty parentheses, which allows for an unspecified number of
1002
+ * arguments.
1003
+ *
1004
+ * PROTECTFUNC(f) is used for the function pointer argument of the Ruby
1005
+ * C API function rb_protect().
991
1006
  *
992
- * VALUEFUNC(f) is a macro used to typecast a C function that implements
993
- * a Ruby method so that it can be passed as an argument to API functions
994
- * like rb_define_method() and rb_define_singleton_method().
1007
+ * VALUEFUNC(f) is used for the function pointer argument(s) of Ruby C API
1008
+ * functions like rb_define_method() and rb_define_singleton_method().
995
1009
  *
996
- * VOIDFUNC(f) is a macro used to typecast a C function that implements
997
- * either the "mark" or "free" stuff for a Ruby Data object, so that it
998
- * can be passed as an argument to API functions like Data_Wrap_Struct()
1010
+ * VOIDFUNC(f) is used to typecast a C function that implements either
1011
+ * the "mark" or "free" stuff for a Ruby Data object, so that it can be
1012
+ * passed as an argument to Ruby C API functions like Data_Wrap_Struct()
999
1013
  * and Data_Make_Struct().
1014
+ *
1015
+ * SWIG_RUBY_VOID_ANYARGS_FUNC(f) is used for the function pointer
1016
+ * argument(s) of Ruby C API functions like rb_define_virtual_variable().
1017
+ *
1018
+ * SWIG_RUBY_INT_ANYARGS_FUNC(f) is used for the function pointer
1019
+ * argument(s) of Ruby C API functions like st_foreach().
1000
1020
  */
1001
-
1002
- #ifdef __cplusplus
1003
- # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
1004
- # define PROTECTFUNC(f) ((VALUE (*)()) f)
1005
- # define VALUEFUNC(f) ((VALUE (*)()) f)
1006
- # define VOIDFUNC(f) ((void (*)()) f)
1007
- # else
1008
- # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
1009
- # define PROTECTFUNC(f) ((VALUE (*)()) f)
1010
- # define VALUEFUNC(f) ((VALUE (*)()) f)
1011
- # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1012
- # else /* These definitions should work for Ruby 1.7+ */
1013
- # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
1014
- # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
1015
- # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1016
- # endif
1017
- # endif
1021
+ #if defined(__cplusplus) && !defined(RB_METHOD_DEFINITION_DECL)
1022
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
1023
+ # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
1024
+ # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
1025
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) ((void (*)(ANYARGS))(f))
1026
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) ((int (*)(ANYARGS))(f))
1018
1027
  #else
1028
+ # define PROTECTFUNC(f) (f)
1019
1029
  # define VALUEFUNC(f) (f)
1020
1030
  # define VOIDFUNC(f) (f)
1031
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) (f)
1032
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) (f)
1021
1033
  #endif
1022
1034
 
1023
1035
  /* Don't use for expressions have side effect */
@@ -1205,7 +1217,7 @@ void Ruby_Format_OverloadedError(
1205
1217
  /* -----------------------------------------------------------------------------
1206
1218
  * rubytracking.swg
1207
1219
  *
1208
- * This file contains support for tracking mappings from
1220
+ * This file contains support for tracking mappings from
1209
1221
  * Ruby objects to C++ objects. This functionality is needed
1210
1222
  * to implement mark functions for Ruby's mark and sweep
1211
1223
  * garbage collector.
@@ -1232,7 +1244,7 @@ extern "C" {
1232
1244
  #endif
1233
1245
 
1234
1246
  /* Global hash table to store Trackings from C/C++
1235
- structs to Ruby Objects.
1247
+ structs to Ruby Objects.
1236
1248
  */
1237
1249
  static st_table* swig_ruby_trackings = NULL;
1238
1250
 
@@ -1246,7 +1258,7 @@ SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) {
1246
1258
  /* Create a hash table to store Trackings from C++
1247
1259
  objects to Ruby objects. */
1248
1260
 
1249
- /* Try to see if some other .so has already created a
1261
+ /* Try to see if some other .so has already created a
1250
1262
  tracking hash table, which we keep hidden in an instance var
1251
1263
  in the SWIG module.
1252
1264
  This is done to allow multiple DSOs to share the same
@@ -1273,8 +1285,9 @@ SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) {
1273
1285
  swig_ruby_trackings = (st_table*)NUM2SWIG(trackings_value);
1274
1286
  }
1275
1287
 
1276
- rb_define_virtual_variable("SWIG_TRACKINGS_COUNT", RUBY_VALUE_METHOD_FUNC(swig_ruby_trackings_count), RUBY_VOID_METHOD_FUNC((rb_gvar_setter_t*)NULL))
1277
- ;
1288
+ rb_define_virtual_variable("SWIG_TRACKINGS_COUNT",
1289
+ VALUEFUNC(swig_ruby_trackings_count),
1290
+ SWIG_RUBY_VOID_ANYARGS_FUNC((rb_gvar_setter_t*)NULL));
1278
1291
  }
1279
1292
 
1280
1293
  /* Add a Tracking from a C/C++ struct to a Ruby object */
@@ -1306,13 +1319,14 @@ SWIGRUNTIME void SWIG_RubyRemoveTracking(void* ptr) {
1306
1319
 
1307
1320
  /* This is a helper method that unlinks a Ruby object from its
1308
1321
  underlying C++ object. This is needed if the lifetime of the
1309
- Ruby object is longer than the C++ object */
1322
+ Ruby object is longer than the C++ object. */
1310
1323
  SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) {
1311
1324
  VALUE object = SWIG_RubyInstanceFor(ptr);
1312
1325
 
1313
1326
  if (object != Qnil) {
1314
- if (TYPE(object) != T_DATA)
1315
- abort();
1327
+ // object might have the T_ZOMBIE type, but that's just
1328
+ // because the GC has flagged it as such for a deferred
1329
+ // destruction. Until then, it's still a T_DATA object.
1316
1330
  DATA_PTR(object) = 0;
1317
1331
  }
1318
1332
  }
@@ -1322,14 +1336,15 @@ SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) {
1322
1336
  to the passed callback function. */
1323
1337
 
1324
1338
  /* Proxy method to abstract the internal trackings datatype */
1325
- static int swig_ruby_internal_iterate_callback(st_data_t ptr, st_data_t obj, st_data_t meth) {
1326
- ((void(*)(void*, VALUE))meth)((void*)ptr, (VALUE)obj);
1327
-
1339
+ static int swig_ruby_internal_iterate_callback(st_data_t ptr, st_data_t obj, st_data_t meth) {
1340
+ ((void (*) (void *, VALUE))meth)((void *)ptr, (VALUE)obj);
1328
1341
  return ST_CONTINUE;
1329
1342
  }
1330
1343
 
1331
1344
  SWIGRUNTIME void SWIG_RubyIterateTrackings( void(*meth)(void* ptr, VALUE obj) ) {
1332
- st_foreach(swig_ruby_trackings, RUBY_INT_METHOD_FUNC(swig_ruby_internal_iterate_callback), (st_data_t)meth);
1345
+ st_foreach(swig_ruby_trackings,
1346
+ SWIG_RUBY_INT_ANYARGS_FUNC(swig_ruby_internal_iterate_callback),
1347
+ (st_data_t)meth);
1333
1348
  }
1334
1349
 
1335
1350
  #ifdef __cplusplus
@@ -1546,10 +1561,11 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1546
1561
  swig_class *sklass;
1547
1562
  VALUE klass;
1548
1563
  VALUE obj;
1549
-
1564
+
1550
1565
  if (!ptr)
1551
1566
  return Qnil;
1552
-
1567
+
1568
+ assert(type);
1553
1569
  if (type->clientdata) {
1554
1570
  sklass = (swig_class *) type->clientdata;
1555
1571
 
@@ -1557,7 +1573,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1557
1573
  track = sklass->trackObjects;
1558
1574
  if (track) {
1559
1575
  obj = SWIG_RubyInstanceFor(ptr);
1560
-
1576
+
1561
1577
  /* Check the object's type and make sure it has the correct type.
1562
1578
  It might not in cases where methods do things like
1563
1579
  downcast methods. */
@@ -1589,7 +1605,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1589
1605
  obj = Data_Wrap_Struct(klass, 0, 0, ptr);
1590
1606
  }
1591
1607
  rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name));
1592
-
1608
+
1593
1609
  return obj;
1594
1610
  }
1595
1611
 
@@ -1609,6 +1625,8 @@ SWIGRUNTIMEINLINE char *
1609
1625
  SWIG_Ruby_MangleStr(VALUE obj)
1610
1626
  {
1611
1627
  VALUE stype = rb_iv_get(obj, "@__swigtype__");
1628
+ if (NIL_P(stype))
1629
+ return NULL;
1612
1630
  return StringValuePtr(stype);
1613
1631
  }
1614
1632
 
@@ -1621,7 +1639,7 @@ typedef struct {
1621
1639
  SWIGRUNTIME swig_ruby_owntype
1622
1640
  SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) {
1623
1641
  swig_ruby_owntype oldown = {0, 0};
1624
- if (obj) {
1642
+ if (TYPE(obj) == T_DATA && !RTYPEDDATA_P(obj)) {
1625
1643
  oldown.datafree = RDATA(obj)->dfree;
1626
1644
  RDATA(obj)->dfree = own.datafree;
1627
1645
  }
@@ -1640,9 +1658,9 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
1640
1658
  if (NIL_P(obj)) {
1641
1659
  if (ptr)
1642
1660
  *ptr = 0;
1643
- return SWIG_OK;
1661
+ return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK;
1644
1662
  } else {
1645
- if (TYPE(obj) != T_DATA) {
1663
+ if (TYPE(obj) != T_DATA || (TYPE(obj) == T_DATA && RTYPEDDATA_P(obj))) {
1646
1664
  return SWIG_ERROR;
1647
1665
  }
1648
1666
  Data_Get_Struct(obj, void, vptr);
@@ -1737,7 +1755,7 @@ SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
1737
1755
  return rb_str_new2(result);
1738
1756
  }
1739
1757
 
1740
- /* Convert a packed value value */
1758
+ /* Convert a packed pointer value */
1741
1759
  SWIGRUNTIME int
1742
1760
  SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
1743
1761
  swig_cast_info *tc;
@@ -1973,7 +1991,7 @@ static swig_module_info swig_module = {swig_types, 115, 0, 0, 0, 0};
1973
1991
  #define SWIG_RUBY_THREAD_END_BLOCK
1974
1992
 
1975
1993
 
1976
- #define SWIGVERSION 0x030012
1994
+ #define SWIGVERSION 0x040002
1977
1995
  #define SWIG_VERSION SWIGVERSION
1978
1996
 
1979
1997
 
@@ -2255,14 +2273,16 @@ SWIGINTERN VALUE FXText_position__SWIG_1(FXText const *self){
2255
2273
  }
2256
2274
 
2257
2275
  SWIGINTERN VALUE
2258
- SWIG_ruby_failed(VALUE, VALUE)
2276
+ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
2259
2277
  {
2260
2278
  return Qnil;
2261
2279
  }
2262
2280
 
2263
2281
 
2264
- /*@SWIG:/usr/share/swig3.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2265
- SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE pargs){VALUE *args=(VALUE *)pargs;
2282
+ /*@SWIG:/usr/share/swig4.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2283
+ SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
2284
+ {
2285
+ VALUE *args = (VALUE *)arg;
2266
2286
  VALUE obj = args[0];
2267
2287
  VALUE type = TYPE(obj);
2268
2288
  long *res = (long *)(args[1]);
@@ -2280,7 +2300,7 @@ SWIG_AsVal_long (VALUE obj, long* val)
2280
2300
  VALUE a[2];
2281
2301
  a[0] = obj;
2282
2302
  a[1] = (VALUE)(&v);
2283
- if (rb_rescue(RUBY_VALUE_METHOD_FUNC(SWIG_AUX_NUM2LONG), (VALUE)a, RUBY_VALUE_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) {
2303
+ if (rb_rescue(VALUEFUNC(SWIG_AUX_NUM2LONG), (VALUE)a, VALUEFUNC(SWIG_ruby_failed), 0) != Qnil) {
2284
2304
  if (val) *val = v;
2285
2305
  return SWIG_OK;
2286
2306
  }
@@ -10336,7 +10356,7 @@ SWIGINTERN VALUE _wrap_FXText_setShape(int nargs, VALUE *args, VALUE self) {
10336
10356
  _v = SWIG_CheckState(res);
10337
10357
  if (_v) {
10338
10358
  void *vptr = 0;
10339
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_FXRegion, 0);
10359
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_FXRegion, SWIG_POINTER_NO_NULL);
10340
10360
  _v = SWIG_CheckState(res);
10341
10361
  if (_v) {
10342
10362
  return _wrap_FXText_setShape__SWIG_0(nargs, args, self);
@@ -13029,7 +13049,7 @@ SWIG_InitializeModule(void *clientdata) {
13029
13049
 
13030
13050
  /* Now work on filling in swig_module.types */
13031
13051
  #ifdef SWIGRUNTIME_DEBUG
13032
- printf("SWIG_InitializeModule: size %d\n", swig_module.size);
13052
+ printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size);
13033
13053
  #endif
13034
13054
  for (i = 0; i < swig_module.size; ++i) {
13035
13055
  swig_type_info *type = 0;
@@ -13037,7 +13057,7 @@ SWIG_InitializeModule(void *clientdata) {
13037
13057
  swig_cast_info *cast;
13038
13058
 
13039
13059
  #ifdef SWIGRUNTIME_DEBUG
13040
- printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
13060
+ printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
13041
13061
  #endif
13042
13062
 
13043
13063
  /* if there is another module already loaded */
@@ -13113,7 +13133,7 @@ SWIG_InitializeModule(void *clientdata) {
13113
13133
  for (i = 0; i < swig_module.size; ++i) {
13114
13134
  int j = 0;
13115
13135
  swig_cast_info *cast = swig_module.cast_initial[i];
13116
- printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
13136
+ printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
13117
13137
  while (cast->type) {
13118
13138
  printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
13119
13139
  cast++;