mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-01 23:13:40 +02:00
glocalfile: Disable faccessat()-based query_exists on Android
The bionic version of faccessat() returns EINVAL when flags are set.
See 35778253a5
This commit is contained in:
committed by
Philip Withnall
parent
c697f682a6
commit
06602315c3
@@ -1260,8 +1260,13 @@ g_local_file_query_info (GFile *file,
|
||||
}
|
||||
|
||||
/* FIXME: faccessat() is available on FreeBSD but appears to not work correctly
|
||||
* here. This needs diagnosing; https://gitlab.gnome.org/GNOME/glib/-/issues/3495 */
|
||||
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__)
|
||||
* here. This needs diagnosing; https://gitlab.gnome.org/GNOME/glib/-/issues/3495
|
||||
*
|
||||
* On Android (bionic as of 2015-02-24), faccess() returns EINVAL if any flags are set,
|
||||
* so we have to use the fallback path. See
|
||||
* https://cs.android.com/android/_/android/platform/bionic/+/35778253a5ed71e87a608ca590b63729d9f88567
|
||||
*/
|
||||
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__) && !defined(__ANDROID__)
|
||||
static gboolean
|
||||
g_local_file_query_exists (GFile *file,
|
||||
GCancellable *cancellable)
|
||||
@@ -3155,7 +3160,7 @@ g_local_file_file_iface_init (GFileIface *iface)
|
||||
iface->monitor_dir = g_local_file_monitor_dir;
|
||||
iface->monitor_file = g_local_file_monitor_file;
|
||||
iface->measure_disk_usage = g_local_file_measure_disk_usage;
|
||||
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__)
|
||||
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__) && !defined(__ANDROID__)
|
||||
iface->query_exists = g_local_file_query_exists;
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user