haiku/headers/private/storage
Augustin Cavalier 8f03af00f8 Storage: Rework LongDirEntry to be a union.
Our dirent structure is "slim": it has a flexible-length array at the
end which must be allocated to whatever size the consumer wants. However,
we use [1] there and not [0] or [], which meant GCC thought it was not
a flexible-length array, and so it optimized various string accesses
that it assumed must be always false. Among these was BDirectory's
check for "." and "..", and so that resulted in infinite loops.

When changing our dirent structure to a proper FLA instead of [1],
GCC then throws errors on LongDirEntry as it has data "after" the
FLA; which is what we want, but there is no way to tell GCC that.
So now we use a union instead, which is the proper way to statically
allocate a FLA.

This is part of #17389, but the real fix requires changing our dirent
structure, which is coming in a separate commit.
2021-11-18 16:00:23 -05:00
..
mime Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
sniffer Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
AddOnMonitor.h
AddOnMonitorHandler.h Consolidate adding add-on directories 2013-10-17 01:28:31 -04:00
CopyEngine.h BCopyEngine: Add base class BEntryOperationEngineBase 2013-09-27 00:51:30 +02:00
DiskDevice.h
DiskDeviceList.h
DiskDevicePrivate.h
DiskDeviceRoster.h
DiskDeviceTypes.h
DiskDeviceVisitor.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
DiskScannerAddOn.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
DiskSystem.h * Added a handy BDiskSystem::SupportsWriting(). 2008-10-13 23:47:30 +00:00
DiskSystemAddOn.h
DiskSystemAddOnManager.h
DriverSettings.h Add C++ API for driver settings 2013-06-29 13:42:00 +02:00
Elf.h
ElfX.h
EntryOperationEngineBase.h BEntryOperationEngineBase::Entry: Add debug methods 2014-06-15 17:21:00 +02:00
Exception.h
FdIO.h Add private class BFdIO 2014-07-12 15:40:21 +02:00
FileDescriptorIO.h
FileIO.h
MergedDirectory.h
MimeTypes.h
MutablePartition.h
NodeMonitorHandler.h
NotOwningEntryRef.h <NotOwningEntryRef.h>: Denote BPrivate explicitly 2013-09-27 00:51:29 +02:00
OffsetFile.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
Partition.h storage kit: don't expose the dev_t in BPartition::Mount() 2014-09-15 16:28:41 +12:00
PartitioningInfo.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
PartitionParameterEditor.h Fixed design issues in BPartitionParameterEditor. 2013-02-02 01:13:19 +01:00
PathMonitor.h BPathMonitor: rewrite 2013-06-27 21:57:44 +02:00
Pef.h + Changed StorageKit namespace to BPrivate::Storage 2002-08-12 08:42:01 +00:00
query_private.h
QueryPredicate.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
RemoveEngine.h Add BRemoveEngine 2013-09-27 00:51:30 +02:00
ResourceFile.h Speed up BResource loading 2020-06-01 14:09:54 +00:00
ResourceItem.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
ResourcesContainer.h Mass updating of OpenBeOS text to Haiku 2021-11-07 10:00:35 +00:00
ResourcesDefs.h
storage_support.h Storage: Rework LongDirEntry to be a union. 2021-11-18 16:00:23 -05:00