[objectivec] Fix memory leak of exceptions raised by RaiseException() (#4556)

* Fix memory leak of exceptions raised by RaiseException()

Currently exceptions raised by RaiseException() is never deallocated because:

* ARC is disabled for this library: https://github.com/google/protobuf/blob/master/BUILD#L913
* It is constructed with `+alloc` but is never `-release`d.

This change fixes the issue by using `-[NSException exceptionWithName:...]` instead, which returns an autoreleased instance, so it is deallocated properly.

* Fix format.
This commit is contained in:
Hiroshi Ichikawa 2018-05-01 00:44:41 +09:00 committed by Thomas Van Lenten
parent fc922d16ed
commit 7d978084ca

View File

@ -63,9 +63,9 @@ static void RaiseException(NSInteger code, NSString *reason) {
NSDictionary *exceptionInfo =
@{ GPBCodedInputStreamUnderlyingErrorKey: error };
[[[NSException alloc] initWithName:GPBCodedInputStreamException
reason:reason
userInfo:exceptionInfo] raise];
[[NSException exceptionWithName:GPBCodedInputStreamException
reason:reason
userInfo:exceptionInfo] raise];
}
static void CheckRecursionLimit(GPBCodedInputStreamState *state) {