Browse Source

*** empty log message ***

Joe Shochet 25 years ago
parent
commit
d70c8b1809
1 changed files with 19 additions and 8 deletions
  1. 19 8
      direct/src/ffi/FFIExternalObject.py

+ 19 - 8
direct/src/ffi/FFIExternalObject.py

@@ -173,16 +173,27 @@ class FFIExternalObject:
     def __repr__(self):
     def __repr__(self):
         # Print this info for all objects
         # Print this info for all objects
         baseRepr = ('<' + self.__class__.__name__ + ' instance at C++ pointer: ' + `self.this` + '>')
         baseRepr = ('<' + self.__class__.__name__ + ' instance at C++ pointer: ' + `self.this` + '>')
+        # Lots of Panda classes have an write or output function defined that takes an Ostream
+        # We create a LineStream for the write or output function to write to, then we extract
+        # the string out of it and return it as our repr
+        import LineStream
+        lineStream = LineStream.LineStream()
         try:
         try:
-            # Lots of Panda classes have an output function defined that takes an Ostream
-            # We create a LineStream for the output function to write to, then we extract
-            # the string out of it and return it as our repr
-            import LineStream
-            lineStream = LineStream.LineStream()
-            self.output(lineStream)
-            return baseRepr + '\n' + lineStream.getLine()
+            # First try the write function, that is the better one
+            self.write(lineStream)
+            while lineStream.isTextAvailable():
+                baseRepr = baseRepr + '\n' + lineStream.getLine()
         except:
         except:
-            return baseRepr
+            try:
+                # Ok, no write function, lets try output then
+                self.output(lineStream)
+                while lineStream.isTextAvailable():
+                    baseRepr = baseRepr + '\n' + lineStream.getLine()
+            except:
+                pass
+
+        # In any case, return the baseRepr
+        return baseRepr
 
 
     def __hash__(self):
     def __hash__(self):
         return self.this
         return self.this