changeset 30504:cd5836f814b8

maint: merge stable to default.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 17 Dec 2021 19:41:48 +0100
parents 6e8a4dacc014 (current diff) 838e73617671 (diff)
children 07ac55628691
files libinterp/octave-value/cdef-class.h libinterp/octave-value/cdef-object.h libinterp/octave-value/cdef-package.h
diffstat 9 files changed, 60 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/octave-value/cdef-class.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-class.h	Fri Dec 17 19:41:48 2021 +0100
@@ -34,6 +34,7 @@
 
 #include "oct-refcount.h"
 
+#include "cdef-fwd.h"
 #include "cdef-method.h"
 #include "cdef-object.h"
 #include "cdef-package.h"
@@ -48,6 +49,7 @@
   class tree_classdef;
 
   class
+  OCTINTERP_API
   cdef_class : public cdef_meta_object
   {
   private:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libinterp/octave-value/cdef-fwd.h	Fri Dec 17 19:41:48 2021 +0100
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2021 The Octave Project Developers
+//
+// See the file COPYRIGHT.md in the top-level directory of this
+// distribution or <https://octave.org/copyright/>.
+//
+// This file is part of Octave.
+//
+// Octave 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.
+//
+// Octave 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 Octave; see the file COPYING.  If not, see
+// <https://www.gnu.org/licenses/>.
+//
+////////////////////////////////////////////////////////////////////////
+
+#if ! defined (octave_cdef_fwd_h)
+#define octave_cdef_fwd_h 1
+
+#include "octave-config.h"
+
+namespace octave
+{
+  class OCTINTERP_API cdef_class;
+  class OCTINTERP_API cdef_object;
+  class OCTINTERP_API cdef_package;
+}
+
+#endif
--- a/libinterp/octave-value/cdef-manager.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-manager.h	Fri Dec 17 19:41:48 2021 +0100
@@ -29,6 +29,7 @@
 #include "octave-config.h"
 
 #include "cdef-class.h"
+#include "cdef-fwd.h"
 #include "cdef-method.h"
 #include "cdef-package.h"
 #include "cdef-property.h"
@@ -38,7 +39,9 @@
 {
   class interpreter;
 
-  class cdef_manager
+  class
+  OCTINTERP_API
+  cdef_manager
   {
   public:
 
--- a/libinterp/octave-value/cdef-method.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-method.h	Fri Dec 17 19:41:48 2021 +0100
@@ -40,6 +40,7 @@
 namespace octave
 {
   class
+  OCTINTERP_API
   cdef_method : public cdef_meta_object
   {
     friend class cdef_class;
--- a/libinterp/octave-value/cdef-object.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-object.h	Fri Dec 17 19:41:48 2021 +0100
@@ -33,6 +33,7 @@
 
 #include "oct-refcount.h"
 
+#include "cdef-fwd.h"
 #include "error.h"
 #include "oct-map.h"
 #include "ov.h"
@@ -40,9 +41,6 @@
 
 namespace octave
 {
-  class cdef_object;
-  class cdef_class;
-
   // This is mainly a bootstrap class to declare the expected interface.
   // The actual base class is cdef_class_base, which is declared after
   // cdef_object, such that it can contain cdef_object objects.
@@ -201,6 +199,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_object
   {
   public:
@@ -352,6 +351,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_object_base : public cdef_object_rep
   {
   public:
@@ -389,6 +389,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_object_array : public cdef_object_base
   {
   public:
@@ -456,6 +457,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_object_scalar : public cdef_object_base
   {
   public:
@@ -542,6 +544,7 @@
   };
 
   class
+  OCTINTERP_API
   handle_cdef_object : public cdef_object_scalar
   {
   public:
@@ -577,6 +580,7 @@
   };
 
   class
+  OCTINTERP_API
   value_cdef_object : public cdef_object_scalar
   {
   public:
@@ -607,6 +611,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_meta_object_rep : public handle_cdef_object
   {
   public:
@@ -654,6 +659,7 @@
   };
 
   class
+  OCTINTERP_API
   cdef_meta_object : public cdef_object
   {
   public:
--- a/libinterp/octave-value/cdef-package.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-package.h	Fri Dec 17 19:41:48 2021 +0100
@@ -34,6 +34,7 @@
 
 #include "oct-refcount.h"
 
+#include "cdef-fwd.h"
 #include "cdef-object.h"
 #include "ov.h"
 
@@ -42,6 +43,7 @@
   class interpreter;
 
   class
+  OCTINTERP_API
   cdef_package : public cdef_meta_object
   {
     friend class cdef_class;
--- a/libinterp/octave-value/cdef-property.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-property.h	Fri Dec 17 19:41:48 2021 +0100
@@ -41,6 +41,7 @@
 namespace octave
 {
   class
+  OCTINTERP_API
   cdef_property : public cdef_meta_object
   {
     friend class cdef_class;
--- a/libinterp/octave-value/cdef-utils.h	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/cdef-utils.h	Fri Dec 17 19:41:48 2021 +0100
@@ -31,14 +31,13 @@
 #include <list>
 #include <string>
 
+#include "cdef-fwd.h"
+
 class octave_value;
 class Cell;
 
 namespace octave
 {
-  class cdef_class;
-  class cdef_package;
-
   extern OCTINTERP_API std::string
   get_base_name (const std::string& nm);
 
--- a/libinterp/octave-value/module.mk	Thu Dec 16 23:06:35 2021 +0100
+++ b/libinterp/octave-value/module.mk	Fri Dec 17 19:41:48 2021 +0100
@@ -19,6 +19,7 @@
 
 OCTAVE_VALUE_INC = \
   %reldir%/cdef-class.h \
+  %reldir%/cdef-fwd.h \
   %reldir%/cdef-manager.h \
   %reldir%/cdef-method.h \
   %reldir%/cdef-object.h \