[haiku-commits] Re: haiku: hrev51274 - src/system/kernel/fs

  • From: Rene Gollent <anevilyak@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 11 Jul 2017 11:30:09 -0400

Hi,

On Tue, Jul 11, 2017 at 11:25 AM,  <jerome.duval@xxxxxxxxx> wrote:

diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp
index ea47773..f3d562d 100644
--- a/src/system/kernel/fs/vfs.cpp
+++ b/src/system/kernel/fs/vfs.cpp
@@ -7275,7 +7275,9 @@ fs_mount(char* path, const char* device, const char* 
fsName, uint32 flags,
                FileDeviceDeleter() : id(-1) {}
                ~FileDeviceDeleter()
                {
-                       KDiskDeviceManager::Default()->DeleteFileDevice(id);
+                       KDiskDeviceManager* ddm = 
KDiskDeviceManager::Default();
+                       if (ddm != NULL)
+                               ddm->DeleteFileDevice(id);
                }

I don't quite follow why this is a gcc6 problem? Wouldn't the disk
device manager not existing when fs_mount() is called signify a bigger
underlying issue to be solved? AFAICT from the related code, the above
should only happen if we try to mount/unmount before the disk device
manager was ever created, or we ignored that creating it failed.

Regards,

Rene

Other related posts: