@img/sharp-libvips-dev-wasm32 1.2.4 → 1.3.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/README.md +23 -22
  2. package/include/aom/aom_codec.h +1 -1
  3. package/include/aom/aom_decoder.h +4 -0
  4. package/include/aom/aom_encoder.h +19 -8
  5. package/include/aom/aom_ext_ratectrl.h +664 -0
  6. package/include/aom/aom_image.h +93 -30
  7. package/include/aom/aom_tpl.h +99 -0
  8. package/include/aom/aomcx.h +89 -16
  9. package/include/aom/aomdx.h +12 -0
  10. package/include/expat.h +15 -3
  11. package/include/expat_config.h +6 -6
  12. package/include/expat_external.h +4 -4
  13. package/include/glib-2.0/gio/gdbusconnection.h +2 -8
  14. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +8 -1
  15. package/include/glib-2.0/gio/gfileattribute.h +1 -1
  16. package/include/glib-2.0/gio/gfileinfo.h +12 -0
  17. package/include/glib-2.0/gio/gicon.h +1 -1
  18. package/include/glib-2.0/gio/gio-autocleanups.h +0 -1
  19. package/include/glib-2.0/gio/gio-visibility.h +68 -0
  20. package/include/glib-2.0/gio/gio.h +2 -0
  21. package/include/glib-2.0/gio/gioenums.h +66 -44
  22. package/include/glib-2.0/gio/gioenumtypes.h +2 -0
  23. package/include/glib-2.0/gio/giptosmessage.h +46 -0
  24. package/include/glib-2.0/gio/gipv6tclassmessage.h +46 -0
  25. package/include/glib-2.0/gio/gresolver.h +1 -1
  26. package/include/glib-2.0/gio/gsettings.h +1 -1
  27. package/include/glib-2.0/gio/gsocketcontrolmessage.h +2 -0
  28. package/include/glib-2.0/glib/gatomic.h +26 -2
  29. package/include/glib-2.0/glib/gfileutils.h +2 -2
  30. package/include/glib-2.0/glib/ghook.h +3 -1
  31. package/include/glib-2.0/glib/giochannel.h +1 -1
  32. package/include/glib-2.0/glib/gkeyfile.h +1 -1
  33. package/include/glib-2.0/glib/glib-visibility.h +68 -0
  34. package/include/glib-2.0/glib/gmacros.h +36 -0
  35. package/include/glib-2.0/glib/gmain.h +4 -0
  36. package/include/glib-2.0/glib/gmarkup.h +20 -1
  37. package/include/glib-2.0/glib/gmem.h +4 -4
  38. package/include/glib-2.0/glib/gmessages.h +7 -9
  39. package/include/glib-2.0/glib/gnode.h +1 -1
  40. package/include/glib-2.0/glib/goption.h +1 -1
  41. package/include/glib-2.0/glib/gsequence.h +2 -2
  42. package/include/glib-2.0/glib/gslice.h +12 -4
  43. package/include/glib-2.0/glib/gspawn.h +1 -1
  44. package/include/glib-2.0/glib/gstrfuncs.h +191 -1
  45. package/include/glib-2.0/glib/gtestutils.h +6 -3
  46. package/include/glib-2.0/glib/gtimer.h +1 -0
  47. package/include/glib-2.0/glib/gtypes.h +46 -4
  48. package/include/glib-2.0/glib/gunicode.h +13 -1
  49. package/include/glib-2.0/glib/guri.h +3 -3
  50. package/include/glib-2.0/glib/gutils.h +10 -1
  51. package/include/glib-2.0/glib/gvarianttype.h +16 -16
  52. package/include/glib-2.0/glib/gversionmacros.h +31 -0
  53. package/include/glib-2.0/glib-unix.h +4 -0
  54. package/include/glib-2.0/gmodule/gmodule-visibility.h +68 -0
  55. package/include/glib-2.0/gmodule.h +1 -1
  56. package/include/glib-2.0/gobject/gbinding.h +1 -1
  57. package/include/glib-2.0/gobject/genums.h +2 -2
  58. package/include/glib-2.0/gobject/gobject-visibility.h +68 -0
  59. package/include/glib-2.0/gobject/gobject.h +1 -1
  60. package/include/glib-2.0/gobject/gparam.h +1 -1
  61. package/include/glib-2.0/gobject/gsignal.h +8 -8
  62. package/include/glib-2.0/gobject/gtype.h +17 -17
  63. package/include/hwy/aligned_allocator.h +44 -2
  64. package/include/hwy/auto_tune.h +22 -6
  65. package/include/hwy/base.h +60 -90
  66. package/include/hwy/bit_set.h +410 -0
  67. package/include/hwy/cache_control.h +3 -2
  68. package/include/hwy/detect_compiler_arch.h +134 -14
  69. package/include/hwy/detect_targets.h +82 -36
  70. package/include/hwy/highway.h +15 -0
  71. package/include/hwy/nanobenchmark.h +12 -3
  72. package/include/hwy/ops/arm_neon-inl.h +96 -25
  73. package/include/hwy/ops/arm_sve-inl.h +250 -95
  74. package/include/hwy/ops/emu128-inl.h +12 -7
  75. package/include/hwy/ops/generic_ops-inl.h +271 -131
  76. package/include/hwy/ops/loongarch_lasx-inl.h +31 -9
  77. package/include/hwy/ops/loongarch_lsx-inl.h +33 -12
  78. package/include/hwy/ops/ppc_vsx-inl.h +99 -19
  79. package/include/hwy/ops/rvv-inl.h +239 -130
  80. package/include/hwy/ops/scalar-inl.h +22 -7
  81. package/include/hwy/ops/set_macros-inl.h +163 -107
  82. package/include/hwy/ops/wasm_128-inl.h +13 -22
  83. package/include/hwy/ops/x86_128-inl.h +223 -120
  84. package/include/hwy/ops/x86_256-inl.h +70 -134
  85. package/include/hwy/ops/x86_512-inl.h +130 -134
  86. package/include/hwy/print-inl.h +2 -0
  87. package/include/hwy/profiler.h +355 -264
  88. package/include/hwy/robust_statistics.h +3 -1
  89. package/include/hwy/timer.h +44 -0
  90. package/include/lcms2.h +35 -5
  91. package/include/lcms2_plugin.h +1 -1
  92. package/include/libexif/exif-utils.h +1 -1
  93. package/include/libheif/heif.h +2 -0
  94. package/include/libheif/heif_aux_images.h +2 -2
  95. package/include/libheif/heif_brands.h +16 -4
  96. package/include/libheif/heif_color.h +147 -25
  97. package/include/libheif/heif_components.h +264 -0
  98. package/include/libheif/heif_context.h +18 -4
  99. package/include/libheif/heif_cxx.h +20 -18
  100. package/include/libheif/heif_decoding.h +63 -9
  101. package/include/libheif/heif_encoding.h +46 -12
  102. package/include/libheif/heif_error.h +15 -6
  103. package/include/libheif/heif_export.h +48 -0
  104. package/include/libheif/heif_image.h +94 -32
  105. package/include/libheif/heif_image_handle.h +54 -3
  106. package/include/libheif/heif_items.h +25 -2
  107. package/include/libheif/heif_library.h +13 -18
  108. package/include/libheif/heif_metadata.h +5 -2
  109. package/include/libheif/heif_omaf.h +104 -0
  110. package/include/libheif/heif_plugin.h +80 -13
  111. package/include/libheif/heif_properties.h +259 -5
  112. package/include/libheif/heif_regions.h +5 -3
  113. package/include/libheif/heif_security.h +24 -2
  114. package/include/libheif/heif_sequences.h +163 -14
  115. package/include/libheif/heif_text.h +161 -0
  116. package/include/libheif/heif_tiling.h +2 -2
  117. package/include/libheif/heif_uncompressed.h +29 -5
  118. package/include/libheif/heif_version.h +2 -2
  119. package/include/libpng16/png.h +3526 -0
  120. package/include/libpng16/pngconf.h +615 -0
  121. package/include/libpng16/pnglibconf.h +233 -0
  122. package/include/png.h +3526 -0
  123. package/include/pngconf.h +615 -0
  124. package/include/pnglibconf.h +233 -0
  125. package/include/resvg.h +3 -3
  126. package/include/tiffconf.h +9 -10
  127. package/include/tiffio.h +10 -9
  128. package/include/tiffvers.h +1 -1
  129. package/include/ultrahdr_api.h +892 -0
  130. package/include/vips/VError8.h +17 -14
  131. package/include/vips/VImage8.h +235 -32
  132. package/include/vips/arithmetic.h +9 -9
  133. package/include/vips/basic.h +11 -1
  134. package/include/vips/colour.h +19 -2
  135. package/include/vips/conversion.h +8 -8
  136. package/include/vips/convolution.h +1 -1
  137. package/include/vips/create.h +2 -2
  138. package/include/vips/draw.h +1 -1
  139. package/include/vips/enumtypes.h +3 -0
  140. package/include/vips/foreign.h +74 -15
  141. package/include/vips/header.h +22 -0
  142. package/include/vips/image.h +8 -5
  143. package/include/vips/memory.h +1 -1
  144. package/include/vips/morphology.h +1 -1
  145. package/include/vips/operation.h +2 -1
  146. package/include/vips/private.h +5 -10
  147. package/include/vips/region.h +7 -1
  148. package/include/vips/resample.h +2 -2
  149. package/include/vips/semaphore.h +1 -5
  150. package/include/vips/threadpool.h +0 -1
  151. package/include/vips/version.h +6 -6
  152. package/include/zlib.h +5 -5
  153. package/lib/glib-2.0/include/glibconfig.h +2 -4
  154. package/lib/libaom.a +0 -0
  155. package/lib/libcgif.a +0 -0
  156. package/lib/libexif.a +0 -0
  157. package/lib/libexif.la +1 -1
  158. package/lib/libexpat.a +0 -0
  159. package/lib/libexpat.la +2 -2
  160. package/lib/libffi.a +0 -0
  161. package/lib/libgio-2.0.a +0 -0
  162. package/lib/libglib-2.0.a +0 -0
  163. package/lib/libgmodule-2.0.a +0 -0
  164. package/lib/libgobject-2.0.a +0 -0
  165. package/lib/libgthread-2.0.a +0 -0
  166. package/lib/libheif.a +0 -0
  167. package/lib/libhwy.a +0 -0
  168. package/lib/libimagequant.a +0 -0
  169. package/lib/libjpeg.a +0 -0
  170. package/lib/liblcms2.a +0 -0
  171. package/lib/libpng.a +0 -0
  172. package/lib/{libsharpyuv.la → libpng.la} +8 -8
  173. package/lib/libpng16.a +0 -0
  174. package/lib/{libwebp.la → libpng16.la} +7 -7
  175. package/lib/libresvg.a +0 -0
  176. package/lib/libsharpyuv.a +0 -0
  177. package/lib/libtiff.a +0 -0
  178. package/lib/libuhdr.a +0 -0
  179. package/lib/libvips-cpp.a +0 -0
  180. package/lib/libvips.a +0 -0
  181. package/lib/libwebp.a +0 -0
  182. package/lib/libwebpdecoder.a +0 -0
  183. package/lib/libwebpdemux.a +0 -0
  184. package/lib/libwebpmux.a +0 -0
  185. package/lib/libz.a +0 -0
  186. package/lib/pkgconfig/aom.pc +2 -2
  187. package/lib/pkgconfig/cgif.pc +1 -1
  188. package/lib/pkgconfig/expat.pc +1 -1
  189. package/lib/pkgconfig/gio-2.0.pc +1 -1
  190. package/lib/pkgconfig/glib-2.0.pc +1 -1
  191. package/lib/pkgconfig/gmodule-2.0.pc +1 -1
  192. package/lib/pkgconfig/gmodule-export-2.0.pc +1 -1
  193. package/lib/pkgconfig/gmodule-no-export-2.0.pc +1 -1
  194. package/lib/pkgconfig/gobject-2.0.pc +1 -1
  195. package/lib/pkgconfig/gthread-2.0.pc +1 -1
  196. package/lib/pkgconfig/lcms2.pc +1 -1
  197. package/lib/pkgconfig/libexif.pc +1 -1
  198. package/lib/pkgconfig/libheif.pc +1 -1
  199. package/lib/pkgconfig/libhwy.pc +3 -4
  200. package/lib/pkgconfig/libpng.pc +12 -0
  201. package/lib/pkgconfig/libpng16.pc +12 -0
  202. package/lib/pkgconfig/libsharpyuv.pc +1 -1
  203. package/lib/pkgconfig/libtiff-4.pc +2 -2
  204. package/lib/pkgconfig/libuhdr.pc +11 -0
  205. package/lib/pkgconfig/libwebp.pc +1 -1
  206. package/lib/pkgconfig/libwebpdecoder.pc +11 -0
  207. package/lib/pkgconfig/libwebpmux.pc +1 -1
  208. package/lib/pkgconfig/vips-cpp.pc +2 -2
  209. package/lib/pkgconfig/vips.pc +2 -2
  210. package/package.json +1 -1
  211. package/versions.json +15 -14
  212. package/include/spng.h +0 -537
  213. package/lib/libspng.a +0 -0
  214. package/lib/libtiff.la +0 -41
  215. package/lib/libwebpdemux.la +0 -41
  216. package/lib/libwebpmux.la +0 -41
  217. package/lib/pkgconfig/spng.pc +0 -10
@@ -350,6 +350,14 @@ G_END_DECLS
350
350
  __asm__ __volatile__ ("" : : : "memory"); \
351
351
  gaig_result; \
352
352
  }))
353
+ #if defined(_GLIB_GCC_HAVE_SYNC_SWAP)
354
+ #define g_atomic_int_set(atomic, newval) \
355
+ (G_GNUC_EXTENSION ({ \
356
+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
357
+ (void) (0 ? *(atomic) ^ (newval) : 1); \
358
+ (void) __sync_swap ((atomic), (newval)); \
359
+ }))
360
+ #else /* !_GLIB_GCC_HAVE_SYNC_SWAP */
353
361
  #define g_atomic_int_set(atomic, newval) \
354
362
  (G_GNUC_EXTENSION ({ \
355
363
  G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
@@ -357,7 +365,10 @@ G_END_DECLS
357
365
  __sync_synchronize (); \
358
366
  __asm__ __volatile__ ("" : : : "memory"); \
359
367
  *(atomic) = (newval); \
368
+ __asm__ __volatile__ ("" : : : "memory"); \
369
+ __sync_synchronize (); \
360
370
  }))
371
+ #endif /* !_GLIB_GCC_HAVE_SYNC_SWAP */
361
372
  #define g_atomic_pointer_get(atomic) \
362
373
  (G_GNUC_EXTENSION ({ \
363
374
  gpointer gapg_result; \
@@ -367,6 +378,14 @@ G_END_DECLS
367
378
  __asm__ __volatile__ ("" : : : "memory"); \
368
379
  gapg_result; \
369
380
  }))
381
+ #if defined(_GLIB_GCC_HAVE_SYNC_SWAP)
382
+ #define g_atomic_pointer_set(atomic, newval) \
383
+ (G_GNUC_EXTENSION ({ \
384
+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
385
+ (void) (0 ? (gpointer) *(atomic) : NULL); \
386
+ (void) __sync_swap ((atomic), (newval)); \
387
+ }))
388
+ #else /* ! _GLIB_GCC_HAVE_SYNC_SWAP */
370
389
  #if defined(glib_typeof)
371
390
  #define g_atomic_pointer_set(atomic, newval) \
372
391
  (G_GNUC_EXTENSION ({ \
@@ -375,8 +394,10 @@ G_END_DECLS
375
394
  __sync_synchronize (); \
376
395
  __asm__ __volatile__ ("" : : : "memory"); \
377
396
  *(atomic) = (glib_typeof (*(atomic))) (guintptr) (newval); \
397
+ __asm__ __volatile__ ("" : : : "memory"); \
398
+ __sync_synchronize (); \
378
399
  }))
379
- #else /* if !(defined(glib_typeof) */
400
+ #else /* ! glib_typeof */
380
401
  #define g_atomic_pointer_set(atomic, newval) \
381
402
  (G_GNUC_EXTENSION ({ \
382
403
  G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
@@ -384,8 +405,11 @@ G_END_DECLS
384
405
  __sync_synchronize (); \
385
406
  __asm__ __volatile__ ("" : : : "memory"); \
386
407
  *(atomic) = (gpointer) (guintptr) (newval); \
408
+ __asm__ __volatile__ ("" : : : "memory"); \
409
+ __sync_synchronize (); \
387
410
  }))
388
- #endif /* if defined(glib_typeof) */
411
+ #endif /* ! glib_typeof */
412
+ #endif /* ! _GLIB_GCC_HAVE_SYNC_SWAP */
389
413
 
390
414
  #define g_atomic_int_inc(atomic) \
391
415
  (G_GNUC_EXTENSION ({ \
@@ -72,7 +72,7 @@ typedef enum
72
72
  G_FILE_TEST_IS_DIR = 1 << 2,
73
73
  G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
74
74
  G_FILE_TEST_EXISTS = 1 << 4
75
- } GFileTest;
75
+ } G_GNUC_FLAG_ENUM GFileTest;
76
76
 
77
77
  /**
78
78
  * GFileSetContentsFlags:
@@ -104,7 +104,7 @@ typedef enum
104
104
  G_FILE_SET_CONTENTS_CONSISTENT = 1 << 0,
105
105
  G_FILE_SET_CONTENTS_DURABLE = 1 << 1,
106
106
  G_FILE_SET_CONTENTS_ONLY_EXISTING = 1 << 2
107
- } GFileSetContentsFlags
107
+ } G_GNUC_FLAG_ENUM GFileSetContentsFlags
108
108
  GLIB_AVAILABLE_ENUMERATOR_IN_2_66;
109
109
 
110
110
  GLIB_AVAILABLE_IN_ALL
@@ -56,8 +56,10 @@ typedef enum
56
56
  {
57
57
  G_HOOK_FLAG_ACTIVE = 1 << 0,
58
58
  G_HOOK_FLAG_IN_CALL = 1 << 1,
59
+ G_HOOK_FLAG_RESERVED1 = 1 << 2, /*< private >*/
60
+ G_HOOK_FLAG_RESERVED2 = 1 << 3, /*< private >*/
59
61
  G_HOOK_FLAG_MASK = 0x0f
60
- } GHookFlagMask;
62
+ } G_GNUC_FLAG_ENUM GHookFlagMask;
61
63
  #define G_HOOK_FLAG_USER_SHIFT (4)
62
64
 
63
65
 
@@ -95,7 +95,7 @@ typedef enum
95
95
  G_IO_FLAG_MASK = (1 << 5) - 1,
96
96
  G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
97
97
  G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
98
- } GIOFlags;
98
+ } G_GNUC_FLAG_ENUM GIOFlags;
99
99
 
100
100
  struct _GIOChannel
101
101
  {
@@ -54,7 +54,7 @@ typedef enum
54
54
  G_KEY_FILE_NONE = 0,
55
55
  G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
56
56
  G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
57
- } GKeyFileFlags;
57
+ } G_GNUC_FLAG_ENUM GKeyFileFlags;
58
58
 
59
59
  GLIB_AVAILABLE_IN_ALL
60
60
  GKeyFile *g_key_file_new (void);
@@ -1086,3 +1086,71 @@
1086
1086
  #define GLIB_AVAILABLE_ENUMERATOR_IN_2_86
1087
1087
  #define GLIB_AVAILABLE_TYPE_IN_2_86
1088
1088
  #endif
1089
+
1090
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_88
1091
+ #define GLIB_DEPRECATED_IN_2_88 GLIB_DEPRECATED
1092
+ #define GLIB_DEPRECATED_IN_2_88_FOR(f) GLIB_DEPRECATED_FOR (f)
1093
+ #define GLIB_DEPRECATED_MACRO_IN_2_88 GLIB_DEPRECATED_MACRO
1094
+ #define GLIB_DEPRECATED_MACRO_IN_2_88_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
1095
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_88 GLIB_DEPRECATED_ENUMERATOR
1096
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_88_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
1097
+ #define GLIB_DEPRECATED_TYPE_IN_2_88 GLIB_DEPRECATED_TYPE
1098
+ #define GLIB_DEPRECATED_TYPE_IN_2_88_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
1099
+ #else
1100
+ #define GLIB_DEPRECATED_IN_2_88 _GLIB_EXTERN
1101
+ #define GLIB_DEPRECATED_IN_2_88_FOR(f) _GLIB_EXTERN
1102
+ #define GLIB_DEPRECATED_MACRO_IN_2_88
1103
+ #define GLIB_DEPRECATED_MACRO_IN_2_88_FOR(f)
1104
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_88
1105
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_88_FOR(f)
1106
+ #define GLIB_DEPRECATED_TYPE_IN_2_88
1107
+ #define GLIB_DEPRECATED_TYPE_IN_2_88_FOR(f)
1108
+ #endif
1109
+
1110
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_88
1111
+ #define GLIB_AVAILABLE_IN_2_88 GLIB_UNAVAILABLE (2, 88)
1112
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_88 GLIB_UNAVAILABLE_STATIC_INLINE (2, 88)
1113
+ #define GLIB_AVAILABLE_MACRO_IN_2_88 GLIB_UNAVAILABLE_MACRO (2, 88)
1114
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_88 GLIB_UNAVAILABLE_ENUMERATOR (2, 88)
1115
+ #define GLIB_AVAILABLE_TYPE_IN_2_88 GLIB_UNAVAILABLE_TYPE (2, 88)
1116
+ #else
1117
+ #define GLIB_AVAILABLE_IN_2_88 _GLIB_EXTERN
1118
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_88
1119
+ #define GLIB_AVAILABLE_MACRO_IN_2_88
1120
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_88
1121
+ #define GLIB_AVAILABLE_TYPE_IN_2_88
1122
+ #endif
1123
+
1124
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_90
1125
+ #define GLIB_DEPRECATED_IN_2_90 GLIB_DEPRECATED
1126
+ #define GLIB_DEPRECATED_IN_2_90_FOR(f) GLIB_DEPRECATED_FOR (f)
1127
+ #define GLIB_DEPRECATED_MACRO_IN_2_90 GLIB_DEPRECATED_MACRO
1128
+ #define GLIB_DEPRECATED_MACRO_IN_2_90_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
1129
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90 GLIB_DEPRECATED_ENUMERATOR
1130
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
1131
+ #define GLIB_DEPRECATED_TYPE_IN_2_90 GLIB_DEPRECATED_TYPE
1132
+ #define GLIB_DEPRECATED_TYPE_IN_2_90_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
1133
+ #else
1134
+ #define GLIB_DEPRECATED_IN_2_90 _GLIB_EXTERN
1135
+ #define GLIB_DEPRECATED_IN_2_90_FOR(f) _GLIB_EXTERN
1136
+ #define GLIB_DEPRECATED_MACRO_IN_2_90
1137
+ #define GLIB_DEPRECATED_MACRO_IN_2_90_FOR(f)
1138
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90
1139
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f)
1140
+ #define GLIB_DEPRECATED_TYPE_IN_2_90
1141
+ #define GLIB_DEPRECATED_TYPE_IN_2_90_FOR(f)
1142
+ #endif
1143
+
1144
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_90
1145
+ #define GLIB_AVAILABLE_IN_2_90 GLIB_UNAVAILABLE (2, 90)
1146
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_90 GLIB_UNAVAILABLE_STATIC_INLINE (2, 90)
1147
+ #define GLIB_AVAILABLE_MACRO_IN_2_90 GLIB_UNAVAILABLE_MACRO (2, 90)
1148
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_90 GLIB_UNAVAILABLE_ENUMERATOR (2, 90)
1149
+ #define GLIB_AVAILABLE_TYPE_IN_2_90 GLIB_UNAVAILABLE_TYPE (2, 90)
1150
+ #else
1151
+ #define GLIB_AVAILABLE_IN_2_90 _GLIB_EXTERN
1152
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_90
1153
+ #define GLIB_AVAILABLE_MACRO_IN_2_90
1154
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_90
1155
+ #define GLIB_AVAILABLE_TYPE_IN_2_90
1156
+ #endif
@@ -82,6 +82,9 @@
82
82
  ((version) == 99 && G_C_STD_VERSION >= 199901L) || \
83
83
  ((version) == 11 && G_C_STD_VERSION >= 201112L) || \
84
84
  ((version) == 17 && G_C_STD_VERSION >= 201710L) || \
85
+ /* the canonical number for C23 is 202311L, but gcc 14 used 202000L and it \
86
+ * implemented almost all of the C23 standard (see https://en.cppreference.com/w/c/compiler_support/23) */ \
87
+ ((version) == 23 && G_C_STD_VERSION >= 202000L) || \
85
88
  0)
86
89
 
87
90
  #else /* defined (__cplusplus) */
@@ -103,6 +106,7 @@
103
106
  ((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \
104
107
  ((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \
105
108
  ((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \
109
+ ((version) == 23 && G_CXX_STD_VERSION >= 202302L) || \
106
110
  0)
107
111
 
108
112
  #endif /* !defined (__cplusplus) */
@@ -775,6 +779,38 @@
775
779
  #define GLIB_CANNOT_IGNORE_DEPRECATIONS
776
780
  #endif
777
781
 
782
+ /**
783
+ * G_GNUC_FLAG_ENUM:
784
+ *
785
+ * Expands to the GNU C `flag_enum` attribute if the compiler is `gcc` or `clang`.
786
+ * This attribute indicates that an enumerated type is used in bitwise
787
+ * operations.
788
+ * It is sometimes used in static analysis.
789
+ *
790
+ * See the
791
+ * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute)
792
+ * for details.
793
+ *
794
+ * |[<!-- language="C" -->
795
+ * typedef enum {
796
+ * G_KEY_FILE_NONE = 0,
797
+ * G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
798
+ * G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
799
+ * } G_GNUC_FLAG_ENUM GKeyFileFlags;
800
+ * ]|
801
+ *
802
+ * The attribute can also be placed after `enum` and before the opening brace,
803
+ * but that may cause it to be misinterpreted as the name of the enum if the
804
+ * macro is not defined.
805
+ *
806
+ * Since: 2.88
807
+ */
808
+ #if g_macro__has_attribute(flag_enum)
809
+ #define G_GNUC_FLAG_ENUM __attribute__((flag_enum))
810
+ #else
811
+ #define G_GNUC_FLAG_ENUM
812
+ #endif
813
+
778
814
  /**
779
815
  * G_GNUC_MAY_ALIAS:
780
816
  *
@@ -28,6 +28,8 @@
28
28
  #include <glib/gslist.h>
29
29
  #include <glib/gthread.h>
30
30
 
31
+ #include <stdint.h>
32
+
31
33
  G_BEGIN_DECLS
32
34
 
33
35
  typedef enum /*< flags >*/
@@ -830,6 +832,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
830
832
 
831
833
  GLIB_AVAILABLE_IN_ALL
832
834
  gint64 g_get_monotonic_time (void);
835
+ GLIB_AVAILABLE_IN_2_88
836
+ uint64_t g_get_monotonic_time_ns (void);
833
837
  GLIB_AVAILABLE_IN_ALL
834
838
  gint64 g_get_real_time (void);
835
839
 
@@ -102,7 +102,7 @@ typedef enum
102
102
  G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1,
103
103
  G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2,
104
104
  G_MARKUP_IGNORE_QUALIFIED = 1 << 3
105
- } GMarkupParseFlags;
105
+ } G_GNUC_FLAG_ENUM GMarkupParseFlags;
106
106
 
107
107
  /**
108
108
  * GMarkupParseContext:
@@ -227,6 +227,25 @@ GLIB_AVAILABLE_IN_ALL
227
227
  void g_markup_parse_context_get_position (GMarkupParseContext *context,
228
228
  gint *line_number,
229
229
  gint *char_number);
230
+ GLIB_AVAILABLE_IN_2_88
231
+ gsize g_markup_parse_context_get_offset (GMarkupParseContext *context);
232
+
233
+ GLIB_AVAILABLE_IN_2_88
234
+ void g_markup_parse_context_get_tag_start (GMarkupParseContext *context,
235
+ gsize *line_number,
236
+ gsize *char_number,
237
+ gsize *offset);
238
+ GLIB_AVAILABLE_IN_2_90
239
+ void g_markup_parse_context_get_attribute_position
240
+ (GMarkupParseContext *context,
241
+ unsigned int attr,
242
+ size_t *start_lines,
243
+ size_t *start_chars,
244
+ size_t *start_offset,
245
+ size_t *end_lines,
246
+ size_t *end_chars,
247
+ size_t *end_offset);
248
+
230
249
  GLIB_AVAILABLE_IN_ALL
231
250
  gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);
232
251
 
@@ -86,14 +86,14 @@ GLIB_AVAILABLE_IN_ALL
86
86
  gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
87
87
  GLIB_AVAILABLE_IN_ALL
88
88
  gpointer g_realloc (gpointer mem,
89
- gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
89
+ gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE(2);
90
90
  GLIB_AVAILABLE_IN_ALL
91
91
  gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
92
92
  GLIB_AVAILABLE_IN_ALL
93
93
  gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
94
94
  GLIB_AVAILABLE_IN_ALL
95
95
  gpointer g_try_realloc (gpointer mem,
96
- gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
96
+ gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE(2);
97
97
 
98
98
  GLIB_AVAILABLE_IN_ALL
99
99
  gpointer g_malloc_n (gsize n_blocks,
@@ -104,7 +104,7 @@ gpointer g_malloc0_n (gsize n_blocks,
104
104
  GLIB_AVAILABLE_IN_ALL
105
105
  gpointer g_realloc_n (gpointer mem,
106
106
  gsize n_blocks,
107
- gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
107
+ gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE2(2,3);
108
108
  GLIB_AVAILABLE_IN_ALL
109
109
  gpointer g_try_malloc_n (gsize n_blocks,
110
110
  gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
@@ -114,7 +114,7 @@ gpointer g_try_malloc0_n (gsize n_blocks,
114
114
  GLIB_AVAILABLE_IN_ALL
115
115
  gpointer g_try_realloc_n (gpointer mem,
116
116
  gsize n_blocks,
117
- gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
117
+ gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE2(2,3);
118
118
 
119
119
  GLIB_AVAILABLE_IN_2_72
120
120
  gpointer g_aligned_alloc (gsize n_blocks,
@@ -32,6 +32,7 @@
32
32
  #endif
33
33
 
34
34
  #include <stdarg.h>
35
+ #include <stdlib.h>
35
36
  #include <glib/gatomic.h>
36
37
  #include <glib/gtypes.h>
37
38
  #include <glib/gmacros.h>
@@ -67,7 +68,7 @@ typedef enum
67
68
  G_LOG_LEVEL_DEBUG = 1 << 7,
68
69
 
69
70
  G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
70
- } GLogLevelFlags;
71
+ } G_GNUC_FLAG_ENUM GLogLevelFlags;
71
72
 
72
73
  /* GLib log levels that are considered fatal by default */
73
74
  #define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
@@ -329,7 +330,7 @@ void g_log_structured_standard (const gchar *log_domain,
329
330
  g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
330
331
  __FILE__, G_STRINGIFY (__LINE__), \
331
332
  G_STRFUNC, __VA_ARGS__); \
332
- for (;;) ; \
333
+ abort (); \
333
334
  } G_STMT_END
334
335
  #define g_message(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
335
336
  __FILE__, G_STRINGIFY (__LINE__), \
@@ -347,14 +348,11 @@ void g_log_structured_standard (const gchar *log_domain,
347
348
  __FILE__, G_STRINGIFY (__LINE__), \
348
349
  G_STRFUNC, __VA_ARGS__)
349
350
  #else
350
- /* for(;;) ; so that GCC knows that control doesn't go past g_error().
351
- * Put space before ending semicolon to avoid C++ build warnings.
352
- */
353
351
  #define g_error(...) G_STMT_START { \
354
352
  g_log (G_LOG_DOMAIN, \
355
353
  G_LOG_LEVEL_ERROR, \
356
354
  __VA_ARGS__); \
357
- for (;;) ; \
355
+ abort (); \
358
356
  } G_STMT_END
359
357
  #define g_message(...) g_log (G_LOG_DOMAIN, \
360
358
  G_LOG_LEVEL_MESSAGE, \
@@ -378,7 +376,7 @@ void g_log_structured_standard (const gchar *log_domain,
378
376
  g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
379
377
  __FILE__, G_STRINGIFY (__LINE__), \
380
378
  G_STRFUNC, format); \
381
- for (;;) ; \
379
+ abort (); \
382
380
  } G_STMT_END
383
381
  #define g_message(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
384
382
  __FILE__, G_STRINGIFY (__LINE__), \
@@ -400,7 +398,7 @@ void g_log_structured_standard (const gchar *log_domain,
400
398
  g_log (G_LOG_DOMAIN, \
401
399
  G_LOG_LEVEL_ERROR, \
402
400
  format); \
403
- for (;;) ; \
401
+ abort (); \
404
402
  } G_STMT_END
405
403
 
406
404
  #define g_message(format...) g_log (G_LOG_DOMAIN, \
@@ -432,7 +430,7 @@ g_error (const gchar *format,
432
430
  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
433
431
  va_end (args);
434
432
 
435
- for(;;) ;
433
+ abort ();
436
434
  }
437
435
  static inline void
438
436
  g_message (const gchar *format,
@@ -46,7 +46,7 @@ typedef enum
46
46
  G_TRAVERSE_MASK = 0x03,
47
47
  G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
48
48
  G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
49
- } GTraverseFlags;
49
+ } G_GNUC_FLAG_ENUM GTraverseFlags;
50
50
 
51
51
  /* Tree traverse orders */
52
52
  typedef enum
@@ -111,7 +111,7 @@ typedef enum
111
111
  G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
112
112
  G_OPTION_FLAG_NOALIAS = 1 << 6,
113
113
  G_OPTION_FLAG_DEPRECATED GLIB_AVAILABLE_ENUMERATOR_IN_2_84 = 1 << 7
114
- } GOptionFlags;
114
+ } G_GNUC_FLAG_ENUM GOptionFlags;
115
115
 
116
116
  /**
117
117
  * GOptionArg:
@@ -43,7 +43,7 @@ GSequence * g_sequence_new (GDestroyNotify data_des
43
43
  GLIB_AVAILABLE_IN_ALL
44
44
  void g_sequence_free (GSequence *seq);
45
45
  GLIB_AVAILABLE_IN_ALL
46
- gint g_sequence_get_length (GSequence *seq);
46
+ gint g_sequence_get_length (GSequence *seq) G_GNUC_PURE;
47
47
  GLIB_AVAILABLE_IN_ALL
48
48
  void g_sequence_foreach (GSequence *seq,
49
49
  GFunc func,
@@ -62,7 +62,7 @@ void g_sequence_sort_iter (GSequence *seq,
62
62
  GSequenceIterCompareFunc cmp_func,
63
63
  gpointer cmp_data);
64
64
  GLIB_AVAILABLE_IN_2_48
65
- gboolean g_sequence_is_empty (GSequence *seq);
65
+ gboolean g_sequence_is_empty (GSequence *seq) G_GNUC_PURE;
66
66
 
67
67
 
68
68
  /* Getting iters */
@@ -45,21 +45,29 @@ GLIB_AVAILABLE_IN_ALL
45
45
  void g_slice_free_chain_with_offset (gsize block_size,
46
46
  gpointer mem_chain,
47
47
  gsize next_offset);
48
- #define g_slice_new(type) ((type*) g_slice_alloc (sizeof (type)))
48
+
49
+ #ifndef __GI_SCANNER__
50
+ /* Private helper to give the allocation size for a struct — we want to
51
+ * guarantee non-empty allocations, so it returns a minimum of 1B. This is
52
+ * necessary because some compilers do allow empty (zero size) structs. */
53
+ #define g_slice_alloc_size(type) (sizeof (type) > 0 ? sizeof (type) : 1)
54
+ #endif
55
+
56
+ #define g_slice_new(type) ((type*) g_slice_alloc (g_slice_alloc_size (type)))
49
57
 
50
58
  /* Allow the compiler to inline memset(). Since the size is a constant, this
51
59
  * can significantly improve performance. */
52
60
  #if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__)
53
61
  # define g_slice_new0(type) \
54
62
  (type *) (G_GNUC_EXTENSION ({ \
55
- gsize __s = sizeof (type); \
63
+ gsize __s = g_slice_alloc_size (type); \
56
64
  gpointer __p; \
57
65
  __p = g_slice_alloc (__s); \
58
66
  memset (__p, 0, __s); \
59
67
  __p; \
60
68
  }))
61
69
  #else
62
- # define g_slice_new0(type) ((type*) g_slice_alloc0 (sizeof (type)))
70
+ # define g_slice_new0(type) ((type*) g_slice_alloc0 (g_slice_alloc_size (type)))
63
71
  #endif
64
72
 
65
73
  /* MemoryBlockType *
@@ -76,7 +84,7 @@ void g_slice_free_chain_with_offset (gsize block_size,
76
84
 
77
85
  /* we go through extra hoops to ensure type safety */
78
86
  #define g_slice_dup(type, mem) \
79
- (1 ? (type*) g_slice_copy (sizeof (type), (mem)) \
87
+ (1 ? (type*) g_slice_copy (g_slice_alloc_size (type), (mem)) \
80
88
  : ((void) ((type*) 0 == (mem)), (type*) 0))
81
89
  #define g_slice_free(type, mem) \
82
90
  G_STMT_START { \
@@ -214,7 +214,7 @@ typedef enum
214
214
  * Since: 2.74
215
215
  */
216
216
  G_SPAWN_STDIN_FROM_DEV_NULL = 1 << 11
217
- } GSpawnFlags;
217
+ } G_GNUC_FLAG_ENUM GSpawnFlags;
218
218
 
219
219
  GLIB_AVAILABLE_IN_ALL
220
220
  GQuark g_spawn_error_quark (void);