|
41 | 41 | import sys |
42 | 42 |
|
43 | 43 | from javaobj.modifiedutf8 import decode_modified_utf8 |
44 | | -from javaobj.utils import log_debug, log_error, read_to_str, to_bytes, to_str |
| 44 | +from javaobj.utils import ( |
| 45 | + log_debug, |
| 46 | + log_error, |
| 47 | + read_to_str, |
| 48 | + to_bytes, |
| 49 | + to_str, |
| 50 | + to_unicode, |
| 51 | + UNICODE_TYPE |
| 52 | +) |
45 | 53 |
|
46 | 54 | try: |
47 | 55 | # Python 2 |
@@ -256,17 +264,17 @@ def __eq__(self, other): |
256 | 264 | return True |
257 | 265 |
|
258 | 266 |
|
259 | | -class JavaString(str): |
| 267 | +class JavaString(UNICODE_TYPE): |
260 | 268 | """ |
261 | 269 | Represents a Java String |
262 | 270 | """ |
263 | 271 | def __hash__(self): |
264 | | - return str.__hash__(self) |
| 272 | + return UNICODE_TYPE.__hash__(self) |
265 | 273 |
|
266 | 274 | def __eq__(self, other): |
267 | | - if not isinstance(other, str): |
| 275 | + if not isinstance(other, UNICODE_TYPE): |
268 | 276 | return False |
269 | | - return str.__eq__(self, other) |
| 277 | + return UNICODE_TYPE.__eq__(self, other) |
270 | 278 |
|
271 | 279 |
|
272 | 280 | class JavaEnum(JavaObject): |
@@ -588,7 +596,7 @@ def _readString(self, length_fmt="H"): |
588 | 596 | """ |
589 | 597 | (length,) = self._readStruct(">{0}".format(length_fmt)) |
590 | 598 | ba = self.object_stream.read(length) |
591 | | - return to_str(ba) |
| 599 | + return to_unicode(ba) |
592 | 600 |
|
593 | 601 | def do_classdesc(self, parent=None, ident=0): |
594 | 602 | """ |
@@ -1065,9 +1073,13 @@ def _add_reference(self, obj, ident=0): |
1065 | 1073 | :param obj: Reference to add |
1066 | 1074 | :param ident: Log indentation level |
1067 | 1075 | """ |
1068 | | - log_debug("## New reference handle 0x{0:X}: {1} -> {2}" |
1069 | | - .format(len(self.references) + self.BASE_REFERENCE_IDX, |
1070 | | - type(obj).__name__, obj), ident) |
| 1076 | + log_debug( |
| 1077 | + "## New reference handle 0x{0:X}: {1} -> {2}".format( |
| 1078 | + len(self.references) + self.BASE_REFERENCE_IDX, |
| 1079 | + type(obj).__name__, |
| 1080 | + repr(obj)), |
| 1081 | + ident |
| 1082 | + ) |
1071 | 1083 | self.references.append(obj) |
1072 | 1084 |
|
1073 | 1085 | def _oops_dump_state(self, ignore_remaining_data=False): |
|
0 commit comments