Commit: 96387a2eff97709f519274aa510942c5eec6b493 Author: Ankit Meel Date: Sat Dec 11 19:07:36 2021 +0530 Branches: master https://developer.blender.org/rB96387a2eff97709f519274aa510942c5eec6b493
Cleanup: const, autoreleasepool, remove unneeded cast. Early return in some places also. De-duplicate getSystemDir and getUserDir also. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13211 =================================================================== M intern/ghost/intern/GHOST_SystemPathsCocoa.mm =================================================================== diff --git a/intern/ghost/intern/GHOST_SystemPathsCocoa.mm b/intern/ghost/intern/GHOST_SystemPathsCocoa.mm index 43ce0bb0533..4032c145ab4 100644 --- a/intern/ghost/intern/GHOST_SystemPathsCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemPathsCocoa.mm @@ -36,130 +36,101 @@ GHOST_SystemPathsCocoa::~GHOST_SystemPathsCocoa() #pragma mark Base directories retrieval -const char *GHOST_SystemPathsCocoa::getSystemDir(int, const char *versionstr) const +static const char *GetApplicationSupportDir(const char *versionstr, + const NSSearchPathDomainMask mask, + char *tempPath, + const std::size_t len_tempPath) { - static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - - paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSLocalDomainMask, YES); - - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; - } + @autoreleasepool { + const NSArray *const paths = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, mask, YES); - snprintf(tempPath, - sizeof(tempPath), - "%s/Blender/%s", - [basePath cStringUsingEncoding:NSASCIIStringEncoding], - versionstr); - - [pool drain]; + if ([paths count] == 0) { + return NULL; + } + const NSString *const basePath = [paths objectAtIndex:0]; + + snprintf(tempPath, + len_tempPath, + "%s/Blender/%s", + [basePath cStringUsingEncoding:NSASCIIStringEncoding], + versionstr); + } return tempPath; } -const char *GHOST_SystemPathsCocoa::getUserDir(int, const char *versionstr) const +const char *GHOST_SystemPathsCocoa::getSystemDir(int, const char *versionstr) const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - - paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSUserDomainMask, YES); - - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; - } - - snprintf(tempPath, - sizeof(tempPath), - "%s/Blender/%s", - [basePath cStringUsingEncoding:NSASCIIStringEncoding], - versionstr); + return GetApplicationSupportDir(versionstr, NSLocalDomainMask, tempPath, sizeof(tempPath)); +} - [pool drain]; - return tempPath; +const char *GHOST_SystemPathsCocoa::getUserDir(int, const char *versionstr) const +{ + static char tempPath[512] = ""; + return GetApplicationSupportDir(versionstr, NSUserDomainMask, tempPath, sizeof(tempPath)); } const char *GHOST_SystemPathsCocoa::getUserSpecialDir(GHOST_TUserSpecialDirTypes type) const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - NSSearchPathDirectory ns_directory; - - switch (type) { - case GHOST_kUserSpecialDirDesktop: - ns_directory = NSDesktopDirectory; - break; - case GHOST_kUserSpecialDirDocuments: - ns_directory = NSDocumentDirectory; - break; - case GHOST_kUserSpecialDirDownloads: - ns_directory = NSDownloadsDirectory; - break; - case GHOST_kUserSpecialDirMusic: - ns_directory = NSMusicDirectory; - break; - case GHOST_kUserSpecialDirPictures: - ns_directory = NSPicturesDirectory; - break; - case GHOST_kUserSpecialDirVideos: - ns_directory = NSMoviesDirectory; - break; - case GHOST_kUserSpecialDirCaches: - ns_directory = NSCachesDirectory; - break; - default: - GHOST_ASSERT( - false, - "GHOST_SystemPathsCocoa::getUserSpecialDir(): Invalid enum value for type parameter"); - [pool drain]; + @autoreleasepool { + NSSearchPathDirectory ns_directory; + + switch (type) { + case GHOST_kUserSpecialDirDesktop: + ns_directory = NSDesktopDirectory; + break; + case GHOST_kUserSpecialDirDocuments: + ns_directory = NSDocumentDirectory; + break; + case GHOST_kUserSpecialDirDownloads: + ns_directory = NSDownloadsDirectory; + break; + case GHOST_kUserSpecialDirMusic: + ns_directory = NSMusicDirectory; + break; + case GHOST_kUserSpecialDirPictures: + ns_directory = NSPicturesDirectory; + break; + case GHOST_kUserSpecialDirVideos: + ns_directory = NSMoviesDirectory; + break; + case GHOST_kUserSpecialDirCaches: + ns_directory = NSCachesDirectory; + break; + default: + GHOST_ASSERT( + false, + "GHOST_SystemPathsCocoa::getUserSpecialDir(): Invalid enum value for type parameter"); + return NULL; + } + + const NSArray *const paths = NSSearchPathForDirectoriesInDomains( + ns_directory, NSUserDomainMask, YES); + if ([paths count] == 0) { return NULL; - } - - paths = NSSearchPathForDirectoriesInDomains(ns_directory, NSUserDomainMask, YES); + } + const NSString *const basePath = [paths objectAtIndex:0]; - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; + strncpy(tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding], sizeof(tempPath)); } - - strncpy( - (char *)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding], sizeof(tempPath)); - - [pool drain]; return tempPath; } const char *GHOST_SystemPathsCocoa::getBinaryDir() const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - - basePath = [[NSBundle mainBundle] bundlePath]; - if (basePath == nil) { - [pool drain]; - return NULL; - } + @autoreleasepool { + const NSString *const basePath = [[NSBundle mainBundle] bundlePath]; - strcpy((char *)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]); + if (basePath == nil) { + return NULL; + } - [pool drain]; + strcpy(tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]); + } return tempPath; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs