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

Unified Diff: ui/base/glib/glib_signal.h

Issue 8523019: Devirtualize CHROMEG_CALLBACK (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 1 month 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 | « ui/base/clipboard/clipboard_gtk.cc ('k') | ui/base/gtk/gtk_signal.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/glib/glib_signal.h
diff --git a/ui/base/glib/glib_signal.h b/ui/base/glib/glib_signal.h
index 63b93066ba7cae5f02bba2214704a5000a1ae36d..b99a69e2e41298b3afbf5fdec63a6e31d7df143b 100644
--- a/ui/base/glib/glib_signal.h
+++ b/ui/base/glib/glib_signal.h
@@ -26,7 +26,7 @@ typedef void* gpointer;
return reinterpret_cast<CLASS*>(userdata)->METHOD(sender); \
} \
\
- virtual RETURN METHOD(SENDER);
+ RETURN METHOD(SENDER);
#define CHROMEG_CALLBACK_1(CLASS, RETURN, METHOD, SENDER, ARG1) \
static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, \
@@ -34,7 +34,7 @@ typedef void* gpointer;
return reinterpret_cast<CLASS*>(userdata)->METHOD(sender, one); \
} \
\
- virtual RETURN METHOD(SENDER, ARG1);
+ RETURN METHOD(SENDER, ARG1);
#define CHROMEG_CALLBACK_2(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2) \
static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
@@ -42,7 +42,7 @@ typedef void* gpointer;
return reinterpret_cast<CLASS*>(userdata)->METHOD(sender, one, two); \
} \
\
- virtual RETURN METHOD(SENDER, ARG1, ARG2);
+ RETURN METHOD(SENDER, ARG1, ARG2);
#define CHROMEG_CALLBACK_3(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, ARG3) \
static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
@@ -51,7 +51,7 @@ typedef void* gpointer;
METHOD(sender, one, two, three); \
} \
\
- virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3);
+ RETURN METHOD(SENDER, ARG1, ARG2, ARG3);
#define CHROMEG_CALLBACK_4(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, ARG3, \
ARG4) \
@@ -62,7 +62,7 @@ typedef void* gpointer;
METHOD(sender, one, two, three, four); \
} \
\
- virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4);
+ RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4);
#define CHROMEG_CALLBACK_5(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, ARG3, \
ARG4, ARG5) \
@@ -73,7 +73,7 @@ typedef void* gpointer;
METHOD(sender, one, two, three, four, five); \
} \
\
- virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4, ARG5);
+ RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4, ARG5);
#define CHROMEG_CALLBACK_6(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, ARG3, \
ARG4, ARG5, ARG6) \
@@ -84,6 +84,72 @@ typedef void* gpointer;
METHOD(sender, one, two, three, four, five, six); \
} \
\
+ RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
+
+#define CHROMEG_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD, SENDER) \
+ static RETURN METHOD ## Thunk(SENDER sender, gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)->METHOD(sender); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER);
+
+#define CHROMEG_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, SENDER, ARG1) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, \
+ gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)->METHOD(sender, one); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER, ARG1);
+
+#define CHROMEG_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
+ gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)->METHOD(sender, one, two); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER, ARG1, ARG2);
+
+#define CHROMEG_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, \
+ ARG3) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
+ ARG3 three, gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)-> \
+ METHOD(sender, one, two, three); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3);
+
+#define CHROMEG_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, \
+ ARG3, ARG4) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
+ ARG3 three, ARG4 four, \
+ gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)-> \
+ METHOD(sender, one, two, three, four); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4);
+
+#define CHROMEG_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, \
+ ARG3, ARG4, ARG5) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
+ ARG3 three, ARG4 four, ARG5 five, \
+ gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)-> \
+ METHOD(sender, one, two, three, four, five); \
+ } \
+ \
+ virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4, ARG5);
+
+#define CHROMEG_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, SENDER, ARG1, ARG2, \
+ ARG3, ARG4, ARG5, ARG6) \
+ static RETURN METHOD ## Thunk(SENDER sender, ARG1 one, ARG2 two, \
+ ARG3 three, ARG4 four, ARG5 five, \
+ ARG6 six, gpointer userdata) { \
+ return reinterpret_cast<CLASS*>(userdata)-> \
+ METHOD(sender, one, two, three, four, five, six); \
+ } \
+ \
virtual RETURN METHOD(SENDER, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
#endif
« no previous file with comments | « ui/base/clipboard/clipboard_gtk.cc ('k') | ui/base/gtk/gtk_signal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698