Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(391)

Unified Diff: third_party/ocmock/OCMock/OCMReturnValueProvider.m

Issue 2410583002: Test update OCMock (Closed)
Patch Set: Patch in exactly 3.1.5 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/ocmock/OCMock/OCMReturnValueProvider.h ('k') | third_party/ocmock/OCMock/OCMStubRecorder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/ocmock/OCMock/OCMReturnValueProvider.m
diff --git a/third_party/ocmock/OCMock/OCMReturnValueProvider.m b/third_party/ocmock/OCMock/OCMReturnValueProvider.m
index d98b59c9956b19d5aa1bfc279e0d7ae30ded125d..c763cf611a5be6dd944ccb6406ef4066bc8b5e05 100644
--- a/third_party/ocmock/OCMock/OCMReturnValueProvider.m
+++ b/third_party/ocmock/OCMock/OCMReturnValueProvider.m
@@ -1,19 +1,31 @@
-//---------------------------------------------------------------------------------------
-// $Id$
-// Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ * Copyright (c) 2009-2015 Erik Doernenburg and contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use these files except in compliance with the License. You may obtain
+ * a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
#import "NSMethodSignature+OCMAdditions.h"
#import "OCMReturnValueProvider.h"
-
+#import "OCMFunctions.h"
@implementation OCMReturnValueProvider
-- (id)initWithValue:(id)aValue
-{
- self = [super init];
- returnValue = [aValue retain];
- return self;
+- (instancetype)initWithValue:(id)aValue {
+ if ((self = [super init])) {
+ returnValue = [aValue retain];
+ }
+
+ return self;
}
- (void)dealloc
@@ -24,10 +36,20 @@
- (void)handleInvocation:(NSInvocation *)anInvocation
{
- const char *returnType = [[anInvocation methodSignature] methodReturnTypeWithoutQualifiers];
- if(strcmp(returnType, @encode(id)) != 0)
- @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Expected invocation with object return type. Did you mean to use andReturnValue: instead?" userInfo:nil];
- [anInvocation setReturnValue:&returnValue];
+ if (!OCMIsObjectType([[anInvocation methodSignature] methodReturnType])) {
+ @throw [NSException
+ exceptionWithName:NSInvalidArgumentException
+ reason:@"Expected invocation with object return type. Did "
+ @"you mean to use andReturnValue: instead?"
+ userInfo:nil];
+ }
+ NSString* sel = NSStringFromSelector([anInvocation selector]);
+ if ([sel hasPrefix:@"alloc"] || [sel hasPrefix:@"new"] ||
+ [sel hasPrefix:@"copy"] || [sel hasPrefix:@"mutableCopy"]) {
+ // methods that "create" an object return it with an extra retain count
+ [returnValue retain];
+ }
+ [anInvocation setReturnValue:&returnValue];
}
@end
« no previous file with comments | « third_party/ocmock/OCMock/OCMReturnValueProvider.h ('k') | third_party/ocmock/OCMock/OCMStubRecorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698