Procházet zdrojové kódy

[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.
Hiroshi Ichikawa před 7 roky
rodič
revize
7d978084ca
1 změnil soubory, kde provedl 3 přidání a 3 odebrání
  1. 3 3
      objectivec/GPBCodedInputStream.m

+ 3 - 3
objectivec/GPBCodedInputStream.m

@@ -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) {