Skip to content

Commit ee7ec22

Browse files
committed
Merge branch 'master' of github.com:erikdoe/ocmock
2 parents 63ccee8 + 6689ba4 commit ee7ec22

File tree

3 files changed

+36
-38
lines changed

3 files changed

+36
-38
lines changed

Source/OCMock.xcodeproj/project.pbxproj

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,10 +1490,6 @@
14901490
GCC_PREFIX_HEADER = "OCMock/OCMock-Prefix.pch";
14911491
INFOPLIST_FILE = "OCMock/OCMock-Info.plist";
14921492
LD_DYLIB_INSTALL_NAME = "@rpath/$(EXECUTABLE_PATH)";
1493-
LIBRARY_SEARCH_PATHS = (
1494-
"$(inherited)",
1495-
"\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Foundation.framework/Versions/C\"",
1496-
);
14971493
PRODUCT_BUNDLE_IDENTIFIER = "com.mulle-kybernetik.$(PRODUCT_NAME:rfc1034identifier)";
14981494
PRODUCT_NAME = "$(TARGET_NAME)";
14991495
WRAPPER_EXTENSION = framework;
@@ -1512,10 +1508,6 @@
15121508
GCC_PREFIX_HEADER = "OCMock/OCMock-Prefix.pch";
15131509
INFOPLIST_FILE = "OCMock/OCMock-Info.plist";
15141510
LD_DYLIB_INSTALL_NAME = "@rpath/$(EXECUTABLE_PATH)";
1515-
LIBRARY_SEARCH_PATHS = (
1516-
"$(inherited)",
1517-
"\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Foundation.framework/Versions/C\"",
1518-
);
15191511
PRODUCT_BUNDLE_IDENTIFIER = "com.mulle-kybernetik.$(PRODUCT_NAME:rfc1034identifier)";
15201512
PRODUCT_NAME = "$(TARGET_NAME)";
15211513
WRAPPER_EXTENSION = framework;
@@ -1530,10 +1522,6 @@
15301522
GCC_PREFIX_HEADER = "OCMockLib/OCMockLib-Prefix.pch";
15311523
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
15321524
"IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0;
1533-
LIBRARY_SEARCH_PATHS = (
1534-
"$(inherited)",
1535-
"\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Foundation.framework/Versions/C\"",
1536-
);
15371525
OTHER_LDFLAGS = "-ObjC";
15381526
PRODUCT_NAME = OCMock;
15391527
PUBLIC_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME)";
@@ -1552,10 +1540,6 @@
15521540
GCC_PREFIX_HEADER = "OCMockLib/OCMockLib-Prefix.pch";
15531541
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
15541542
"IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0;
1555-
LIBRARY_SEARCH_PATHS = (
1556-
"$(inherited)",
1557-
"\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Foundation.framework/Versions/C\"",
1558-
);
15591543
OTHER_LDFLAGS = "-ObjC";
15601544
PRODUCT_NAME = OCMock;
15611545
PUBLIC_HEADERS_FOLDER_PATH = "$(PRODUCT_NAME)";
@@ -1577,10 +1561,6 @@
15771561
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
15781562
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
15791563
COMBINE_HIDPI_IMAGES = YES;
1580-
FRAMEWORK_SEARCH_PATHS = (
1581-
"$(DEVELOPER_FRAMEWORKS_DIR)",
1582-
"$(inherited)",
1583-
);
15841564
GCC_PRECOMPILE_PREFIX_HEADER = YES;
15851565
GCC_PREFIX_HEADER = "OCMockTests/OCMockTests-Prefix.pch";
15861566
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -1609,10 +1589,6 @@
16091589
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
16101590
COMBINE_HIDPI_IMAGES = YES;
16111591
ENABLE_NS_ASSERTIONS = NO;
1612-
FRAMEWORK_SEARCH_PATHS = (
1613-
"$(DEVELOPER_FRAMEWORKS_DIR)",
1614-
"$(inherited)",
1615-
);
16161592
GCC_PRECOMPILE_PREFIX_HEADER = YES;
16171593
GCC_PREFIX_HEADER = "OCMockTests/OCMockTests-Prefix.pch";
16181594
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -1710,11 +1686,6 @@
17101686
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
17111687
CLANG_WARN_EMPTY_BODY = YES;
17121688
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1713-
FRAMEWORK_SEARCH_PATHS = (
1714-
"$(SDKROOT)/Developer/Library/Frameworks",
1715-
"$(inherited)",
1716-
"$(DEVELOPER_FRAMEWORKS_DIR)",
1717-
);
17181689
GCC_PRECOMPILE_PREFIX_HEADER = YES;
17191690
GCC_PREFIX_HEADER = "OCMockLibTests/OCMockLibTests-Prefix.pch";
17201691
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -1745,11 +1716,6 @@
17451716
CLANG_WARN_EMPTY_BODY = YES;
17461717
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
17471718
ENABLE_NS_ASSERTIONS = NO;
1748-
FRAMEWORK_SEARCH_PATHS = (
1749-
"$(SDKROOT)/Developer/Library/Frameworks",
1750-
"$(inherited)",
1751-
"$(DEVELOPER_FRAMEWORKS_DIR)",
1752-
);
17531719
GCC_PRECOMPILE_PREFIX_HEADER = YES;
17541720
GCC_PREFIX_HEADER = "OCMockLibTests/OCMockLibTests-Prefix.pch";
17551721
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;

Source/OCMock/OCMPassByRefSetter.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ - (void)dealloc
3737

3838
- (void)handleArgument:(id)arg
3939
{
40-
if([value isKindOfClass:[NSValue class]])
41-
[(NSValue *)value getValue:[arg pointerValue]];
42-
else
43-
*(id *)[arg pointerValue] = value;
40+
void *pointerValue = [arg pointerValue];
41+
if(pointerValue != NULL)
42+
{
43+
if([value isKindOfClass:[NSValue class]])
44+
[(NSValue *)value getValue:pointerValue];
45+
else
46+
*(id *)pointerValue = value;
47+
}
4448
}
4549

4650
@end

Source/OCMockTests/OCMockObjectTests.m

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,25 @@ - (void)doStuffWithBlock:(void (^)())block andString:(id)aString;
106106
@end
107107

108108

109+
@interface TestClassWithByReferenceMethod : NSObject
110+
111+
- (void)returnValuesInObjectPointer:(id *)objectPointer booleanPointer:(BOOL *)booleanPointer;
112+
113+
@end
114+
115+
@implementation TestClassWithByReferenceMethod
116+
117+
- (void)returnValuesInObjectPointer:(id *)objectPointer booleanPointer:(BOOL *)booleanPointer
118+
{
119+
if(objectPointer != NULL)
120+
*objectPointer = [[NSObject alloc] init];
121+
if(booleanPointer != NULL)
122+
*booleanPointer = NO;
123+
}
124+
125+
@end
126+
127+
109128
@interface NotificationRecorderForTesting : NSObject
110129
{
111130
@public
@@ -637,6 +656,15 @@ - (void)testReturnsValuesInNonObjectPassByReferenceArguments
637656
}
638657

639658

659+
- (void)testReturnsValuesInNullPassByReferenceArguments
660+
{
661+
mock = OCMClassMock([TestClassWithByReferenceMethod class]);
662+
OCMStub([mock returnValuesInObjectPointer:[OCMArg setTo:nil] booleanPointer:[OCMArg setToValue:@NO]]);
663+
[mock returnValuesInObjectPointer:NULL booleanPointer:NULL];
664+
OCMVerify([mock returnValuesInObjectPointer:NULL booleanPointer:NULL]);
665+
}
666+
667+
640668
// --------------------------------------------------------------------------------------
641669
// invoking block arguments
642670
// --------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)