Author: mlytwyn
Date: Wed Mar  9 00:27:42 2016
New Revision: 39490

URL: http://svn.gna.org/viewcvs/gnustep?rev=39490&view=rev
Log:
Merge with base main branch revision 39486

Modified:
    libs/base/branches/gnustep_testplant_branch/Source/GNUmakefile
    libs/base/branches/gnustep_testplant_branch/Source/GSAvahiClient.m
    libs/base/branches/gnustep_testplant_branch/Source/GSCountedSet.m
    libs/base/branches/gnustep_testplant_branch/Source/GSDictionary.m
    libs/base/branches/gnustep_testplant_branch/Source/GSFFCallInvocation.m
    libs/base/branches/gnustep_testplant_branch/Source/GSFileHandle.m

Modified: libs/base/branches/gnustep_testplant_branch/Source/GNUmakefile
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GNUmakefile?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GNUmakefile      
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GNUmakefile      Wed Mar 
 9 00:27:42 2016
@@ -132,6 +132,7 @@
 NSData+GNUstepBase.h \
 NSDebug+GNUstepBase.h \
 NSFileHandle+GNUstepBase.h \
+NSHashTable+GNUstepBase.h \
 NSLock+GNUstepBase.h \
 NSMutableString+GNUstepBase.h \
 NSNetServices+GNUstepBase.h \

Modified: libs/base/branches/gnustep_testplant_branch/Source/GSAvahiClient.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GSAvahiClient.m?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GSAvahiClient.m  
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GSAvahiClient.m  Wed Mar 
 9 00:27:42 2016
@@ -174,13 +174,8 @@
                                             errNo);
         }
       [_lock unlock];
-      
-      if ((_client == NULL) || ((errNo != NULL) && (*errNo != 0)))
-        {
-          NSWarnLog(@"client allocation error: %ld", *errNo);
         }
     }
-}
 
 - (id) delegate
 {

Modified: libs/base/branches/gnustep_testplant_branch/Source/GSCountedSet.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GSCountedSet.m?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GSCountedSet.m   
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GSCountedSet.m   Wed Mar 
 9 00:27:42 2016
@@ -29,6 +29,7 @@
 #import "Foundation/NSException.h"
 #import "Foundation/NSPortCoder.h"
 
+#import "GSPrivate.h"
 
 #define        GSI_MAP_RETAIN_VAL(M, X)        
 #define        GSI_MAP_RELEASE_VAL(M, X)       
@@ -393,4 +394,25 @@
   return GSIMapCountByEnumeratingWithStateObjectsCount
     (&map, state, stackbuf, len);
 }
+
+- (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude
+{
+  NSUInteger   size = GSPrivateMemorySize(self, exclude);
+
+  if (size > 0)
+    {
+      GSIMapEnumerator_t       enumerator = GSIMapEnumeratorForMap(&map);
+      GSIMapNode               node = GSIMapEnumeratorNextNode(&enumerator);
+
+      size += GSIMapSize(&map) - sizeof(map);
+      while (node != 0)
+        {
+          size += [node->key.obj sizeInBytesExcluding: exclude];
+          node = GSIMapEnumeratorNextNode(&enumerator);
+        }
+      GSIMapEndEnumerator(&enumerator);
+    }
+  return size;
+}
+
 @end

Modified: libs/base/branches/gnustep_testplant_branch/Source/GSDictionary.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GSDictionary.m?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GSDictionary.m   
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GSDictionary.m   Wed Mar 
 9 00:27:42 2016
@@ -33,6 +33,8 @@
 #import "Foundation/NSKeyedArchiver.h"
 
 #import "GNUstepBase/GSObjCRuntime.h"
+
+#import "GSPrivate.h"
 
 /*
  *     The 'Fastmap' stuff provides an inline implementation of a mapping
@@ -364,6 +366,28 @@
   return GSIMapCountByEnumeratingWithStateObjectsCount
     (&map, state, stackbuf, len);
 }
+
+- (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude
+{
+  NSUInteger   size = GSPrivateMemorySize(self, exclude);
+
+  if (size > 0)
+    {
+      GSIMapEnumerator_t       enumerator = GSIMapEnumeratorForMap(&map);
+      GSIMapNode               node = GSIMapEnumeratorNextNode(&enumerator);
+
+      size += GSIMapSize(&map) - sizeof(map);
+      while (node != 0)
+        {
+          size += [node->key.obj sizeInBytesExcluding: exclude];
+          size += [node->value.obj sizeInBytesExcluding: exclude];
+          node = GSIMapEnumeratorNextNode(&enumerator);
+        }
+      GSIMapEndEnumerator(&enumerator);
+    }
+  return size;
+}
+
 @end
 
 @implementation GSMutableDictionary

Modified: 
libs/base/branches/gnustep_testplant_branch/Source/GSFFCallInvocation.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GSFFCallInvocation.m?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GSFFCallInvocation.m     
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GSFFCallInvocation.m     
Wed Mar  9 00:27:42 2016
@@ -425,6 +425,11 @@
       case _C_DBL:
        vatype->type = __VAdouble;
        break;
+#if __GNUC__ > 2 && defined(_C_BOOL)
+      case _C_BOOL:
+       vatype->type = __VAuchar;
+       break;
+#endif
       case _C_STRUCT_B:
        vatype->structSize = objc_sizeof_type (sel_type);
        if (vatype->structSize > sizeof (long)
@@ -580,15 +585,19 @@
       case _C_ID:
        av_start_ptr(alist, imp, id, retval);
        break;
+
       case _C_CLASS:
        av_start_ptr(alist, imp, Class, retval);
        break;
+
       case _C_SEL:
        av_start_ptr(alist, imp, SEL, retval);
        break;
+
       case _C_PTR:
        av_start_ptr(alist, imp, void *, retval);
        break;
+
       case _C_CHARPTR:
        av_start_ptr(alist, imp, char *, retval);
        break;
@@ -605,6 +614,9 @@
        CASE_TYPE(_C_ULNG_LNG, unsigned long long, av_start_ulonglong)
        CASE_TYPE(_C_FLT,  float, av_start_float)
        CASE_TYPE(_C_DBL,  double, av_start_double)
+#if __GNUC__ > 2 && defined(_C_BOOL)
+      CASE_TYPE(_C_BOOL, _Bool, av_start_uchar)
+#endif
 
       case _C_STRUCT_B:
        {
@@ -619,9 +631,11 @@
            info[0].size, split, retval);
          break;
        }
+
       case _C_VOID:
        av_start_void(alist, imp);
        break;
+
       default:
        NSCAssert1(0, @"GSFFCallInvocation: Return Type '%s' not implemented",
          info[0].type);
@@ -660,6 +674,7 @@
              av_ptr(alist, id, obj);
              break;
            }
+
          case _C_CLASS:
            {
              Class obj;
@@ -667,6 +682,7 @@
              av_ptr(alist, Class, obj);
              break;
            }
+
          case _C_SEL:
            {
              SEL sel;
@@ -674,6 +690,7 @@
              av_ptr(alist, SEL, sel);
              break;
            }
+
          case _C_PTR:
            {
              void *ptr;
@@ -681,6 +698,7 @@
              av_ptr(alist, void *, ptr);
              break;
            }
+
          case _C_CHARPTR:
            {
              char *ptr;
@@ -701,11 +719,15 @@
            CASE_TYPE(_C_ULNG_LNG, unsigned long long, av_ulonglong)
            CASE_TYPE(_C_FLT,  float, av_float)
            CASE_TYPE(_C_DBL,  double, av_double)
+#if __GNUC__ > 2 && defined(_C_BOOL)
+          CASE_TYPE(_C_BOOL, _Bool, av_uchar)
+#endif
        
          case _C_STRUCT_B:
            _av_struct(alist, size,
              info[i+1].align, datum);
            break;
+
          default:
            NSCAssert1(0, @"GSFFCallInvocation: Type '%s' not implemented",
              type);
@@ -994,24 +1016,28 @@
              [invocation setArgument: &obj atIndex: i];
              break;
            }
+
          case _C_CLASS:
            {
              Class obj = va_arg_ptr (args, Class);
              [invocation setArgument: &obj atIndex: i];
              break;
            }
+
          case _C_SEL:
            {
              SEL sel = va_arg_ptr (args, SEL);
              [invocation setArgument: &sel atIndex: i];
              break;
            }
+
          case _C_PTR:
            {
              void *ptr = va_arg_ptr (args, void *);
              [invocation setArgument: &ptr atIndex: i];
              break;
            }
+
          case _C_CHARPTR:
            {
              char *ptr = va_arg_ptr (args, char *);
@@ -1031,6 +1057,9 @@
          CASE_TYPE(_C_ULNG_LNG, unsigned long long, va_arg_ulonglong)
          CASE_TYPE(_C_FLT,  float, va_arg_float)
          CASE_TYPE(_C_DBL,  double, va_arg_double)
+#if __GNUC__ > 2 && defined(_C_BOOL)
+         CASE_TYPE(_C_BOOL,  _Bool, va_arg_uchar)
+#endif
        
          case _C_STRUCT_B:
            {
@@ -1039,6 +1068,7 @@
              [invocation setArgument: ptr atIndex: i];
              break;
            }
+
          default:
            NSCAssert1(0, @"GSFFCallInvocation: Type '%s' not implemented",
              type);
@@ -1090,10 +1120,14 @@
       CASE_TYPE(_C_ULNG_LNG, unsigned long long, va_return_ulonglong)
       CASE_TYPE(_C_FLT,  float, va_return_float)
       CASE_TYPE(_C_DBL,  double, va_return_double)
+#if __GNUC__ > 2 && defined(_C_BOOL)
+      CASE_TYPE(_C_BOOL, _Bool, va_return_uchar)
+#endif
 
       case _C_STRUCT_B:
        _va_return_struct(args, info[0].size, info[0].align, retval);
        break;
+
       case _C_VOID:
        /* FIXME ... evil hack ... where the compiler did not know
         * selector types, if may have had to assume a method returning
@@ -1111,6 +1145,7 @@
            va_return_void(args);
          }
        break;
+
       default:
        NSCAssert1(0, @"GSFFCallInvocation: Return Type '%s' not implemented",
          info[0].type);

Modified: libs/base/branches/gnustep_testplant_branch/Source/GSFileHandle.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/branches/gnustep_testplant_branch/Source/GSFileHandle.m?rev=39490&r1=39489&r2=39490&view=diff
==============================================================================
--- libs/base/branches/gnustep_testplant_branch/Source/GSFileHandle.m   
(original)
+++ libs/base/branches/gnustep_testplant_branch/Source/GSFileHandle.m   Wed Mar 
 9 00:27:42 2016
@@ -359,11 +359,14 @@
   DESTROY(address);
   DESTROY(service);
   DESTROY(protocol);
-
-  [self finalize];
-
   DESTROY(readInfo);
   DESTROY(writeInfo);
+
+  /* Finalize *after* destroying readInfo and writeInfo so that, if the
+   * file handle needs to be closed, we don't generate any notifications
+   * containing the deallocated object.  Tnanks to david for this fix.
+   */
+  [self finalize];
   [super dealloc];
 }
 


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to