Help needed: please try the attached patch with GCC 2.95



Hi,

As some of you may have seen in the release notes for some previous
versions of orbitcpp, we're having some problems with the 'void length
(int)' vs 'int length ()' members of sequences with various compilers. I
need YOUR help in solving this.

If you're using GCC 2.95 (or any other C++ compiler but GCC 3.x) please
try the attached patch against CVS HEAD and send success/failure reports
of building the 'test/cpp/sequences/atomic_types' test code after running
make install.

Thanks,
	Gergo

-- 
   .--= ULLA! =---------------------.   `We are not here to give users what
   \     http://cactus.rulez.org     \   they want'  -- RMS, at GUADEC 2001
    `---= cactus cactus rulez org =---'
There's nothing wrong with Doubles_ace fŘ8637üĄŚü-?7˛63x-
? Makefile
? Makefile.in
? smartpointers/Makefile
? smartpointers/Makefile.in
Index: orbitcpp_compound_seq.h
===================================================================
RCS file: /cvs/gnome/orbitcpp/orbitcpp/orb-cpp/orbitcpp_compound_seq.h,v
retrieving revision 1.3
diff -u -u -r1.3 orbitcpp_compound_seq.h
--- orbitcpp_compound_seq.h	28 Jan 2003 15:29:13 -0000	1.3
+++ orbitcpp_compound_seq.h	6 Feb 2003 18:39:45 -0000
@@ -128,10 +128,6 @@
 	    {
 	    }
 	
-	// Size information
-	using Super::length;
-	using Super::maximum;
-	
 	// Size requisition
 	void __length (size_t new_length) {
 	    if (new_length > _max)
@@ -189,10 +185,6 @@
 	    Super (other)
 	    {
 	    }
-	
-	// Size information
-	using Super::length;
-	using Super::maximum;
 	
 	// Size requisition
 	void __length (size_t new_length) {
Index: orbitcpp_sequence.h
===================================================================
RCS file: /cvs/gnome/orbitcpp/orbitcpp/orb-cpp/orbitcpp_sequence.h,v
retrieving revision 1.3
diff -u -u -r1.3 orbitcpp_sequence.h
--- orbitcpp_sequence.h	28 Jan 2003 15:29:13 -0000	1.3
+++ orbitcpp_sequence.h	6 Feb 2003 18:39:45 -0000
@@ -121,6 +121,7 @@
 	// Size information
 	size_t maximum () const { return _max;    };
 	size_t length () const  { return _length; };
+	void length (size_t new_length) { __length (new_length); };
 	virtual void __length (size_t new_length) = 0;
 	
 	// Element access
@@ -152,7 +153,7 @@
 	
 	// ORBit2/C++ extension: fill C++ sequence from C sequence
 	void _orbitcpp_unpack (const c_seq_t &c_seq) {
-	    __length (c_seq._length);
+	    length (c_seq._length);
 	    for (index_t i = 0; i < c_seq._length; i++)
 		unpack_elem (_buffer[i], c_seq._buffer[i]);
 	}
Index: orbitcpp_simple_seq.h
===================================================================
RCS file: /cvs/gnome/orbitcpp/orbitcpp/orb-cpp/orbitcpp_simple_seq.h,v
retrieving revision 1.3
diff -u -u -r1.3 orbitcpp_simple_seq.h
--- orbitcpp_simple_seq.h	28 Jan 2003 15:29:13 -0000	1.3
+++ orbitcpp_simple_seq.h	6 Feb 2003 18:39:45 -0000
@@ -118,13 +118,9 @@
 	    Super (other)
 	    {
 	    }
-	
-	// Size information
-	using Super::length;
-	using Super::maximum;
-	
+
 	// Size requisition
-	void length (size_t new_length) {
+	void __length (size_t new_length) {
 	    if (new_length > _max)
 	    {
 		buffer_t buffer_tmp = allocbuf (new_length);
@@ -144,10 +140,6 @@
 	    
 	    _length = new_length;
 	}
-
-	void __length (size_t new_length) {
-	    length (new_length);
-	}
     };
 
     template<class Traits, CORBA::ULong max>
@@ -180,19 +172,11 @@
 	    {
 	    }
 	
-	// Size information
-	using Super::length;
-	using Super::maximum;
-	
 	// Size requisition
-	void length (size_t new_length) {
+	void __length (size_t new_length) {
 	    g_assert (new_length <= _max);
 	    
 	    _length = new_length;
-	}
-	
-	void __length (size_t new_length) {
-	    length (new_length);
 	}
     };
     
Index: orbitcpp_string_seq.h
===================================================================
RCS file: /cvs/gnome/orbitcpp/orbitcpp/orb-cpp/orbitcpp_string_seq.h,v
retrieving revision 1.3
diff -u -u -r1.3 orbitcpp_string_seq.h
--- orbitcpp_string_seq.h	28 Jan 2003 15:29:13 -0000	1.3
+++ orbitcpp_string_seq.h	6 Feb 2003 18:39:45 -0000
@@ -118,12 +118,8 @@
 	    {
 	    }
 
-	// Size information
-	using Super::length;
-	using Super::maximum;
-	
 	// Size requisition
-	void length (size_t new_length) {
+	void __length (size_t new_length) {
 	    if (new_length > _max)
 	    {
 		buffer_t buffer_tmp = allocbuf (new_length);
@@ -144,10 +140,6 @@
 	    _length = new_length;
 	}
 
-	void __length (size_t new_length) {
-	    length (new_length);
-	}
-		
     };
 
     template<CORBA::ULong max>
@@ -180,19 +172,11 @@
 	    {
 	    }
 	
-	// Size information
-	using Super::length;
-	using Super::maximum;
-	
 	// Size requisition
-	void length (size_t new_length) {
+	void __length (size_t new_length) {
 	    g_assert (new_length <= _max);
 	    
 	    _length = new_length;
-	}
-
-	void __length (size_t new_length) {
-	    length (new_length);
 	}
     };
     


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]