diff mbox

[libstdc++] Refactor python/hook.in

Message ID CAGyQ6gyqMPZyJMN6326qtAzSTAAc1azodk5Jx3ZtMoFYM5puOQ@mail.gmail.com
State New
Headers show

Commit Message

Siva Chandra Sept. 29, 2014, 1:02 p.m. UTC
The attached patch refactors python/hook.in so that there are no
individual function calls to load pretty printers and xmethods. This
was suggested by Tom here:
https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02589.html. He indicates
that it is better to put as little as possible in the hook file. The
attached patch removes all code which explicitly loads the hooks from
hook.in.

2014-09-29  Siva Chandra Reddy  <sivachandra@google.com>

        * python/hook.in: Only import libstdcxx.v6.
        * python/libstdcxx/v6/__init__.py: Load printers and xmethods.

Comments

Jonathan Wakely Sept. 29, 2014, 1:11 p.m. UTC | #1
On 29/09/14 06:02 -0700, Siva Chandra wrote:
>The attached patch refactors python/hook.in so that there are no
>individual function calls to load pretty printers and xmethods. This
>was suggested by Tom here:
>https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02589.html. He indicates
>that it is better to put as little as possible in the hook file. The
>attached patch removes all code which explicitly loads the hooks from
>hook.in.

This looks good to me, thanks.

I'll commit it later this week unless I hear objections from Tom.
Tom Tromey Sept. 29, 2014, 2:50 p.m. UTC | #2
Jonathan> I'll commit it later this week unless I hear objections from
Jonathan> Tom.

It looks reasonable to me.

Tom
Jonathan Wakely Sept. 30, 2014, 3:34 p.m. UTC | #3
On 29/09/14 14:11 +0100, Jonathan Wakely wrote:
>On 29/09/14 06:02 -0700, Siva Chandra wrote:
>>The attached patch refactors python/hook.in so that there are no
>>individual function calls to load pretty printers and xmethods. This
>>was suggested by Tom here:
>>https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02589.html. He indicates
>>that it is better to put as little as possible in the hook file. The
>>attached patch removes all code which explicitly loads the hooks from
>>hook.in.
>
>This looks good to me, thanks.
>
>I'll commit it later this week unless I hear objections from Tom.

Committed to trunk - thanks for the patch.
diff mbox

Patch

diff --git a/libstdc++-v3/python/hook.in b/libstdc++-v3/python/hook.in
index aeb1cdb..30cf538 100644
--- a/libstdc++-v3/python/hook.in
+++ b/libstdc++-v3/python/hook.in
@@ -55,18 +55,4 @@  if gdb.current_objfile () is not None:
     if not dir_ in sys.path:
         sys.path.insert(0, dir_)
 
-# Load the pretty-printers.
-from libstdcxx.v6.printers import register_libstdcxx_printers
-register_libstdcxx_printers (gdb.current_objfile ())
-
-# Load the xmethods if GDB supports them.
-def gdb_has_xmethods():
-    try:
-        import gdb.xmethod
-        return True
-    except ImportError:
-        return False
-
-if gdb_has_xmethods():
-    from libstdcxx.v6.xmethods import register_libstdcxx_xmethods
-    register_libstdcxx_xmethods (gdb.current_objfile ())
+import libstdcxx.v6
diff --git a/libstdc++-v3/python/libstdcxx/v6/__init__.py b/libstdc++-v3/python/libstdcxx/v6/__init__.py
index 8b13789..59c1f27 100644
--- a/libstdc++-v3/python/libstdcxx/v6/__init__.py
+++ b/libstdc++-v3/python/libstdcxx/v6/__init__.py
@@ -1 +1,32 @@ 
+# Copyright (C) 2014 Free Software Foundation, Inc.
 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+# Load the pretty-printers.
+from printers import register_libstdcxx_printers
+register_libstdcxx_printers(gdb.current_objfile())
+
+# Load the xmethods if GDB supports them.
+def gdb_has_xmethods():
+    try:
+        import gdb.xmethod
+        return True
+    except ImportError:
+        return False
+
+if gdb_has_xmethods():
+    from xmethods import register_libstdcxx_xmethods
+    register_libstdcxx_xmethods(gdb.current_objfile())