changeset 1673:6ee29fce3b6f octave-forge

Fix for removal of swap_8_bytes, etc from octave
author adb014
date Tue, 31 Aug 2004 15:24:30 +0000
parents 1ec5bdf5b775
children 73f39a79b1cd
files Makeconf.base configure.base main/comm/Makefile main/comm/ov-galois.cc main/fixed/Makefile main/fixed/fixed-conv.h main/fixed/ov-fixed-cx-mat.cc main/fixed/ov-fixed-mat.cc
diffstat 8 files changed, 51 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Makeconf.base	Tue Aug 31 15:23:45 2004 +0000
+++ b/Makeconf.base	Tue Aug 31 15:24:30 2004 +0000
@@ -67,6 +67,7 @@
 CLASS_HAS_LOAD_SAVE = @CLASS_HAS_LOAD_SAVE@
 HAVE_OCTAVE_MAP_INDEX = @HAVE_OCTAVE_MAP_INDEX@
 HAVE_OCTAVE_CONCAT = @HAVE_OCTAVE_CONCAT@
+HAVE_SWAP_BYTES = @HAVE_SWAP_BYTES@
 
 MAKEINFO = @MAKEINFO@
 TEXI2DVI = @TEXI2DVI@
--- a/configure.base	Tue Aug 31 15:23:45 2004 +0000
+++ b/configure.base	Tue Aug 31 15:24:30 2004 +0000
@@ -364,6 +364,14 @@
 [HAVE_OCTAVE_CONCAT="-DHAVE_OCTAVE_CONCAT"],)
 AC_SUBST(HAVE_OCTAVE_CONCAT)
 
+TRY_MKOCTFILE([for swap_bytes],
+[#include <sys/types.h>
+#include <octave/config.h>
+#include <octave/byte-swap.h>
+int main(void) {long long a = 1; swap_bytes <8> (&a);}],
+[HAVE_SWAP_BYTES="-DHAVE_SWAP_BYTES"],)
+AC_SUBST(HAVE_SWAP_BYTES)
+
 dnl Test for the makeinfo program
 AC_CHECK_PROG(MAKEINFO,makeinfo,makeinfo)
 if [ test -n "$MAKEINFO" ]; then
--- a/main/comm/Makefile	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/comm/Makefile	Tue Aug 31 15:24:30 2004 +0000
@@ -29,7 +29,7 @@
 
 DELETES = $(OBJECTS) $(GALOISDEPENDS) $(OTHERDPENDS) *~ $(TARGETS) core octave-core
 
-DEFINES = -DGALOIS_DISP_PRIVATES $(HAVE_DO_FORTRAN_INDEXING) $(HAVE_PROPAGATE_EMPTY_MATRICES) $(HAVE_ND_ARRAYS) $(TYPEID_HAS_CLASS) $(CLASS_HAS_LOAD_SAVE) $(HAVE_OCTAVE_CONCAT)
+DEFINES = -DGALOIS_DISP_PRIVATES $(HAVE_DO_FORTRAN_INDEXING) $(HAVE_PROPAGATE_EMPTY_MATRICES) $(HAVE_ND_ARRAYS) $(TYPEID_HAS_CLASS) $(CLASS_HAS_LOAD_SAVE) $(HAVE_OCTAVE_CONCAT) $(HAVE_SWAP_BYTES)
 MOFLAGS =
 
 .PHONY: all dist clean realclean count $(SUBDIRS)
--- a/main/comm/ov-galois.cc	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/comm/ov-galois.cc	Tue Aug 31 15:24:30 2004 +0000
@@ -543,6 +543,13 @@
   return true;
 }
 
+#ifdef HAVE_SWAP_BYTES
+static inline void swap_4_bytes (volatile void *ptr)
+{
+  swap_bytes <4> (ptr);
+}
+#endif
+
 bool 
 octave_galois::load_binary (std::istream& is, bool swap,
 				 oct_mach_info::float_format fmt)
--- a/main/fixed/Makefile	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/fixed/Makefile	Tue Aug 31 15:24:30 2004 +0000
@@ -82,7 +82,7 @@
 	$(HAVE_OK_TO_LOSE_IMAGINARY_PART) \
 	$(HAVE_ND_ARRAYS) $(TYPEID_HAS_CLASS) \
 	$(CLASS_HAS_LOAD_SAVE) $(HAVE_6ARG_MX_ND_RED) \
-	$(HAVE_OCTAVE_CONCAT)
+	$(HAVE_OCTAVE_CONCAT) $(HAVE_SWAP_BYTES)
 MOFLAGS =
 
 .PHONY: all clean count $(SUBDIRS)
--- a/main/fixed/fixed-conv.h	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/fixed/fixed-conv.h	Tue Aug 31 15:24:30 2004 +0000
@@ -47,6 +47,24 @@
     } \
   while (0)
 
+#if HAVE_SWAP_BYTES
+#define LS_DO_READ(TYPE, swap, data, size, len, stream) \
+  do \
+    { \
+      if (len > 0) \
+	{ \
+	  TYPE *ptr = new TYPE [len]; \
+	  stream.read (X_CAST (char *, ptr), size * len); \
+	  if (swap) \
+	    swap_bytes <size> (ptr, len); \
+	  for (int i = 0; i < len; i++) \
+	    (data)[i] = ptr[i]; \
+	  delete [] ptr ; \
+	} \
+    } \
+  while (0)
+
+#else
 #define LS_DO_READ(TYPE, swap, data, size, len, stream) \
   do \
     { \
@@ -62,7 +80,7 @@
 	} \
     } \
   while (0)
-
+#endif
 
 #define LS_DO_READ_1(data, len, stream) \
   do \
--- a/main/fixed/ov-fixed-cx-mat.cc	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/fixed/ov-fixed-cx-mat.cc	Tue Aug 31 15:24:30 2004 +0000
@@ -632,6 +632,13 @@
   return true;
 }
 
+#ifdef HAVE_SWAP_BYTES
+static inline void swap_4_bytes (volatile void *ptr)
+{
+  swap_bytes <4> (ptr);
+}
+#endif
+
 bool 
 octave_fixed_complex_matrix::load_binary (std::istream& is, bool swap,
 				 oct_mach_info::float_format fmt)
--- a/main/fixed/ov-fixed-mat.cc	Tue Aug 31 15:23:45 2004 +0000
+++ b/main/fixed/ov-fixed-mat.cc	Tue Aug 31 15:24:30 2004 +0000
@@ -537,6 +537,13 @@
   return true;
 }
 
+#ifdef HAVE_SWAP_BYTES
+static inline void swap_4_bytes (volatile void *ptr)
+{
+  swap_bytes <4> (ptr);
+}
+#endif
+
 bool 
 octave_fixed_matrix::load_binary (std::istream& is, bool swap,
 				 oct_mach_info::float_format fmt)