Obj-C Exceptions In Gecko: Difference between revisions

m
No edit summary
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Turns out that Objective-C exceptions and XPCOM don't interact very well.
See [https://bugzilla.mozilla.org/show_bug.cgi?id=163260 bug 163260].
See [https://bugzilla.mozilla.org/show_bug.cgi?id=163260 bug 163260].


Line 65: Line 63:
-Josh Aas
-Josh Aas


Note that -fobjc-extensions needs to be passed to the compiler. This is already being done for widget/src/cocoa; a forthcoming patch will ensure that it gets passed to all .m and .mm files in the tree.
Note that -fobjc-extensions needs to be passed to the compiler. This is already being done for widget/src/cocoa.


-Stan
-Stan
Line 74: Line 72:


* toolkit {{bug|417566}}
* toolkit {{bug|417566}}
** /toolkit/xre/nsNativeAppSupportCocoa.mm
** <strike>/toolkit/xre/nsNativeAppSupportCocoa.mm</strike>
** /toolkit/xre/MacApplicationDelegate.mm
** <strike>/toolkit/xre/MacApplicationDelegate.mm</strike>
** /toolkit/crashreporter/mac_utils.mm
** <strike>/toolkit/crashreporter/mac_utils.mm</strike>
** /toolkit/crashreporter/google-breakpad/src/tools/mac/crash_report/on_demand_symbol_supplier.mm
** /toolkit/crashreporter/google-breakpad/src/tools/mac/crash_report/on_demand_symbol_supplier.mm
** /toolkit/crashreporter/google-breakpad/src/tools/mac/crash_report/crash_report.mm
** /toolkit/crashreporter/google-breakpad/src/tools/mac/crash_report/crash_report.mm
Line 84: Line 82:
** /toolkit/crashreporter/google-breakpad/src/tools/mac/symupload/minidump_upload.m
** /toolkit/crashreporter/google-breakpad/src/tools/mac/symupload/minidump_upload.m
** /toolkit/crashreporter/google-breakpad/src/common/mac/HTTPMultipartUpload.m
** /toolkit/crashreporter/google-breakpad/src/common/mac/HTTPMultipartUpload.m
** /toolkit/crashreporter/client/crashreporter_osx.mm
** <strike>/toolkit/crashreporter/client/crashreporter_osx.mm</strike> not needed
** /toolkit/mozapps/update/src/updater/progressui_osx.mm
** <strike>/toolkit/mozapps/update/src/updater/progressui_osx.mm</strike> not needed
** /toolkit/mozapps/update/src/updater/launchchild_osx.mm
** <strike>/toolkit/mozapps/update/src/updater/launchchild_osx.mm</strike> not needed
** /toolkit/components/alerts/src/mac/mozGrowlDelegate.mm
** <strike>/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm</strike>
** /toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.mm
** <strike>/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.mm</strike>
** /toolkit/components/alerts/src/mac/nsAlertsService.mm
** <strike>/toolkit/components/alerts/src/mac/nsAlertsService.mm</strike>
** /toolkit/components/alerts/src/mac/nsNotificationsList.mm
** <strike>/toolkit/components/alerts/src/mac/nsNotificationsList.mm</strike>
** /toolkit/components/alerts/src/mac/growl/NSURLAdditions.m
** /toolkit/components/alerts/src/mac/growl/NSURLAdditions.m
** /toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.m
** /toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.m
** /toolkit/components/alerts/src/mac/growl/GrowlPathUtil.m
** /toolkit/components/alerts/src/mac/growl/GrowlPathUtil.m
** /toolkit/xre/MacLaunchHelper.m
** <strike>/toolkit/xre/MacLaunchHelper.m</strike>
* widget {{bug|417558}}
* widget {{bug|417558}}
** /widget/src/cocoa/nsDeviceContextSpecX.mm
** <strike>/widget/src/cocoa/nsDeviceContextSpecX.mm</strike>
** /widget/src/cocoa/nsIdleServiceX.mm
** <strike>/widget/src/cocoa/nsIdleServiceX.mm</strike>
** /widget/src/cocoa/nsCocoaWindow.mm
** <strike>/widget/src/cocoa/nsCocoaWindow.mm</strike>
** /widget/src/cocoa/nsMenuX.mm
** <strike>/widget/src/cocoa/nsMenuX.mm</strike>
** /widget/src/cocoa/nsPrintOptionsX.mm
** <strike>/widget/src/cocoa/nsPrintOptionsX.mm</strike>
** /widget/src/cocoa/nsToolkit.mm
** <strike>/widget/src/cocoa/nsToolkit.mm</strike>
** /widget/src/cocoa/nsPrintSessionX.mm
** <strike>/widget/src/cocoa/nsPrintSessionX.mm</strike>
** /widget/src/cocoa/nsNativeThemeCocoa.mm
** <strike>/widget/src/cocoa/nsNativeThemeCocoa.mm</strike>
** /widget/src/cocoa/nsPrintSettingsX.mm
** <strike>/widget/src/cocoa/nsPrintSettingsX.mm</strike>
** /widget/src/cocoa/nsMenuItemIconX.mm
** <strike>/widget/src/cocoa/nsMenuItemIconX.mm</strike>
** /widget/src/cocoa/nsFilePicker.mm
** <strike>/widget/src/cocoa/nsFilePicker.mm</strike>
** /widget/src/cocoa/nsScreenManagerCocoa.mm
** <strike>/widget/src/cocoa/nsScreenManagerCocoa.mm</strike>
** /widget/src/cocoa/nsMacCursor.mm
** <strike>/widget/src/cocoa/nsMacCursor.mm</strike>
** <strike>/widget/src/cocoa/nsBidiKeyboard.mm</strike>
** <strike>/widget/src/cocoa/nsBidiKeyboard.mm</strike>
** /widget/src/cocoa/nsMenuItemX.mm
** <strike>/widget/src/cocoa/nsMenuItemX.mm</strike>
** <strike>/widget/src/cocoa/nsAppShell.mm</strike>
** <strike>/widget/src/cocoa/nsAppShell.mm</strike>
** <strike>/widget/src/cocoa/nsClipboard.mm</strike>
** <strike>/widget/src/cocoa/nsClipboard.mm</strike>
** /widget/src/cocoa/nsScreenCocoa.mm
** <strike>/widget/src/cocoa/nsScreenCocoa.mm</strike>
** /widget/src/cocoa/nsDragService.mm
** <strike>/widget/src/cocoa/nsDragService.mm</strike>
** /widget/src/cocoa/nsCursorManager.mm
** <strike>/widget/src/cocoa/nsCursorManager.mm</strike>
** /widget/src/cocoa/nsChildView.mm
** <strike>/widget/src/cocoa/nsChildView.mm</strike>
** <strike>/widget/src/cocoa/nsCocoaUtils.mm</strike>
** <strike>/widget/src/cocoa/nsCocoaUtils.mm</strike>
** /widget/src/cocoa/nsWindowMap.mm
** <strike>/widget/src/cocoa/nsWindowMap.mm</strike>
** /widget/src/cocoa/nsMenuBarX.mm
** <strike>/widget/src/cocoa/nsMenuBarX.h</strike>
** /widget/src/cocoa/nsWidgetFactory.mm
** <strike>/widget/src/cocoa/nsMenuBarX.mm</strike>
** /widget/src/cocoa/nsLookAndFeel.mm
** <strike>/widget/src/cocoa/nsWidgetFactory.mm</strike>
** /widget/src/cocoa/nsSound.mm
** <strike>/widget/src/cocoa/nsLookAndFeel.mm</strike>
** <strike>/widget/src/cocoa/nsSound.mm</strike>
* extensions {{bug|417563}}
* extensions {{bug|417563}}
** /extensions/spellcheck/osxspell/src/mozOSXSpell.mm
** <strike>/extensions/spellcheck/osxspell/src/mozOSXSpell.mm</strike>
** /extensions/java/xpcom/src/MacJawt.mm
** <strike>/extensions/java/xpcom/src/MacJawt.mm</strike> not needed
* accessible {{bug|417564}}
* accessible {{bug|417564}}
** /accessible/src/mac/mozDocAccessible.mm
** <strike>/accessible/src/mac/mozDocAccessible.mm</strike>
** /accessible/src/mac/nsAccessNodeWrap.mm
** <strike>/accessible/src/mac/nsAccessNodeWrap.mm</strike>
** /accessible/src/mac/mozActionElements.mm
** <strike>/accessible/src/mac/mozActionElements.mm</strike>
** /accessible/src/mac/nsAccessibleWrap.mm
** <strike>/accessible/src/mac/nsAccessibleWrap.mm</strike>
** /accessible/src/mac/mozAccessible.mm
** <strike>/accessible/src/mac/mozAccessible.mm</strike>
** /accessible/src/mac/mozTextAccessible.mm
** <strike>/accessible/src/mac/mozTextAccessible.mm</strike>
** /accessible/src/mac/nsRootAccessibleWrap.mm
** <strike>/accessible/src/mac/nsRootAccessibleWrap.mm</strike>
* gfx {{bug|417560}}
* gfx {{bug|417560}}
** /gfx/src/mac/nsCocoaImageUtils.mm
** <strike>/gfx/src/mac/nsCocoaImageUtils.mm</strike> not used
** <strike>/gfx/thebes/test/gfxTestCocoaHelper.mm</strike> (test file only)
** <strike>/gfx/thebes/test/gfxTestCocoaHelper.mm</strike> test file only
** /gfx/thebes/src/gfxQuartzFontCache.mm
** /gfx/thebes/src/gfxQuartzFontCache.mm
* modules {{bug|417562}}
* modules {{bug|417562}}
** /modules/libpr0n/decoders/icon/mac/nsIconChannelCocoa.mm
** <strike>/modules/libpr0n/decoders/icon/mac/nsIconChannelCocoa.mm</strike>
测试一下 呵呵呵
2

edits