From 54d8f446f60599e597a38f8163e8814e6f5700b9 Mon Sep 17 00:00:00 2001 From: fedor Date: Tue, 23 May 2000 16:26:40 +0000 Subject: [PATCH] Update pathc check git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@6609 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 7 +++++++ Source/NSBundle.m | 17 ++++++++++------- Source/NSData.m | 8 ++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 24960d896..8ec28d118 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2000-05-23 Adam Fedor + + * Source/NSBundle.m (+initialize): Check if /proc/self/exe returns + a real link, otherwise get path from NSProcessInfo. + + * NSData: Correct #ifdef NEEDS_WORD_ALIGN to #if + 2000-05-22 Richard Frith-Macdonald * Source/GSeq.h: comparison with zero length range is always diff --git a/Source/NSBundle.m b/Source/NSBundle.m index ab376b076..d9d1d1e0c 100644 --- a/Source/NSBundle.m +++ b/Source/NSBundle.m @@ -279,17 +279,20 @@ _bundle_load_callback(Class theClass, Category *theCategory) mutableCopy]); [system appendString: @"/Libraries"]; + _executable_path = nil; #ifdef HAVE_PROC_FS_EXE_LINK _executable_path = [[NSFileManager defaultManager] pathContentOfSymbolicLinkAtPath: @"/proc/self/exe"]; -#else - _executable_path = - [[[NSProcessInfo processInfo] arguments] objectAtIndex: 0]; - output = objc_find_executable([_executable_path cString]); - NSAssert(output, NSInternalInconsistencyException); - _executable_path = [NSString stringWithCString: output]; - OBJC_FREE(output); #endif + if (_executable_path == nil || [_executable_path length] == 0) + { + _executable_path = + [[[NSProcessInfo processInfo] arguments] objectAtIndex: 0]; + output = objc_find_executable([_executable_path cString]); + NSAssert(output, NSInternalInconsistencyException); + _executable_path = [NSString stringWithCString: output]; + OBJC_FREE(output); + } RETAIN(_executable_path); _gnustep_bundle = RETAIN([NSBundle bundleWithPath: system]); diff --git a/Source/NSData.m b/Source/NSData.m index b538926dc..b002a9da7 100644 --- a/Source/NSData.m +++ b/Source/NSData.m @@ -2073,7 +2073,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos) format: @"Range: (%u, 1) Size: %d", *cursor, length]; } -#ifdef NEED_WORD_ALIGNMENT +#if NEED_WORD_ALIGNMENT if ((*cursor % __alignof__(gsu16)) == 0) memcpy(&x, (bytes + *cursor), 2); else @@ -2093,7 +2093,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos) format: @"Range: (%u, 1) Size: %d", *cursor, length]; } -#ifdef NEED_WORD_ALIGNMENT +#if NEED_WORD_ALIGNMENT if ((*cursor % __alignof__(gsu32)) == 0) memcpy(&x, (bytes + *cursor), 4); else @@ -2986,7 +2986,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos) [self _grow: length + 3]; } *(gsu8*)(bytes + length++) = tag; -#ifdef NEED_WORD_ALIGNMENT +#if NEED_WORD_ALIGNMENT if ((length % __alignof__(gsu16)) == 0) { x = GSSwapHostI16ToBig(x); @@ -3007,7 +3007,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos) [self _grow: length + 5]; } *(gsu8*)(bytes + length++) = tag; -#ifdef NEED_WORD_ALIGNMENT +#if NEED_WORD_ALIGNMENT if ((length % __alignof__(gsu32)) == 0) { x = GSSwapHostI32ToBig(x);