diff --git a/include/dos_system.h b/include/dos_system.h index a0700a61..9026d07b 100644 --- a/include/dos_system.h +++ b/include/dos_system.h @@ -268,7 +268,8 @@ public: virtual bool isRemovable(void)=0; virtual Bits UnMount(void)=0; - char * GetInfo(void); + const char * GetInfo() const { return info; } + char curdir[DOS_PATHLENGTH]; char info[256]; /* Can be overridden for example in iso images */ diff --git a/src/dos/drives.cpp b/src/dos/drives.cpp index 5caaf519..7a93a17f 100644 --- a/src/dos/drives.cpp +++ b/src/dos/drives.cpp @@ -103,15 +103,11 @@ void Set_Label(char const * const input, char * const output, bool cdrom) { output[labelPos-1] = 0; } - - -DOS_Drive::DOS_Drive() { - curdir[0]=0; - info[0]=0; -} - -char * DOS_Drive::GetInfo(void) { - return info; +DOS_Drive::DOS_Drive() + : dirCache() +{ + curdir[0] = '\0'; + info[0] = '\0'; } // static members variables diff --git a/src/dos/drives.h b/src/dos/drives.h index 77544cb9..ba5b19bd 100644 --- a/src/dos/drives.h +++ b/src/dos/drives.h @@ -44,8 +44,8 @@ public: private: static struct DriveInfo { - std::vector disks; - Bit32u currentDisk; + std::vector disks = {}; + int currentDisk = 0; } driveInfos[DOS_DRIVES]; static int currentDrive;