Author: rmottola
Date: Mon Nov 23 16:34:29 2015
New Revision: 39190
URL: http://svn.gna.org/viewcvs/gnustep?rev=39190&view=rev
Log:
add GS MemoryReporting extensions for NSObject missing on Mac so that the whole
GS base additions are not needed
Added:
libs/performance/trunk/NSObject+GSExtensions.h
libs/performance/trunk/NSObject+GSExtensions.m
Modified:
libs/performance/trunk/GSCache.m
libs/performance/trunk/Performance.xcodeproj/project.pbxproj
Modified: libs/performance/trunk/GSCache.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/performance/trunk/GSCache.m?rev=39190&r1=39189&r2=39190&view=diff
==============================================================================
--- libs/performance/trunk/GSCache.m (original)
+++ libs/performance/trunk/GSCache.m Mon Nov 23 16:34:29 2015
@@ -51,6 +51,9 @@
#if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4)
#define class_getInstanceSize(isa) ((struct objc_class *)isa)->instance_size
#endif
+
+#import "NSObject+GSExtensions.h"
+
#endif
@interface GSCache (Threading)
Added: libs/performance/trunk/NSObject+GSExtensions.h
URL:
http://svn.gna.org/viewcvs/gnustep/libs/performance/trunk/NSObject%2BGSExtensions.h?rev=39190&view=auto
==============================================================================
--- libs/performance/trunk/NSObject+GSExtensions.h (added)
+++ libs/performance/trunk/NSObject+GSExtensions.h Mon Nov 23 16:34:29 2015
@@ -0,0 +1,46 @@
+/** Declaration of extension methods for base additions
+
+ Copyright (C) 2003-2010 Free Software Foundation, Inc.
+
+ Written by: Richard Frith-Macdonald <[email protected]>
+ and: Adam Fedor <[email protected]>
+
+ This file is part of the GNUstep Base Library.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02111 USA.
+
+*/
+
+#import <Foundation/NSObject.h>
+
+@interface NSObject(MemoryFootprint)
+/* This method returns the memory usage of the receiver, excluding any
+ * objects already present in the exclude table.<br />
+ * The argument is a hash table configured to hold non-retained pointer
+ * objects and is used to inform the receiver that its size should not
+ * be counted again if it's already in the table.<br />
+ * The NSObject implementation returns zero if the receiver is in the
+ * table, but otherwise adds itself to the table and returns its memory
+ * footprint (the sum of all of its instance variables, but not any
+ * memory pointed to by those variables).<br />
+ * Subclasses should override this method by calling the superclass
+ * implementation, and either return the result (if it was zero) or
+ * return that value plus the sizes of any memory owned by the receiver
+ * (eg found by calling the same method on objects pointed to by the
+ * receiver's instance variables).
+ */
+- (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude;
+@end
Added: libs/performance/trunk/NSObject+GSExtensions.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/performance/trunk/NSObject%2BGSExtensions.m?rev=39190&view=auto
==============================================================================
--- libs/performance/trunk/NSObject+GSExtensions.m (added)
+++ libs/performance/trunk/NSObject+GSExtensions.m Mon Nov 23 16:34:29 2015
@@ -0,0 +1,42 @@
+/* Implementation of extension methods to base additions
+
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+ Written by: Richard Frith-Macdonald <[email protected]>
+
+ This file is part of the GNUstep Base Library.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02111 USA.
+
+*/
+
+#import <Foundation/NSHashTable.h>
+
+@implementation NSObject (MemoryFootprint)
++ (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude
+{
+ return 0;
+}
+- (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude
+{
+ if (0 == NSHashGet(exclude, self))
+ {
+ NSHashInsert(exclude, self);
+ return class_getInstanceSize(object_getClass(self));
+ }
+ return 0;
+}
+@end
Modified: libs/performance/trunk/Performance.xcodeproj/project.pbxproj
URL:
http://svn.gna.org/viewcvs/gnustep/libs/performance/trunk/Performance.xcodeproj/project.pbxproj?rev=39190&r1=39189&r2=39190&view=diff
==============================================================================
--- libs/performance/trunk/Performance.xcodeproj/project.pbxproj
(original)
+++ libs/performance/trunk/Performance.xcodeproj/project.pbxproj Mon Nov
23 16:34:29 2015
@@ -24,6 +24,8 @@
85872ECF1284CFC700B4601E /* GSTicker.h in Headers */ = {isa =
PBXBuildFile; fileRef = 85872EBE1284CFC700B4601E /* GSTicker.h */; settings =
{ATTRIBUTES = (Public, ); }; };
85872ED01284CFC700B4601E /* GSTicker.m in Sources */ = {isa =
PBXBuildFile; fileRef = 85872EBF1284CFC700B4601E /* GSTicker.m */; };
85872ED11284CFC700B4601E /* Performance.h in Headers */ = {isa
= PBXBuildFile; fileRef = 85872EC01284CFC700B4601E /* Performance.h */;
settings = {ATTRIBUTES = (Public, ); }; };
+ 85B7DBDC1C034FBA00AF3090 /* NSObject+GSExtensions.h in Headers
*/ = {isa = PBXBuildFile; fileRef = 85B7DBDA1C034FBA00AF3090 /*
NSObject+GSExtensions.h */; };
+ 85B7DBDD1C034FBA00AF3090 /* NSObject+GSExtensions.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 85B7DBDB1C034FBA00AF3090 /*
NSObject+GSExtensions.m */; };
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ =
{isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings
*/; };
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ =
{isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */;
};
/* End PBXBuildFile section */
@@ -52,6 +54,8 @@
85872EC01284CFC700B4601E /* Performance.h */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path =
Performance.h; sourceTree = "<group>"; };
8591FBED1A13422800923420 /* ChangeLog */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ChangeLog;
sourceTree = "<group>"; };
85B560B3128C6E47003BAF08 /* Performance.framework */ = {isa =
PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0;
path = Performance.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 85B7DBDA1C034FBA00AF3090 /* NSObject+GSExtensions.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
"NSObject+GSExtensions.h"; sourceTree = "<group>"; };
+ 85B7DBDB1C034FBA00AF3090 /* NSObject+GSExtensions.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= "NSObject+GSExtensions.m"; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path =
Info.plist; sourceTree = "<group>"; };
D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
CoreData.framework; path = /System/Library/Frameworks/CoreData.framework;
sourceTree = "<absolute>"; };
/* End PBXFileReference section */
@@ -110,6 +114,8 @@
08FB77AEFE84172EC02AAC07 /* Classes */ = {
isa = PBXGroup;
children = (
+ 85B7DBDA1C034FBA00AF3090 /*
NSObject+GSExtensions.h */,
+ 85B7DBDB1C034FBA00AF3090 /*
NSObject+GSExtensions.m */,
85872EB01284CFC700B4601E /* GSCache.h */,
85872EB11284CFC700B4601E /* GSCache.m */,
85872EB21284CFC700B4601E /* GSIndexedSkipList.h
*/,
@@ -172,6 +178,7 @@
85872ECD1284CFC700B4601E /* GSThroughput.h in
Headers */,
85872ECF1284CFC700B4601E /* GSTicker.h in
Headers */,
85872ED11284CFC700B4601E /* Performance.h in
Headers */,
+ 85B7DBDC1C034FBA00AF3090 /*
NSObject+GSExtensions.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -207,7 +214,6 @@
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /*
Build configuration list for PBXProject "Performance" */;
compatibilityVersion = "Xcode 2.4";
- developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
@@ -249,6 +255,7 @@
85872ECC1284CFC700B4601E /* GSThreadPool.m in
Sources */,
85872ECE1284CFC700B4601E /* GSThroughput.m in
Sources */,
85872ED01284CFC700B4601E /* GSTicker.m in
Sources */,
+ 85B7DBDD1C034FBA00AF3090 /*
NSObject+GSExtensions.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -297,8 +304,8 @@
1DEB91AF08733DA50010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS =
"$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc
i386";
+ ARCHS =
"$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 =
"x86_64 i386 ppc";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
@@ -321,8 +328,7 @@
1DEB91B208733DA50010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS =
"$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc
i386";
+ ARCHS = "$(NATIVE_ARCH_ACTUAL)";
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
@@ -336,8 +342,9 @@
1DEB91B308733DA50010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS =
"$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc
i386";
+ ARCHS =
"$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 =
"x86_64 i386 ppc";
+ GCC_MODEL_TUNING = "";
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs