@img/sharp-libvips-dev 1.0.1 → 1.0.3

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 (169) hide show
  1. package/README.md +1 -2
  2. package/include/aom/aom_decoder.h +1 -1
  3. package/include/aom/aom_encoder.h +7 -1
  4. package/include/aom/aom_image.h +24 -12
  5. package/include/aom/aom_integer.h +3 -3
  6. package/include/aom/aomcx.h +15 -0
  7. package/include/aom/aomdx.h +5 -2
  8. package/include/archive.h +7 -5
  9. package/include/archive_entry.h +5 -3
  10. package/include/cgif.h +3 -0
  11. package/include/expat.h +21 -10
  12. package/include/expat_config.h +11 -5
  13. package/include/ffi.h +12 -25
  14. package/include/freetype2/freetype/config/ftoption.h +2 -2
  15. package/include/fribidi/fribidi-config.h +2 -2
  16. package/include/fribidi/fribidi-unicode-version.h +3 -3
  17. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +3 -2
  18. package/include/glib-2.0/gio/gappinfo.h +40 -25
  19. package/include/glib-2.0/gio/gapplication.h +6 -0
  20. package/include/glib-2.0/gio/gasyncresult.h +1 -1
  21. package/include/glib-2.0/gio/gconverter.h +5 -0
  22. package/include/glib-2.0/gio/gdbusintrospection.h +1 -1
  23. package/include/glib-2.0/gio/gfile.h +16 -0
  24. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  25. package/include/glib-2.0/gio/giotypes.h +0 -1
  26. package/include/glib-2.0/gio/gsettings.h +8 -0
  27. package/include/glib-2.0/gio/gvfs.h +2 -2
  28. package/include/glib-2.0/girepository/gi-visibility.h +34 -0
  29. package/include/glib-2.0/girepository/giarginfo.h +23 -6
  30. package/include/glib-2.0/girepository/gibaseinfo.h +44 -18
  31. package/include/glib-2.0/girepository/gicallableinfo.h +26 -16
  32. package/include/glib-2.0/girepository/gicallbackinfo.h +17 -2
  33. package/include/glib-2.0/girepository/giconstantinfo.h +19 -4
  34. package/include/glib-2.0/girepository/gienuminfo.h +20 -21
  35. package/include/glib-2.0/girepository/gifieldinfo.h +22 -7
  36. package/include/glib-2.0/girepository/giflagsinfo.h +60 -0
  37. package/include/glib-2.0/girepository/gifunctioninfo.h +22 -7
  38. package/include/glib-2.0/girepository/giinterfaceinfo.h +33 -18
  39. package/include/glib-2.0/girepository/giobjectinfo.h +41 -26
  40. package/include/glib-2.0/girepository/gipropertyinfo.h +18 -3
  41. package/include/glib-2.0/girepository/giregisteredtypeinfo.h +22 -11
  42. package/include/glib-2.0/girepository/girepository-autocleanups.h +56 -0
  43. package/include/glib-2.0/girepository/girepository.h +53 -62
  44. package/include/glib-2.0/girepository/girffi.h +8 -7
  45. package/include/glib-2.0/girepository/gisignalinfo.h +18 -3
  46. package/include/glib-2.0/girepository/gistructinfo.h +26 -11
  47. package/include/glib-2.0/girepository/gitypeinfo.h +29 -16
  48. package/include/glib-2.0/girepository/gitypelib.h +9 -13
  49. package/include/glib-2.0/girepository/gitypes.h +52 -104
  50. package/include/glib-2.0/girepository/giunioninfo.h +28 -12
  51. package/include/glib-2.0/girepository/giunresolvedinfo.h +17 -2
  52. package/include/glib-2.0/girepository/givalueinfo.h +65 -0
  53. package/include/glib-2.0/girepository/givfuncinfo.h +23 -8
  54. package/include/glib-2.0/glib/deprecated/gthread.h +9 -5
  55. package/include/glib-2.0/glib/gbitlock.h +31 -0
  56. package/include/glib-2.0/glib/gbookmarkfile.h +1 -1
  57. package/include/glib-2.0/glib/giochannel.h +2 -2
  58. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  59. package/include/glib-2.0/glib/gmacros.h +12 -5
  60. package/include/glib-2.0/glib/gmain.h +93 -7
  61. package/include/glib-2.0/glib/gmessages.h +8 -0
  62. package/include/glib-2.0/glib/gqsort.h +8 -1
  63. package/include/glib-2.0/glib/gslice.h +2 -0
  64. package/include/glib-2.0/glib/gstrfuncs.h +24 -30
  65. package/include/glib-2.0/glib/gstrvbuilder.h +3 -0
  66. package/include/glib-2.0/glib/gthread.h +191 -3
  67. package/include/glib-2.0/glib/gunicode.h +1 -1
  68. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  69. package/include/glib-2.0/glib-unix.h +7 -1
  70. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  71. package/include/glib-2.0/gobject/genums.h +6 -6
  72. package/include/glib-2.0/gobject/glib-types.h +11 -0
  73. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  74. package/include/glib-2.0/gobject/gsignal.h +16 -6
  75. package/include/glib-2.0/gobject/gtype.h +6 -6
  76. package/include/harfbuzz/hb-buffer.h +6 -0
  77. package/include/harfbuzz/hb-common.h +6 -9
  78. package/include/harfbuzz/hb-cplusplus.hh +8 -11
  79. package/include/harfbuzz/hb-subset.h +17 -4
  80. package/include/harfbuzz/hb-version.h +3 -3
  81. package/include/hwy/abort.h +28 -0
  82. package/include/hwy/aligned_allocator.h +218 -6
  83. package/include/hwy/base.h +1935 -512
  84. package/include/hwy/cache_control.h +24 -6
  85. package/include/hwy/detect_compiler_arch.h +105 -10
  86. package/include/hwy/detect_targets.h +146 -37
  87. package/include/hwy/foreach_target.h +36 -1
  88. package/include/hwy/highway.h +222 -50
  89. package/include/hwy/ops/arm_neon-inl.h +2055 -894
  90. package/include/hwy/ops/arm_sve-inl.h +1476 -348
  91. package/include/hwy/ops/emu128-inl.h +711 -623
  92. package/include/hwy/ops/generic_ops-inl.h +4431 -2157
  93. package/include/hwy/ops/inside-inl.h +691 -0
  94. package/include/hwy/ops/ppc_vsx-inl.h +2186 -673
  95. package/include/hwy/ops/rvv-inl.h +1556 -536
  96. package/include/hwy/ops/scalar-inl.h +353 -233
  97. package/include/hwy/ops/set_macros-inl.h +171 -23
  98. package/include/hwy/ops/shared-inl.h +198 -56
  99. package/include/hwy/ops/wasm_128-inl.h +283 -244
  100. package/include/hwy/ops/x86_128-inl.h +3673 -1357
  101. package/include/hwy/ops/x86_256-inl.h +1737 -663
  102. package/include/hwy/ops/x86_512-inl.h +1697 -500
  103. package/include/hwy/per_target.h +4 -0
  104. package/include/hwy/profiler.h +648 -0
  105. package/include/hwy/robust_statistics.h +2 -2
  106. package/include/hwy/targets.h +40 -32
  107. package/include/hwy/timer-inl.h +3 -3
  108. package/include/hwy/timer.h +16 -1
  109. package/include/libheif/heif.h +170 -15
  110. package/include/libheif/heif_items.h +237 -0
  111. package/include/libheif/heif_properties.h +38 -2
  112. package/include/libheif/heif_regions.h +1 -1
  113. package/include/libheif/heif_version.h +2 -2
  114. package/include/libpng16/png.h +32 -29
  115. package/include/libpng16/pngconf.h +2 -2
  116. package/include/libpng16/pnglibconf.h +8 -3
  117. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +1 -1
  118. package/include/librsvg-2.0/librsvg/rsvg-features.h +3 -4
  119. package/include/librsvg-2.0/librsvg/rsvg-pixbuf.h +235 -0
  120. package/include/librsvg-2.0/librsvg/rsvg-version.h +3 -3
  121. package/include/librsvg-2.0/librsvg/rsvg.h +55 -176
  122. package/include/libxml2/libxml/HTMLparser.h +12 -19
  123. package/include/libxml2/libxml/c14n.h +1 -12
  124. package/include/libxml2/libxml/debugXML.h +1 -1
  125. package/include/libxml2/libxml/encoding.h +9 -0
  126. package/include/libxml2/libxml/entities.h +12 -1
  127. package/include/libxml2/libxml/hash.h +19 -0
  128. package/include/libxml2/libxml/list.h +2 -2
  129. package/include/libxml2/libxml/nanohttp.h +17 -0
  130. package/include/libxml2/libxml/parser.h +73 -58
  131. package/include/libxml2/libxml/parserInternals.h +9 -1
  132. package/include/libxml2/libxml/pattern.h +6 -0
  133. package/include/libxml2/libxml/tree.h +32 -12
  134. package/include/libxml2/libxml/uri.h +11 -0
  135. package/include/libxml2/libxml/valid.h +29 -2
  136. package/include/libxml2/libxml/xinclude.h +7 -0
  137. package/include/libxml2/libxml/xmlIO.h +21 -5
  138. package/include/libxml2/libxml/xmlerror.h +14 -0
  139. package/include/libxml2/libxml/xmlexports.h +111 -15
  140. package/include/libxml2/libxml/xmlmemory.h +8 -45
  141. package/include/libxml2/libxml/xmlreader.h +2 -0
  142. package/include/libxml2/libxml/xmlsave.h +5 -0
  143. package/include/libxml2/libxml/xmlunicode.h +165 -1
  144. package/include/libxml2/libxml/xmlversion.h +15 -179
  145. package/include/libxml2/libxml/xmlwriter.h +1 -0
  146. package/include/libxml2/libxml/xpath.h +4 -0
  147. package/include/pango-1.0/pango/pango-features.h +2 -2
  148. package/include/pango-1.0/pango/pango-fontmap.h +7 -0
  149. package/include/pango-1.0/pango/pango-item.h +4 -2
  150. package/include/pango-1.0/pango/pango-version-macros.h +25 -0
  151. package/include/pango-1.0/pango/pangofc-font.h +2 -1
  152. package/include/pixman-1/pixman-version.h +2 -2
  153. package/include/png.h +32 -29
  154. package/include/pngconf.h +2 -2
  155. package/include/pnglibconf.h +8 -3
  156. package/include/vips/connection.h +9 -3
  157. package/include/vips/util.h +1 -11
  158. package/include/vips/version.h +4 -4
  159. package/include/webp/decode.h +58 -56
  160. package/include/webp/demux.h +25 -21
  161. package/include/webp/encode.h +44 -39
  162. package/include/webp/mux.h +76 -15
  163. package/include/webp/mux_types.h +2 -1
  164. package/include/webp/sharpyuv/sharpyuv.h +77 -8
  165. package/include/webp/types.h +29 -8
  166. package/include/zconf.h +1 -1
  167. package/include/zlib.h +12 -12
  168. package/package.json +1 -1
  169. package/versions.json +18 -19
@@ -301,15 +301,101 @@ struct _GSourceCallbackFuncs
301
301
  */
302
302
  typedef void (*GSourceDummyMarshal) (void);
303
303
 
304
+ /**
305
+ * GSourceFuncsPrepareFunc:
306
+ * @source: The #GSource
307
+ * @timeout_: (out) (optional): the maximum timeout (in milliseconds) which should be passed to the poll call
308
+ *
309
+ * Checks the source for readiness.
310
+ *
311
+ * Called before all the file descriptors are polled. If the
312
+ * source can determine that it is ready here (without waiting for the
313
+ * results of the poll call) it should return %TRUE. It can also return
314
+ * a @timeout_ value which should be the maximum timeout (in milliseconds)
315
+ * which should be passed to the poll call. The actual timeout used will
316
+ * be `-1` if all sources returned `-1`, or it will be the minimum of all
317
+ * the @timeout_ values returned which were greater than or equal to `0`.
318
+ * If the prepare function returns a timeout and the source also has a
319
+ * ready time set, then the lower of the two will be used.
320
+ *
321
+ * Since 2.36 this may be `NULL`, in which case the effect is as if the
322
+ * function always returns `FALSE` with a timeout of `-1`.
323
+ *
324
+ * Returns: %TRUE if the source is ready, %FALSE otherwise
325
+ *
326
+ * Since: 2.82
327
+ */
328
+ typedef gboolean (*GSourceFuncsPrepareFunc) (GSource *source,
329
+ gint *timeout_);
330
+
331
+ /**
332
+ * GSourceFuncsCheckFunc:
333
+ * @source: The #GSource
334
+ *
335
+ * Checks if the source is ready to be dispatched.
336
+ *
337
+ * Called after all the file descriptors are polled. The source
338
+ * should return %TRUE if it is ready to be dispatched. Note that some
339
+ * time may have passed since the previous prepare function was called,
340
+ * so the source should be checked again here.
341
+ *
342
+ * Since 2.36 this may be `NULL`, in which case the effect is
343
+ * as if the function always returns `FALSE`.
344
+ *
345
+ * Returns: %TRUE if ready to be dispatched, %FALSE otherwise
346
+ *
347
+ * Since: 2.82
348
+ */
349
+ typedef gboolean (*GSourceFuncsCheckFunc) (GSource *source);
350
+
351
+ /**
352
+ * GSourceFuncsDispatchFunc:
353
+ * @source: The #GSource
354
+ * @callback: (nullable): The #GSourceFunc to call
355
+ * @user_data: (nullable): data to pass to @callback
356
+ *
357
+ * Dispatches the source callback.
358
+ *
359
+ * Called to dispatch the event source, after it has returned
360
+ * `TRUE` in either its prepare or its check function, or if a ready time
361
+ * has been reached. The dispatch function receives a callback function and
362
+ * user data. The callback function may be `NULL` if the source was never
363
+ * connected to a callback using [method@GLib.Source.set_callback]. The dispatch
364
+ * function should call the callback function with @user_data and whatever
365
+ * additional parameters are needed for this type of event source. The
366
+ * return value of the dispatch function should be [const@GLib.SOURCE_REMOVE]
367
+ * if the source should be removed or [const@GLib.SOURCE_CONTINUE] to keep it.
368
+ *
369
+ * Returns: [const@GLib.SOURCE_REMOVE] if the source should be removed,
370
+ * [const@GLib.SOURCE_CONTINUE] otherwise.
371
+ *
372
+ * Since: 2.82
373
+ */
374
+ typedef gboolean (*GSourceFuncsDispatchFunc) (GSource *source,
375
+ GSourceFunc callback,
376
+ gpointer user_data);
377
+
378
+ /**
379
+ * GSourceFuncsFinalizeFunc:
380
+ * @source: The #GSource
381
+ *
382
+ * Finalizes the source.
383
+ *
384
+ * Called when the source is finalized. At this point, the source
385
+ * will have been destroyed, had its callback cleared, and have been removed
386
+ * from its [type@GLib.MainContext], but it will still have its final reference
387
+ * count, so methods can be called on it from within this function.
388
+ *
389
+ * Since: 2.82
390
+ */
391
+ typedef void (*GSourceFuncsFinalizeFunc) (GSource *source);
392
+
304
393
  struct _GSourceFuncs
305
394
  {
306
- gboolean (*prepare) (GSource *source,
307
- gint *timeout_);/* Can be NULL */
308
- gboolean (*check) (GSource *source);/* Can be NULL */
309
- gboolean (*dispatch) (GSource *source,
310
- GSourceFunc callback,
311
- gpointer user_data);
312
- void (*finalize) (GSource *source); /* Can be NULL */
395
+ GSourceFuncsPrepareFunc prepare; /* Can be NULL */
396
+ GSourceFuncsCheckFunc check; /* Can be NULL */
397
+ GSourceFuncsDispatchFunc dispatch;
398
+ GSourceFuncsFinalizeFunc finalize; /* Can be NULL */
313
399
 
314
400
  /*< private >*/
315
401
  /* For use by g_source_set_closure */
@@ -229,6 +229,11 @@ gchar *g_log_writer_format_fields (GLogLevelFlags log_level,
229
229
  gsize n_fields,
230
230
  gboolean use_color);
231
231
 
232
+ GLIB_AVAILABLE_IN_2_80
233
+ GLogWriterOutput g_log_writer_syslog (GLogLevelFlags log_level,
234
+ const GLogField *fields,
235
+ gsize n_fields,
236
+ gpointer user_data);
232
237
  GLIB_AVAILABLE_IN_2_50
233
238
  GLogWriterOutput g_log_writer_journald (GLogLevelFlags log_level,
234
239
  const GLogField *fields,
@@ -547,6 +552,9 @@ GPrintFunc g_set_printerr_handler (GPrintFunc func);
547
552
  *
548
553
  * Logs a warning if the expression is not true.
549
554
  *
555
+ * Unlike g_return_if_fail(), the expression is always evaluated, even if
556
+ * checks and assertions are disabled.
557
+ *
550
558
  * Since: 2.16
551
559
  */
552
560
  #define g_warn_if_fail(expr) \
@@ -35,13 +35,20 @@
35
35
 
36
36
  G_BEGIN_DECLS
37
37
 
38
- GLIB_AVAILABLE_IN_ALL
38
+ GLIB_DEPRECATED_IN_2_82_FOR(g_sort_array)
39
39
  void g_qsort_with_data (gconstpointer pbase,
40
40
  gint total_elems,
41
41
  gsize size,
42
42
  GCompareDataFunc compare_func,
43
43
  gpointer user_data);
44
44
 
45
+ GLIB_AVAILABLE_IN_2_82
46
+ void g_sort_array (const void *array,
47
+ size_t n_elements,
48
+ size_t element_size,
49
+ GCompareDataFunc compare_func,
50
+ void *user_data);
51
+
45
52
  G_END_DECLS
46
53
 
47
54
  #endif /* __G_QSORT_H__ */
@@ -107,10 +107,12 @@ gint64 g_slice_get_config (GSliceConfig ckey);
107
107
  GLIB_DEPRECATED_IN_2_34
108
108
  gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);
109
109
 
110
+ #ifndef __GI_SCANNER__
110
111
  #ifdef G_ENABLE_DEBUG
111
112
  GLIB_AVAILABLE_IN_ALL
112
113
  void g_slice_debug_tree_statistics (void);
113
114
  #endif
115
+ #endif
114
116
 
115
117
  G_END_DECLS
116
118
 
@@ -327,21 +327,9 @@ g_strdup_inline (const char *str)
327
327
  #endif /* !defined (__GTK_DOC_IGNORE__) */
328
328
  #endif /* G_GNUC_CHECK_VERSION (2, 0) */
329
329
 
330
- /* Make a copy of a string interpreting C string -style escape
331
- * sequences. Inverse of g_strescape. The recognized sequences are \b
332
- * \f \n \r \t \\ \" and the octal format.
333
- */
334
330
  GLIB_AVAILABLE_IN_ALL
335
331
  gchar* g_strcompress (const gchar *source) G_GNUC_MALLOC;
336
332
 
337
- /* Copy a string escaping nonprintable characters like in C strings.
338
- * Inverse of g_strcompress. The exceptions parameter, if non-NULL, points
339
- * to a string containing characters that are not to be escaped.
340
- *
341
- * Deprecated API: gchar* g_strescape (const gchar *source);
342
- * Luckily this function wasn't used much, using NULL as second parameter
343
- * provides mostly identical semantics.
344
- */
345
333
  GLIB_AVAILABLE_IN_ALL
346
334
  gchar* g_strescape (const gchar *source,
347
335
  const gchar *exceptions) G_GNUC_MALLOC;
@@ -412,8 +400,8 @@ gboolean g_strv_equal (const gchar * const *strv1,
412
400
 
413
401
  /**
414
402
  * GNumberParserError:
415
- * @G_NUMBER_PARSER_ERROR_INVALID: String was not a valid number.
416
- * @G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: String was a number, but out of bounds.
403
+ * @G_NUMBER_PARSER_ERROR_INVALID: string was not a valid number
404
+ * @G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: string was a number, but out of bounds
417
405
  *
418
406
  * Error codes returned by functions converting a string to a number.
419
407
  *
@@ -456,28 +444,34 @@ gboolean g_ascii_string_to_unsigned (const gchar *str,
456
444
 
457
445
  /**
458
446
  * g_set_str: (skip)
459
- * @str_pointer: (inout) (not optional) (nullable): a pointer to either a string or %NULL
460
- * @new_str: (nullable): a string to assign to @str_pointer, or %NULL
447
+ * @str_pointer: (inout) (not optional) (nullable): a pointer to either
448
+ * a string or `NULL`
449
+ * @new_str: (nullable): a string to assign to @str_pointer
450
+ *
451
+ * Updates a pointer to a string to a copy of @new_str and returns whether the
452
+ * string was changed.
461
453
  *
462
- * Updates a pointer to a string to a copy of @new_str. The previous string
463
- * pointed to by @str_pointer will be freed with g_free().
454
+ * If @new_str matches the previous string, this function is a no-op. If
455
+ * @new_str is different, a copy of it will be assigned to @str_pointer and
456
+ * the previous string pointed to by @str_pointer will be freed with
457
+ * [func@GLib.free].
464
458
  *
465
- * @str_pointer must not be %NULL, but can point to a %NULL value.
459
+ * @str_pointer must not be `NULL`, but can point to a `NULL` value.
466
460
  *
467
461
  * One convenient usage of this function is in implementing property settings:
468
- * |[
469
- * void
470
- * foo_set_bar (Foo *foo,
471
- * const char *new_bar)
472
- * {
473
- * g_return_if_fail (IS_FOO (foo));
462
+ * ```C
463
+ * void
464
+ * foo_set_bar (Foo *foo,
465
+ * const char *new_bar)
466
+ * {
467
+ * g_return_if_fail (IS_FOO (foo));
474
468
  *
475
- * if (g_set_str (&foo->bar, new_bar))
476
- * g_object_notify (foo, "bar");
477
- * }
478
- * ]|
469
+ * if (g_set_str (&foo->bar, new_bar))
470
+ * g_object_notify (foo, "bar");
471
+ * }
472
+ * ```
479
473
  *
480
- * Returns: %TRUE if the value of @str_pointer changed, %FALSE otherwise
474
+ * Returns: true if the value of @str_pointer changed, false otherwise
481
475
  *
482
476
  * Since: 2.76
483
477
  */
@@ -38,6 +38,9 @@ GStrvBuilder *g_strv_builder_new (void);
38
38
  GLIB_AVAILABLE_IN_2_68
39
39
  void g_strv_builder_unref (GStrvBuilder *builder);
40
40
 
41
+ GLIB_AVAILABLE_IN_2_82
42
+ GStrv g_strv_builder_unref_to_strv (GStrvBuilder *builder);
43
+
41
44
  GLIB_AVAILABLE_IN_2_68
42
45
  GStrvBuilder *g_strv_builder_ref (GStrvBuilder *builder);
43
46
 
@@ -139,6 +139,10 @@ struct _GOnce
139
139
  # define G_TRYLOCK(name) g_mutex_trylock (&G_LOCK_NAME (name))
140
140
  #endif /* !G_DEBUG_LOCKS */
141
141
 
142
+ #ifdef g_autoptr
143
+ #define G_AUTO_LOCK(name) G_MUTEX_AUTO_LOCK (&G_LOCK_NAME (name), g__##name##_locker)
144
+ #endif /* g_autoptr */
145
+
142
146
  GLIB_AVAILABLE_IN_2_32
143
147
  GThread * g_thread_ref (GThread *thread);
144
148
  GLIB_AVAILABLE_IN_2_32
@@ -339,7 +343,7 @@ typedef void GMutexLocker;
339
343
  *
340
344
  * // Code with mutex locked here
341
345
  *
342
- * if (cond)
346
+ * if (condition)
343
347
  * // No need to unlock
344
348
  * return;
345
349
  *
@@ -350,6 +354,10 @@ typedef void GMutexLocker;
350
354
  * }
351
355
  * ]|
352
356
  *
357
+ * Note that it is common for the declared variable to not be used in the scope,
358
+ * which causes some compilers to warn. That can be avoided by using
359
+ * `G_GNUC_UNUSED` or, since 2.80, [func@GLib.MUTEX_AUTO_LOCK].
360
+ *
353
361
  * Returns: a #GMutexLocker
354
362
  * Since: 2.44
355
363
  */
@@ -378,6 +386,49 @@ g_mutex_locker_free (GMutexLocker *locker)
378
386
  g_mutex_unlock ((GMutex *) locker);
379
387
  }
380
388
 
389
+ /**
390
+ * G_MUTEX_AUTO_LOCK:
391
+ * @mutex: a [type@GLib.Mutex]
392
+ * @var: a variable name to be declared
393
+ *
394
+ * Declare a [type@GLib.MutexLocker] variable with `g_autoptr()` and lock the
395
+ * mutex. The mutex will be unlocked automatically when leaving the scope. The
396
+ * variable is declared with `G_GNUC_UNUSED` to avoid compiler warning if it is
397
+ * not used in the scope.
398
+ *
399
+ * This feature is only supported on GCC and clang. This macro is not defined on
400
+ * other compilers and should not be used in programs that are intended to be
401
+ * portable to those compilers.
402
+ *
403
+ * Note that this should be used in a place where it is allowed to declare a
404
+ * variable, which could be before any statement in the case
405
+ * `-Wdeclaration-after-statement` is used, or C standard prior to C99.
406
+ *
407
+ * ```c
408
+ * {
409
+ * G_MUTEX_AUTO_LOCK (&obj->mutex, locker);
410
+ *
411
+ * obj->stuff_with_lock ();
412
+ * if (condition)
413
+ * {
414
+ * // No need to unlock
415
+ * return;
416
+ * }
417
+ *
418
+ * // Unlock before end of scope
419
+ * g_clear_pointer (&locker, g_mutex_locker_free);
420
+ * obj->stuff_without_lock ();
421
+ * }
422
+ * ```
423
+ *
424
+ * Since: 2.80.0
425
+ */
426
+ #ifdef g_autoptr
427
+ #define G_MUTEX_AUTO_LOCK(mutex, var) \
428
+ GLIB_AVAILABLE_MACRO_IN_2_80 g_autoptr (GMutexLocker) \
429
+ G_GNUC_UNUSED var = g_mutex_locker_new (mutex)
430
+ #endif /* g_autoptr */
431
+
381
432
  /**
382
433
  * GRecMutexLocker:
383
434
  *
@@ -414,7 +465,7 @@ typedef void GRecMutexLocker;
414
465
  *
415
466
  * // Code with rec_mutex locked here
416
467
  *
417
- * if (cond)
468
+ * if (condition)
418
469
  * // No need to unlock
419
470
  * return;
420
471
  *
@@ -425,6 +476,10 @@ typedef void GRecMutexLocker;
425
476
  * }
426
477
  * ]|
427
478
  *
479
+ * Note that it is common for the declared variable to not be used in the scope,
480
+ * which causes some compilers to warn. That can be avoided by using
481
+ * `G_GNUC_UNUSED` or, since 2.80, [func@GLib.REC_MUTEX_AUTO_LOCK].
482
+ *
428
483
  * Returns: a #GRecMutexLocker
429
484
  * Since: 2.60
430
485
  */
@@ -457,6 +512,49 @@ g_rec_mutex_locker_free (GRecMutexLocker *locker)
457
512
  }
458
513
  G_GNUC_END_IGNORE_DEPRECATIONS
459
514
 
515
+ /**
516
+ * G_REC_MUTEX_AUTO_LOCK:
517
+ * @mutex: a [type@GLib.RecMutex]
518
+ * @var: a variable name to be declared
519
+ *
520
+ * Declare a [type@GLib.RecMutexLocker] variable with `g_autoptr()` and lock the
521
+ * mutex. The mutex will be unlocked automatically when leaving the scope. The
522
+ * variable is declared with `G_GNUC_UNUSED` to avoid compiler warning if it is
523
+ * not used in the scope.
524
+ *
525
+ * This feature is only supported on GCC and clang. This macro is not defined on
526
+ * other compilers and should not be used in programs that are intended to be
527
+ * portable to those compilers.
528
+ *
529
+ * Note that this should be used in a place where it is allowed to declare a
530
+ * variable, which could be before any statement in the case
531
+ * `-Wdeclaration-after-statement` is used, or C standard prior to C99.
532
+ *
533
+ * ```c
534
+ * {
535
+ * G_REC_MUTEX_AUTO_LOCK (&obj->rec_mutex, locker);
536
+ *
537
+ * obj->stuff_with_lock ();
538
+ * if (condition)
539
+ * {
540
+ * // No need to unlock
541
+ * return;
542
+ * }
543
+ *
544
+ * // Unlock before end of scope
545
+ * g_clear_pointer (&locker, g_rec_mutex_locker_free);
546
+ * obj->stuff_without_lock ();
547
+ * }
548
+ * ```
549
+ *
550
+ * Since: 2.80.0
551
+ */
552
+ #ifdef g_autoptr
553
+ #define G_REC_MUTEX_AUTO_LOCK(mutex, var) \
554
+ GLIB_AVAILABLE_MACRO_IN_2_80 g_autoptr (GRecMutexLocker) \
555
+ G_GNUC_UNUSED var = g_rec_mutex_locker_new (mutex)
556
+ #endif /* g_autoptr */
557
+
460
558
  /**
461
559
  * GRWLockWriterLocker:
462
560
  *
@@ -520,7 +618,7 @@ typedef void GRWLockWriterLocker;
520
618
  * if (self->array == NULL)
521
619
  * self->array = g_ptr_array_new ();
522
620
  *
523
- * if (cond)
621
+ * if (condition)
524
622
  * // No need to unlock
525
623
  * return;
526
624
  *
@@ -535,6 +633,10 @@ typedef void GRWLockWriterLocker;
535
633
  * }
536
634
  * ]|
537
635
  *
636
+ * Note that it is common for the declared variable to not be used in the scope,
637
+ * which causes some compilers to warn. That can be avoided by using
638
+ * `G_GNUC_UNUSED` or, since 2.80, [func@GLib.RW_LOCK_WRITER_AUTO_LOCK].
639
+ *
538
640
  * Returns: a #GRWLockWriterLocker
539
641
  * Since: 2.62
540
642
  */
@@ -568,6 +670,49 @@ g_rw_lock_writer_locker_free (GRWLockWriterLocker *locker)
568
670
  }
569
671
  G_GNUC_END_IGNORE_DEPRECATIONS
570
672
 
673
+ /**
674
+ * G_RW_LOCK_WRITER_AUTO_LOCK:
675
+ * @mutex: a [type@GLib.RWLock]
676
+ * @var: a variable name to be declared
677
+ *
678
+ * Declare a [type@GLib.RWLockWriterLocker] variable with `g_autoptr()` and lock
679
+ * for writing. The mutex will be unlocked automatically when leaving the scope.
680
+ * The variable is declared with `G_GNUC_UNUSED` to avoid compiler warning if it
681
+ * is not used in the scope.
682
+ *
683
+ * This feature is only supported on GCC and clang. This macro is not defined on
684
+ * other compilers and should not be used in programs that are intended to be
685
+ * portable to those compilers.
686
+ *
687
+ * Note that this should be used in a place where it is allowed to declare a
688
+ * variable, which could be before any statement in the case
689
+ * `-Wdeclaration-after-statement` is used, or C standard prior to C99.
690
+ *
691
+ * ```c
692
+ * {
693
+ * G_RW_LOCK_WRITER_AUTO_LOCK (&obj->rw_lock, locker);
694
+ *
695
+ * obj->stuff_with_lock ();
696
+ * if (condition)
697
+ * {
698
+ * // No need to unlock
699
+ * return;
700
+ * }
701
+ *
702
+ * // Unlock before end of scope
703
+ * g_clear_pointer (&locker, g_rw_lock_writer_locker_free);
704
+ * obj->stuff_without_lock ();
705
+ * }
706
+ * ```
707
+ *
708
+ * Since: 2.80.0
709
+ */
710
+ #ifdef g_autoptr
711
+ #define G_RW_LOCK_WRITER_AUTO_LOCK(mutex, var) \
712
+ GLIB_AVAILABLE_MACRO_IN_2_80 g_autoptr (GRWLockWriterLocker) \
713
+ G_GNUC_UNUSED var = g_rw_lock_writer_locker_new (mutex)
714
+ #endif /* g_autoptr */
715
+
571
716
  /**
572
717
  * GRWLockReaderLocker:
573
718
  *
@@ -623,6 +768,49 @@ g_rw_lock_reader_locker_free (GRWLockReaderLocker *locker)
623
768
  }
624
769
  G_GNUC_END_IGNORE_DEPRECATIONS
625
770
 
771
+ /**
772
+ * G_RW_LOCK_READER_AUTO_LOCK:
773
+ * @mutex: a [type@GLib.RWLock]
774
+ * @var: a variable name to be declared
775
+ *
776
+ * Declare a [type@GLib.RWLockReaderLocker] variable with `g_autoptr()` and lock
777
+ * for reading. The mutex will be unlocked automatically when leaving the scope.
778
+ * The variable is declared with `G_GNUC_UNUSED` to avoid compiler warning if it
779
+ * is not used in the scope.
780
+ *
781
+ * This feature is only supported on GCC and clang. This macro is not defined on
782
+ * other compilers and should not be used in programs that are intended to be
783
+ * portable to those compilers.
784
+ *
785
+ * Note that this should be used in a place where it is allowed to declare a
786
+ * variable, which could be before any statement in the case
787
+ * `-Wdeclaration-after-statement` is used, or C standard prior to C99.
788
+ *
789
+ * ```c
790
+ * {
791
+ * G_RW_LOCK_READER_AUTO_LOCK (&obj->rw_lock, locker);
792
+ *
793
+ * obj->stuff_with_lock ();
794
+ * if (condition)
795
+ * {
796
+ * // No need to unlock
797
+ * return;
798
+ * }
799
+ *
800
+ * // Unlock before end of scope
801
+ * g_clear_pointer (&locker, g_rw_lock_reader_locker_free);
802
+ * obj->stuff_without_lock ();
803
+ * }
804
+ * ```
805
+ *
806
+ * Since: 2.80.0
807
+ */
808
+ #ifdef g_autoptr
809
+ #define G_RW_LOCK_READER_AUTO_LOCK(mutex, var) \
810
+ GLIB_AVAILABLE_MACRO_IN_2_80 g_autoptr (GRWLockReaderLocker) \
811
+ G_GNUC_UNUSED var = g_rw_lock_reader_locker_new (mutex)
812
+ #endif /* g_autoptr */
813
+
626
814
  G_END_DECLS
627
815
 
628
816
  #endif /* __G_THREAD_H__ */
@@ -806,7 +806,7 @@ GLIB_VAR const gchar * const g_utf8_skip;
806
806
  * Before using this macro, use g_utf8_validate() to validate strings
807
807
  * that may contain invalid UTF-8.
808
808
  */
809
- #define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(const guchar *)(p)])
809
+ #define g_utf8_next_char(p) ((p) + g_utf8_skip[*(const guchar *)(p)])
810
810
 
811
811
  GLIB_AVAILABLE_IN_ALL
812
812
  gunichar g_utf8_get_char (const gchar *p) G_GNUC_PURE;
@@ -395,6 +395,15 @@
395
395
  * Since: 2.80
396
396
  */
397
397
  #define GLIB_VERSION_2_80 (G_ENCODE_VERSION (2, 80))
398
+ /**
399
+ * GLIB_VERSION_2_82:
400
+ *
401
+ * A macro that evaluates to the 2.82 version of GLib, in a format
402
+ * that can be used by the C pre-processor.
403
+ *
404
+ * Since: 2.82
405
+ */
406
+ #define GLIB_VERSION_2_82 (G_ENCODE_VERSION (2, 82))
398
407
 
399
408
  /**
400
409
  * GLIB_VERSION_CUR_STABLE:
@@ -173,7 +173,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
173
173
  /**
174
174
  * g_unix_pipe_open:
175
175
  * @self: A pair of file descriptors
176
- * @flags: Flags to pass to g_unix_open_pipe(), typically `FD_CLOEXEC`
176
+ * @flags: Flags to pass to g_unix_open_pipe(), typically `O_CLOEXEC`
177
177
  * @error: Used to report an error on failure
178
178
  *
179
179
  * Open a pipe. This is the same as g_unix_open_pipe(), but uses the
@@ -326,6 +326,12 @@ g_unix_pipe_clear (GUnixPipe *self)
326
326
 
327
327
  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GUnixPipe, g_unix_pipe_clear)
328
328
 
329
+ GLIB_AVAILABLE_IN_2_80
330
+ int g_closefrom (int lowfd);
331
+
332
+ GLIB_AVAILABLE_IN_2_80
333
+ int g_fdwalk_set_cloexec (int lowfd);
334
+
329
335
  G_GNUC_END_IGNORE_DEPRECATIONS
330
336
 
331
337
  G_END_DECLS
@@ -984,3 +984,37 @@
984
984
  #define GMODULE_AVAILABLE_ENUMERATOR_IN_2_80
985
985
  #define GMODULE_AVAILABLE_TYPE_IN_2_80
986
986
  #endif
987
+
988
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_82
989
+ #define GMODULE_DEPRECATED_IN_2_82 GMODULE_DEPRECATED
990
+ #define GMODULE_DEPRECATED_IN_2_82_FOR(f) GMODULE_DEPRECATED_FOR (f)
991
+ #define GMODULE_DEPRECATED_MACRO_IN_2_82 GLIB_DEPRECATED_MACRO
992
+ #define GMODULE_DEPRECATED_MACRO_IN_2_82_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
993
+ #define GMODULE_DEPRECATED_ENUMERATOR_IN_2_82 GLIB_DEPRECATED_ENUMERATOR
994
+ #define GMODULE_DEPRECATED_ENUMERATOR_IN_2_82_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
995
+ #define GMODULE_DEPRECATED_TYPE_IN_2_82 GLIB_DEPRECATED_TYPE
996
+ #define GMODULE_DEPRECATED_TYPE_IN_2_82_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
997
+ #else
998
+ #define GMODULE_DEPRECATED_IN_2_82 _GMODULE_EXTERN
999
+ #define GMODULE_DEPRECATED_IN_2_82_FOR(f) _GMODULE_EXTERN
1000
+ #define GMODULE_DEPRECATED_MACRO_IN_2_82
1001
+ #define GMODULE_DEPRECATED_MACRO_IN_2_82_FOR(f)
1002
+ #define GMODULE_DEPRECATED_ENUMERATOR_IN_2_82
1003
+ #define GMODULE_DEPRECATED_ENUMERATOR_IN_2_82_FOR(f)
1004
+ #define GMODULE_DEPRECATED_TYPE_IN_2_82
1005
+ #define GMODULE_DEPRECATED_TYPE_IN_2_82_FOR(f)
1006
+ #endif
1007
+
1008
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_82
1009
+ #define GMODULE_AVAILABLE_IN_2_82 GMODULE_UNAVAILABLE (2, 82)
1010
+ #define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_82 GLIB_UNAVAILABLE_STATIC_INLINE (2, 82)
1011
+ #define GMODULE_AVAILABLE_MACRO_IN_2_82 GLIB_UNAVAILABLE_MACRO (2, 82)
1012
+ #define GMODULE_AVAILABLE_ENUMERATOR_IN_2_82 GLIB_UNAVAILABLE_ENUMERATOR (2, 82)
1013
+ #define GMODULE_AVAILABLE_TYPE_IN_2_82 GLIB_UNAVAILABLE_TYPE (2, 82)
1014
+ #else
1015
+ #define GMODULE_AVAILABLE_IN_2_82 _GMODULE_EXTERN
1016
+ #define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_82
1017
+ #define GMODULE_AVAILABLE_MACRO_IN_2_82
1018
+ #define GMODULE_AVAILABLE_ENUMERATOR_IN_2_82
1019
+ #define GMODULE_AVAILABLE_TYPE_IN_2_82
1020
+ #endif
@@ -320,14 +320,14 @@ void g_flags_complete_type_info (GType g_flags_type,
320
320
  #define G_DEFINE_ENUM_TYPE(TypeName, type_name, ...) \
321
321
  GType \
322
322
  type_name ## _get_type (void) { \
323
- static gsize g_define_type__static = 0; \
324
- if (g_once_init_enter (&g_define_type__static)) { \
323
+ static _g_type_once_init_type g_define_type__static = 0; \
324
+ if (_g_type_once_init_enter (&g_define_type__static)) { \
325
325
  static const GEnumValue enum_values[] = { \
326
326
  __VA_ARGS__ , \
327
327
  { 0, NULL, NULL }, \
328
328
  }; \
329
329
  GType g_define_type = g_enum_register_static (g_intern_static_string (#TypeName), enum_values); \
330
- g_once_init_leave (&g_define_type__static, g_define_type); \
330
+ _g_type_once_init_leave (&g_define_type__static, g_define_type); \
331
331
  } \
332
332
  return g_define_type__static; \
333
333
  } \
@@ -363,14 +363,14 @@ type_name ## _get_type (void) { \
363
363
  #define G_DEFINE_FLAGS_TYPE(TypeName, type_name, ...) \
364
364
  GType \
365
365
  type_name ## _get_type (void) { \
366
- static gsize g_define_type__static = 0; \
367
- if (g_once_init_enter (&g_define_type__static)) { \
366
+ static _g_type_once_init_type g_define_type__static = 0; \
367
+ if (_g_type_once_init_enter (&g_define_type__static)) { \
368
368
  static const GFlagsValue flags_values[] = { \
369
369
  __VA_ARGS__ , \
370
370
  { 0, NULL, NULL }, \
371
371
  }; \
372
372
  GType g_define_type = g_flags_register_static (g_intern_static_string (#TypeName), flags_values); \
373
- g_once_init_leave (&g_define_type__static, g_define_type); \
373
+ _g_type_once_init_leave (&g_define_type__static, g_define_type); \
374
374
  } \
375
375
  return g_define_type__static; \
376
376
  } \
@@ -345,6 +345,15 @@ typedef gsize GType;
345
345
  */
346
346
  #define G_TYPE_DIR (g_dir_get_type ())
347
347
 
348
+ /**
349
+ * G_TYPE_RAND:
350
+ *
351
+ * The #GType for a boxed type holding a #GRand.
352
+ *
353
+ * Since: 2.80
354
+ */
355
+ #define G_TYPE_RAND (g_rand_get_type ())
356
+
348
357
  /**
349
358
  * G_TYPE_STRV_BUILDER:
350
359
  *
@@ -423,6 +432,8 @@ GType g_hmac_get_type (void) G_GNUC_CONST;
423
432
  GOBJECT_AVAILABLE_IN_2_80
424
433
  GType g_dir_get_type (void) G_GNUC_CONST;
425
434
  GOBJECT_AVAILABLE_IN_2_80
435
+ GType g_rand_get_type (void) G_GNUC_CONST;
436
+ GOBJECT_AVAILABLE_IN_2_80
426
437
  GType g_strv_builder_get_type (void) G_GNUC_CONST;
427
438
 
428
439
  GOBJECT_DEPRECATED_FOR('G_TYPE_VARIANT')