changeset 27324:1dfd6ae74fbf

use GCB_ prefix for global listener_mode enum names * graphics.in.h (enum listener_mode): Use GCB_ prefix for value names to avoid conflict with PERSISTENT token ID used in the lexer. Note this is a temporary fix until proper scope for this enum can be determined. Change all uses.
author John W. Eaton <jwe@octave.org>
date Mon, 05 Aug 2019 10:29:21 -0500
parents 6b2d20317b26
children eddce82a57cc
files libinterp/corefcn/genprops.awk libinterp/corefcn/graphics.cc libinterp/corefcn/graphics.in.h
diffstat 3 files changed, 44 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/genprops.awk	Fri Aug 02 15:19:43 2019 -0500
+++ b/libinterp/corefcn/genprops.awk	Mon Aug 05 10:29:21 2019 -0500
@@ -397,7 +397,7 @@
         if (limits[i])
           printf ("        update_axis_limits (\"%s\");\n", name[i]);
         if (has_builtin_listeners)
-          printf ("        %s.run_listeners (POSTSET);\n", name[i]);
+          printf ("        %s.run_listeners (GCB_POSTSET);\n", name[i]);
         if (! mutable[i])
           printf ("        mark_modified ();\n");
         printf ("      }\n");
--- a/libinterp/corefcn/graphics.cc	Fri Aug 02 15:19:43 2019 -0500
+++ b/libinterp/corefcn/graphics.cc	Mon Aug 05 10:29:21 2019 -0500
@@ -1241,7 +1241,7 @@
 
       // run listeners
       if (do_run)
-        run_listeners (POSTSET);
+        run_listeners (GCB_POSTSET);
 
       return true;
     }
@@ -4190,7 +4190,7 @@
 
   if (modified)
     {
-      position.run_listeners (POSTSET);
+      position.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
 
@@ -6981,7 +6981,7 @@
   if (xticklabel.set (convert_ticklabel_string (val), false))
     {
       set_xticklabelmode ("manual");
-      xticklabel.run_listeners (POSTSET);
+      xticklabel.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
   else
@@ -6996,7 +6996,7 @@
   if (yticklabel.set (convert_ticklabel_string (val), false))
     {
       set_yticklabelmode ("manual");
-      yticklabel.run_listeners (POSTSET);
+      yticklabel.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
   else
@@ -7011,7 +7011,7 @@
   if (zticklabel.set (convert_ticklabel_string (val), false))
     {
       set_zticklabelmode ("manual");
-      zticklabel.run_listeners (POSTSET);
+      zticklabel.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
   else
@@ -10750,7 +10750,7 @@
 
   if (modified)
     {
-      position.run_listeners (POSTSET);
+      position.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
 }
@@ -10951,7 +10951,7 @@
 
   if (modified)
     {
-      position.run_listeners (POSTSET);
+      position.run_listeners (GCB_POSTSET);
       mark_modified ();
     }
 }
@@ -13400,13 +13400,13 @@
 
   graphics_object go = gh_manager::get_object (gh);
 
-  go.add_property_listener (pname, args(2), POSTSET);
+  go.add_property_listener (pname, args(2), GCB_POSTSET);
 
   if (args.length () == 4)
     {
       caseless_str persistent = args(3).string_value ();
       if (persistent.compare ("persistent"))
-        go.add_property_listener (pname, args(2), PERSISTENT);
+        go.add_property_listener (pname, args(2), GCB_PERSISTENT);
     }
 
   return ovl ();
@@ -13458,19 +13458,19 @@
   graphics_object go = gh_manager::get_object (gh);
 
   if (args.length () == 2)
-    go.delete_property_listener (pname, octave_value (), POSTSET);
+    go.delete_property_listener (pname, octave_value (), GCB_POSTSET);
   else
     {
       if (args(2).is_string ()
           && args(2).string_value () == "persistent")
         {
           go.delete_property_listener (pname, octave_value (),
-                                       PERSISTENT);
+                                       GCB_PERSISTENT);
           go.delete_property_listener (pname, octave_value (),
-                                       POSTSET);
+                                       GCB_POSTSET);
         }
       else
-        go.delete_property_listener (pname, args(2), POSTSET);
+        go.delete_property_listener (pname, args(2), GCB_POSTSET);
     }
 
   return ovl ();
@@ -13633,7 +13633,7 @@
 
 static void
 do_cleanup_waitfor_listener (const octave_value& listener,
-                             listener_mode mode = POSTSET)
+                             listener_mode mode = GCB_POSTSET)
 {
   Cell c = listener.cell_value ();
 
@@ -13655,9 +13655,9 @@
             {
               go.get_properties ().delete_listener (pname, listener, mode);
 
-              if (mode == POSTSET)
+              if (mode == GCB_POSTSET)
                 go.get_properties ().delete_listener (pname, listener,
-                                                      PERSISTENT);
+                                                      GCB_PERSISTENT);
             }
         }
     }
@@ -13665,11 +13665,11 @@
 
 static void
 cleanup_waitfor_postset_listener (const octave_value& listener)
-{ do_cleanup_waitfor_listener (listener, POSTSET); }
+{ do_cleanup_waitfor_listener (listener, GCB_POSTSET); }
 
 static void
 cleanup_waitfor_predelete_listener (const octave_value& listener)
-{ do_cleanup_waitfor_listener (listener, PREDELETE); }
+{ do_cleanup_waitfor_listener (listener, GCB_PREDELETE); }
 
 DECLARE_STATIC_FUNX (waitfor_listener, args, )
 {
@@ -13848,8 +13848,8 @@
                 {
 
                   frame.add_fcn (cleanup_waitfor_postset_listener, ov_listener);
-                  go.add_property_listener (pname, ov_listener, POSTSET);
-                  go.add_property_listener (pname, ov_listener, PERSISTENT);
+                  go.add_property_listener (pname, ov_listener, GCB_POSTSET);
+                  go.add_property_listener (pname, ov_listener, GCB_PERSISTENT);
 
                   if (go.get_properties ().has_dynamic_property (pname))
                     {
@@ -13873,7 +13873,7 @@
                       frame.add_fcn (cleanup_waitfor_predelete_listener,
                                      ov_del_listener);
                       go.add_property_listener (pname, ov_del_listener,
-                                                PREDELETE);
+                                                GCB_PREDELETE);
                     }
                 }
             }
--- a/libinterp/corefcn/graphics.in.h	Fri Aug 02 15:19:43 2019 -0500
+++ b/libinterp/corefcn/graphics.in.h	Mon Aug 05 10:29:21 2019 -0500
@@ -266,7 +266,12 @@
 
 class property;
 
-enum listener_mode { POSTSET, PERSISTENT, PREDELETE };
+// FIXME: These values should probably be defined inside a namespace or
+// class, but which one is most appropriate?  For now, prefix with
+// "GCB_" to avoid conflict with PERSISTENT token ID used in the lexer.
+// The lexer token IDs should probably also be fixed...
+
+enum listener_mode { GCB_POSTSET, GCB_PERSISTENT, GCB_PREDELETE };
 
 class base_property
 {
@@ -335,14 +340,14 @@
     return *this;
   }
 
-  void add_listener (const octave_value& v, listener_mode mode = POSTSET)
+  void add_listener (const octave_value& v, listener_mode mode = GCB_POSTSET)
   {
     octave_value_list& l = listeners[mode];
     l.resize (l.length () + 1, v);
   }
 
   void delete_listener (const octave_value& v = octave_value (),
-                        listener_mode mode = POSTSET)
+                        listener_mode mode = GCB_POSTSET)
   {
     octave_value_list& l = listeners[mode];
 
@@ -369,12 +374,12 @@
       }
     else
       {
-        if (mode == PERSISTENT)
+        if (mode == GCB_PERSISTENT)
           l.resize (0);
         else
           {
             octave_value_list lnew (0);
-            octave_value_list& lp = listeners[PERSISTENT];
+            octave_value_list& lp = listeners[GCB_PERSISTENT];
             for (int i = l.length () - 1; i >= 0 ; i--)
               {
                 for (int j = 0; j < lp.length (); j++)
@@ -392,7 +397,7 @@
 
   }
 
-  OCTINTERP_API void run_listeners (listener_mode mode = POSTSET);
+  OCTINTERP_API void run_listeners (listener_mode mode = GCB_POSTSET);
 
   virtual base_property * clone (void) const
   { return new base_property (*this); }
@@ -2018,14 +2023,14 @@
     return *this;
   }
 
-  void add_listener (const octave_value& v, listener_mode mode = POSTSET)
+  void add_listener (const octave_value& v, listener_mode mode = GCB_POSTSET)
   { rep->add_listener (v, mode); }
 
   void delete_listener (const octave_value& v = octave_value (),
-                        listener_mode mode = POSTSET)
+                        listener_mode mode = GCB_POSTSET)
   { rep->delete_listener (v, mode); }
 
-  void run_listeners (listener_mode mode = POSTSET)
+  void run_listeners (listener_mode mode = GCB_POSTSET)
   { rep->run_listeners (mode); }
 
   OCTINTERP_API static
@@ -2262,10 +2267,10 @@
   virtual void update_autopos (const std::string& elem_type);
 
   virtual void add_listener (const caseless_str&, const octave_value&,
-                             listener_mode = POSTSET);
+                             listener_mode = GCB_POSTSET);
 
   virtual void delete_listener (const caseless_str&, const octave_value&,
-                                listener_mode = POSTSET);
+                                listener_mode = GCB_POSTSET);
 
   void set_tag (const octave_value& val) { tag = val; }
 
@@ -2618,7 +2623,7 @@
 
   virtual void add_property_listener (const std::string& nm,
                                       const octave_value& v,
-                                      listener_mode mode = POSTSET)
+                                      listener_mode mode = GCB_POSTSET)
   {
     if (valid_object ())
       get_properties ().add_listener (nm, v, mode);
@@ -2626,7 +2631,7 @@
 
   virtual void delete_property_listener (const std::string& nm,
                                          const octave_value& v,
-                                         listener_mode mode = POSTSET)
+                                         listener_mode mode = GCB_POSTSET)
   {
     if (valid_object ())
       get_properties ().delete_listener (nm, v, mode);
@@ -2858,11 +2863,11 @@
   graphics_toolkit get_toolkit (void) const { return rep->get_toolkit (); }
 
   void add_property_listener (const std::string& nm, const octave_value& v,
-                              listener_mode mode = POSTSET)
+                              listener_mode mode = GCB_POSTSET)
   { rep->add_property_listener (nm, v, mode); }
 
   void delete_property_listener (const std::string& nm, const octave_value& v,
-                                 listener_mode mode = POSTSET)
+                                 listener_mode mode = GCB_POSTSET)
   { rep->delete_property_listener (nm, v, mode); }
 
   void remove_all_listeners (void) { rep->remove_all_listeners (); }
@@ -4048,7 +4053,7 @@
 
     void update___colormap__ (void)
     {
-      colormap.run_listeners (POSTSET);
+      colormap.run_listeners (GCB_POSTSET);
     }
 
     octave_value get_colormap (void) const;
@@ -4330,7 +4335,7 @@
         {
           set_positionmode ("manual");
           update_position ();
-          position.run_listeners (POSTSET);
+          position.run_listeners (GCB_POSTSET);
           mark_modified ();
         }
       else