Author: mlytwyn
Date: Fri Sep 23 22:37:19 2016
New Revision: 40105

URL: http://svn.gna.org/viewcvs/gnustep?rev=40105&view=rev
Log:
Merge with base trunk revision 40072

Modified:
    libs/base/branches/gnustep_testplant_branch/Source/NSSocketPortNameServer.m
    libs/base/branches/gnustep_testplant_branch/Source/NSThread.m
    libs/base/branches/gnustep_testplant_branch/Source/NSTimer.m
    libs/base/branches/gnustep_testplant_branch/Source/NSURL.m
    libs/base/branches/gnustep_testplant_branch/Source/NSURLConnection.m
    libs/base/branches/gnustep_testplant_branch/Source/NSUnarchiver.m
    libs/base/branches/gnustep_testplant_branch/Source/NSUndoManager.m

Modified: 
libs/base/branches/gnustep_testplant_branch/Source/NSSocketPortNameServer.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSSocketPortNameServer.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSSocketPortNameServer.m 
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSSocketPortNameServer.m 
Fri Sep 23 22:37:19 2016
@@ -24,9 +24,11 @@
    $Date$ $Revision$
    */
 
-/* define to get system-v functions including inet_aton()
+/* defines to get system-v functions including inet_aton()
+ * The first define is for old versions of glibc, the second for newer ones
  */
 #define _SVID_SOURCE    1
+#define _DEFAULT_SOURCE    1
 
 #import "common.h"
 #define        EXPOSE_NSSocketPortNameServer_IVARS     1
@@ -53,7 +55,7 @@
 
 #import "GSPortPrivate.h"
 
-#ifdef __MINGW__
+#ifdef _WIN32
 #include <winsock2.h>
 #include <wininet.h>
 #else
@@ -183,15 +185,17 @@
   if (e != nil)
     {
       NSDebugMLLog(@"NSSocketPortNameServer",
-       @"failed connect to gdomap on %@ - %@",
-       [[notification object] socketAddress], e);
+       @"failed connect to gdomap on %@:%@ - %@",
+       [[notification object] socketAddress],
+       [[notification object] socketService],
+        e);
       /*
        * Remove our file handle, then either retry or fail.
        */
       [self close];
       if (launchCmd == nil)
        {
-         launchCmd = [NSTask launchPathForTool: @"gdomap"];
+         launchCmd = RETAIN([NSTask launchPathForTool: @"gdomap"]);
        }
       if (state == GSPC_LOPEN && launchCmd != nil)
        {
@@ -251,8 +255,9 @@
   if (d == nil || [d length] == 0)
     {
       [self fail];
-      NSLog(@"NSSocketPortNameServer lost connection to gdomap on %@",
-       [[notification object] socketAddress]);
+      NSLog(@"NSSocketPortNameServer lost connection to gdomap on %@:%@",
+       [[notification object] socketAddress],
+       [[notification object] socketService]);
     }
   else
     {
@@ -321,8 +326,10 @@
   if (e != nil)
     {
       [self fail];
-      NSLog(@"NSSocketPortNameServer failed write to gdomap on %@ - %@",
-       [[notification object] socketAddress], e);
+      NSLog(@"NSSocketPortNameServer failed write to gdomap on %@:%@ - %@",
+       [[notification object] socketAddress],
+       [[notification object] socketService],
+        e);
     }
   else
     {

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSThread.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSThread.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSThread.m       
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSThread.m       Fri Sep 
23 22:37:19 2016
@@ -73,18 +73,10 @@
 #import "Foundation/NSConnection.h"
 #import "Foundation/NSInvocation.h"
 #import "Foundation/NSUserDefaults.h"
-#import "Foundation/NSGarbageCollector.h"
 #import "Foundation/NSValue.h"
 
 #import "GSPrivate.h"
 #import "GSRunLoopCtxt.h"
-
-#if    GS_WITH_GC
-#include       <gc/gc.h>
-#endif
-#if __OBJC_GC__
-#include <objc/objc-auto.h>
-#endif
 
 #if defined(HAVE_PTHREAD_NP_H)
 #  include <pthread_np.h>
@@ -115,7 +107,7 @@
 NSUInteger
 GSPrivateThreadID()
 {
-#if defined(__MINGW__)
+#if defined(_WIN32)
   return (NSUInteger)GetCurrentThreadId();
 #elif defined(HAVE_GETTID)
   return (NSUInteger)syscall(SYS_gettid);
@@ -132,7 +124,7 @@
  * FIXME ... This is code for the microsoft compiler;
  * how do we make it work for gcc/clang?
  */
-#if defined(__MINGW__) && defined(HAVE_WINDOWS_H)
+#if defined(_WIN32) && defined(HAVE_WINDOWS_H)
 // Usage: SetThreadName (-1, "MainThread");
 #include <windows.h>
 const DWORD MS_VC_EXCEPTION=0x406D1388;
@@ -263,7 +255,7 @@
       return;
     }
 
-#if     defined(__MINGW__)
+#if     defined(_WIN32)
   /*
    * Avoid integer overflow by breaking up long sleeps.
    */
@@ -299,7 +291,7 @@
       delay = when - GSPrivateTimeNow();
     }
 
-#else   /* __MINGW__ */
+#else   /* _WIN32 */
 
   /*
    * Avoid integer overflow by breaking up long sleeps.
@@ -352,7 +344,7 @@
       delay = when - GSPrivateTimeNow();
     }
 #endif /* !HAVE_NANOSLEEP */
-#endif /* !__MINGW__ */
+#endif /* !_WIN32 */
 }
 
 static NSArray *
@@ -411,6 +403,7 @@
  * Conversely, we need to be able to retrieve the pthread_t
  * from an NSValue.
  */
+// Testplant-MAL-09232016: Keeping testplant branch code...
 static inline void
 _getPthreadFromNSValue(NSValue* value, pthread_t *thread_ptr)
 {
@@ -576,6 +569,17 @@
     {
       NSValue           *ref;
 
+      if (0 == thread)
+       {
+         /* On some systems this is called with a null thread pointer,
+          * so try to ger the NSThread object for the current thread.
+          */
+         thread = pthread_getspecific(thread_object_key);
+         if (0 == thread)
+           {
+             return;   // no thread info
+           }
+       }
       RETAIN((NSThread*)thread);
       ref = NSValueCreateFromPthread(pthread_self());
       _willLateUnregisterThread(ref, (NSThread*)thread);
@@ -664,7 +668,7 @@
 }
 
 /*
- * Callback function so send notifications on becoming multi-threaded.
+ * Callback function to send notifications on becoming multi-threaded.
  */
 static void
 gnustep_base_thread_callback(void)
@@ -687,13 +691,6 @@
           * threaded BEFORE sending the notifications.
           */
          entered_multi_threaded_state = YES;
-#if    GS_WITH_GC && defined(HAVE_GC_ALLOW_REGISTER_THREADS)
-         /* This function needs to be called before going multi-threaded
-          * so that the garbage collection library knows to support
-          * registration of new threads.
-          */
-         GS_allow_register_threads();
-#endif
          NS_DURING
            {
              [GSPerformHolder class];  // Force initialization
@@ -737,7 +734,6 @@
 static void
 setThreadForCurrentThread(NSThread *t)
 {
-  [[NSGarbageCollector defaultCollector] disableCollectorForPointer: t];
   pthread_setspecific(thread_object_key, t);
   gnustep_base_thread_callback();
 }
@@ -767,7 +763,6 @@
       [(GSRunLoopThreadInfo*)thread->_runLoopInfo invalidate];
       RELEASE(thread);
 
-      [[NSGarbageCollector defaultCollector] enableCollectorForPointer: 
thread];
       pthread_setspecific(thread_object_key, nil);
     }
 }
@@ -787,9 +782,12 @@
     {
       t = [self new];
       t->_active = YES;
-      [[NSGarbageCollector defaultCollector] disableCollectorForPointer: t];
       pthread_setspecific(thread_object_key, t);
       GS_CONSUMED(t);
+      if (defaultThread != nil && t != defaultThread)
+        {
+          gnustep_base_thread_callback();
+        }
       return YES;
     }
   return NO;
@@ -1066,25 +1064,65 @@
 
 - (void) _setName: (NSString *)aName
 {
-  int   result = -1;
-
-  while (result != 0 && [aName length] > 0)
-    {
-      result =
-        PTHREAD_SETNAME([aName cStringUsingEncoding: NSUTF8StringEncoding]);
-      if (result != 0)
+  if ([aName isKindOfClass: [NSString class]])
+    {
+      int       i;
+      char      buf[200];
+
+      if (YES == [aName getCString: buf
+                         maxLength: sizeof(buf)
+                          encoding: NSUTF8StringEncoding])
+    {
+          i = strlen(buf);
+        }
+      else
         {
+          /* Too much for buffer ... truncate on a character boundary.
+           */
+          i = sizeof(buf) - 1;
+          if (buf[i] & 0x80)
+            {
+              while (i > 0 && (buf[i] & 0x80))
+                {
+                  buf[i--] = '\0';
+                }
+            }
+          else
+            {
+              buf[i--] = '\0';
+            }
+        }
+      while (i > 0)
+        {
+          if (PTHREAD_SETNAME(buf) == 0)
+            {
+              break;    // Success
+            }
+
           if (ERANGE == errno)
             {
               /* Name must be too long ... gnu/linux uses 15 characters
                */
-              if ([aName length] > 15)
+              if (i > 15)
                 {
-                  aName = [aName substringToIndex: 15];
+                  i = 15;
                 }
               else
                 {
-                  aName = [aName substringToIndex: [aName length] - 1];
+                  i--;
+                }
+              /* too long a name ... truncate on a character boundary.
+               */
+              if (buf[i] & 0x80)
+                {
+                  while (i > 0 && (buf[i] & 0x80))
+                    {
+                      buf[i--] = '\0';
+            }
+                }
+          else
+            {
+                  buf[i--] = '\0';
                 }
             }
           else
@@ -1122,33 +1160,12 @@
 /**
  * Trampoline function called to launch the thread
  */
-static void *nsthreadLauncher(void* thread)
+static void *
+nsthreadLauncher(void *thread)
 {
     NSThread *t = (NSThread*)thread;
+
     setThreadForCurrentThread(t);
-#if __OBJC_GC__
-       objc_registerThreadWithCollector();
-#endif
-#if    GS_WITH_GC && defined(HAVE_GC_REGISTER_MY_THREAD)
-  {
-    struct GC_stack_base       base;
-
-    if (GC_get_stack_base(&base) == GC_SUCCESS)
-      {
-       int     result;
-
-       result = GC_register_my_thread(&base);
-       if (result != GC_SUCCESS && result != GC_DUPLICATE)
-         {
-           fprintf(stderr, "Argh ... no thread support in garbage collection 
library\n");
-         }
-      }
-    else
-      {
-       fprintf(stderr, "Unable to determine stack base to register new thread 
for garbage collection\n");
-      }
-  }
-#endif
 
   /*
    * Let observers know a new thread is starting.
@@ -1257,7 +1274,7 @@
   BOOL  signalled = NO;
 
   [lock lock];
-#if defined(__MINGW__)
+#if defined(_WIN32)
   if (INVALID_HANDLE_VALUE != event)
     {
   if (SetEvent(event) == 0)
@@ -1307,7 +1324,7 @@
 
 - (id) init
 {
-#ifdef __MINGW__
+#ifdef _WIN32
   if ((event = CreateEvent(NULL, TRUE, FALSE, NULL)) == INVALID_HANDLE_VALUE)
     {
       DESTROY(self);
@@ -1371,7 +1388,7 @@
   [lock lock];
   p = AUTORELEASE(performers);
   performers = nil;
-#ifdef __MINGW__
+#ifdef _WIN32
   if (event != INVALID_HANDLE_VALUE)
     {
       CloseHandle(event);
@@ -1400,7 +1417,7 @@
   unsigned int c;
 
   [lock lock];
-#if defined(__MINGW__)
+#if defined(_WIN32)
   if (event != INVALID_HANDLE_VALUE)
     {
       if (ResetEvent(event) == 0)
@@ -1575,11 +1592,6 @@
 - (NSArray*) modes
 {
   return modes;
-}
-
-- (NSString *) description
-{
-       return [NSString stringWithFormat:@"%@ on %@", 
NSStringFromSelector(selector), receiver];
 }
 @end
 

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSTimer.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSTimer.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSTimer.m        
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSTimer.m        Fri Sep 
23 22:37:19 2016
@@ -244,9 +244,11 @@
          NS_HANDLER
            {
              NSLog(@"*** NSTimer ignoring exception '%@' (reason '%@') "
-               @"raised during posting of timer with target %p "
+               @"raised during posting of timer with target %s(%s) "
                @"and selector '%@'",
-               [localException name], [localException reason], target,
+               [localException name], [localException reason],
+                GSClassNameFromObject(target),
+                GSObjCIsInstance(target) ? "instance" : "class",
                NSStringFromSelector([target selector]));
            }
          NS_ENDHANDLER

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSURL.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSURL.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSURL.m  (original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSURL.m  Fri Sep 23 
22:37:19 2016
@@ -260,11 +260,7 @@
       len += strlen(rel->fragment) + 1;                // #fragment
     }
 
-#if    GS_WITH_GC
-  ptr = buf = (char*)NSAllocateCollectable(len, 0);
-#else
   ptr = buf = (char*)NSZoneMalloc(NSDefaultMallocZone(), len);
-#endif
 
   if (rel->scheme != 0)
     {
@@ -849,11 +845,7 @@
       BOOL     canBeGeneric = YES;
 
       size += sizeof(parsedURL) + urlAlign + 1;
-#if    GS_WITH_GC
-      buf = _data = (parsedURL*)NSAllocateCollectable(size, 0);
-#else
       buf = _data = (parsedURL*)NSZoneMalloc(NSDefaultMallocZone(), size);
-#endif
       memset(buf, '\0', size);
       start = end = ptr = (char*)&buf[1];
       [_urlString getCString: start
@@ -1428,6 +1420,7 @@
   return nil == errorStr ? YES : NO;
 }
 
+// Testplant-MAL-09232016: Keeping testplant branch code...
 - (BOOL) getResourceValue:(id*)value forKey:(NSString *)key 
error:(NSError**)error
 {
   if ([self isFileURL])
@@ -1538,7 +1531,7 @@
       unescape(buf, buf);
     }
 
-#if    defined(__MINGW__)
+#if    defined(_WIN32)
   /* On windows a file URL path may be of the form C:\xxx (ie we should
    * not insert the leading slash).
    * Also the vertical bar symbol may have been used instead of the

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSURLConnection.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSURLConnection.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSURLConnection.m        
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSURLConnection.m        
Fri Sep 23 22:37:19 2016
@@ -110,7 +110,6 @@
   _done = YES;
 }
 
-
 - (void) connection: (NSURLConnection *)connection
      didReceiveData: (NSData *)data
 {
@@ -138,13 +137,8 @@
 
   if (o != nil)
     {
-#if    GS_WITH_GC
-      o->_NSURLConnectionInternal
-       = NSAllocateCollectable(sizeof(Internal), NSScannedOption);
-#else
       o->_NSURLConnectionInternal = NSZoneCalloc([self zone],
        1, sizeof(Internal));
-#endif
     }
   return o;
 }
@@ -264,8 +258,15 @@
 - (void) connection: (NSURLConnection *)connection
   didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge
 {
+  if ([challenge proposedCredential] == nil
+    || [challenge previousFailureCount] > 0)
+    {
+      /* continue without a credential if there is no proposed credential
+       * at all or if an authentication failure has already happened.
+       */
   [[challenge sender]
     continueWithoutCredentialForAuthenticationChallenge: challenge];
+}
 }
 
 - (void) connection: (NSURLConnection *)connection

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSUnarchiver.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSUnarchiver.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSUnarchiver.m   
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSUnarchiver.m   Fri Sep 
23 22:37:19 2016
@@ -78,6 +78,9 @@
       case _C_ULNG_LNG:        return "unsigned long long";
       case _C_FLT:     return "float";
       case _C_DBL:     return "double";
+#if __GNUC__ > 2 && defined(_C_BOOL)
+      case _C_BOOL:    return "_Bool";
+#endif
       case _C_PTR:     return "pointer";
       case _C_CHARPTR: return "cstring";
       case _C_ARY_B:   return "array";
@@ -123,6 +126,7 @@
       case _GSC_ULNG_LNG:      return "unsigned long long";
       case _GSC_FLT:   return "float";
       case _GSC_DBL:   return "double";
+      case _GSC_BOOL:  return "_Bool";
       case _GSC_PTR:   return "pointer";
       case _GSC_CHARPTR:       return "cstring";
       case _GSC_ARY_B: return "array";
@@ -166,7 +170,11 @@
   _C_ULNG_LNG,
   _C_FLT,
   _C_DBL,
+#if __GNUC__ > 2 && defined(_C_BOOL)
+  _C_BOOL,
+#else
   0,
+#endif
   0,
   0,
   _C_ID,
@@ -608,6 +616,9 @@
       case _C_ULNG_LNG:        info = _GSC_ULNG_LNG; break;
       case _C_FLT:     info = _GSC_FLT; break;
       case _C_DBL:     info = _GSC_DBL; break;
+#if __GNUC__ > 2 && defined(_C_BOOL)
+      case _C_BOOL:    info = _GSC_BOOL; break;
+#endif
       default:         info = _GSC_NONE; break;
     }
 
@@ -1255,6 +1266,16 @@
            (*desImp)(src, desSel, &val, @encode(double), &cursor, nil);
            *(float*)address = (float)val;
          }
+       return;
+
+      case _GSC_BOOL:
+       if (*type != type_map[_GSC_BOOL])
+         {
+           [NSException raise: NSInternalInconsistencyException
+                       format: @"expected %s and got %s",
+                   typeToName1(*type), typeToName2(info)];
+         }
+       (*desImp)(src, desSel, address, type, &cursor, nil);
        return;
 
       default:
@@ -1460,11 +1481,7 @@
          void          *b;
          NSData        *d;
 
-#if    GS_WITH_GC
-         b = NSAllocateCollectable(l, 0);
-#else
          b = NSZoneMalloc(zone, l);
-#endif
          [self decodeArrayOfObjCType: @encode(unsigned char)
                                count: l
                                   at: b];

Modified: libs/base/branches/gnustep_testplant_branch/Source/NSUndoManager.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/NSUndoManager.m?rev=40105&r1=40104&r2=40105&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/NSUndoManager.m  
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/NSUndoManager.m  Fri Sep 
23 22:37:19 2016
@@ -1026,6 +1026,8 @@
       return;
     }
 
+  // Testplant-MAL-09232016: Paul moved this up in testplant branch code so
+  // local changes...
   _isUndoing = YES;
 
   [[NSNotificationCenter defaultCenter]
@@ -1105,6 +1107,7 @@
 @end
 
 
+// Testplant-MAL-09232016: Paul added to testplant branch - keeping changes...
 @implementation NSCellUndoManager
 
 - (void)dealloc


_______________________________________________
Gnustep-cvs mailing list
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to