OLD | NEW |
| (Empty) |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CHROME_BROWSER_UI_COCOA_OBJC_METHOD_SWIZZLE_H_ | |
6 #define CHROME_BROWSER_UI_COCOA_OBJC_METHOD_SWIZZLE_H_ | |
7 #pragma once | |
8 | |
9 #import <objc/objc-class.h> | |
10 | |
11 // You should think twice every single time you use anything from this | |
12 // namespace. | |
13 namespace ObjcEvilDoers { | |
14 | |
15 // This is similar to class_getInstanceMethod(), except that it | |
16 // returns NULL if |aClass| does not directly implement |aSelector|. | |
17 Method GetImplementedInstanceMethod(Class aClass, SEL aSelector); | |
18 | |
19 // Exchanges the implementation of |originalSelector| and | |
20 // |alternateSelector| within |aClass|. Both selectors must be | |
21 // implemented directly by |aClass|, not inherited. The IMP returned | |
22 // is for |originalSelector| (for purposes of forwarding). | |
23 IMP SwizzleImplementedInstanceMethods( | |
24 Class aClass, const SEL originalSelector, const SEL alternateSelector); | |
25 | |
26 } // namespace ObjcEvilDoers | |
27 | |
28 #endif // CHROME_BROWSER_UI_COCOA_OBJC_METHOD_SWIZZLE_H_ | |
OLD | NEW |