summaryrefslogtreecommitdiff
path: root/py/misc.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/misc.h')
-rw-r--r--py/misc.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/py/misc.h b/py/misc.h
index d1f8a6517..c7060ddf9 100644
--- a/py/misc.h
+++ b/py/misc.h
@@ -259,26 +259,21 @@ typedef union _mp_float_union_t {
/** ROM string compression *************/
+#if MICROPY_ROM_TEXT_COMPRESSION
+
#ifdef NO_QSTR
-// QSTR extraction sets NO_QSTR.
+// Compression enabled but doing QSTR extraction.
// So leave MP_COMPRESSED_ROM_TEXT in place for makeqstrdefs.py / makecompresseddata.py to find them.
-// However, dynamic native modules also set NO_QSTR, so provide a dummy implementation.
-#if MICROPY_ENABLE_DYNRUNTIME
-typedef const char *mp_rom_error_text_t;
-#define MP_COMPRESSED_ROM_TEXT(x) x
-#endif
-
#else
-#if MICROPY_ROM_TEXT_COMPRESSION
+// Compression enabled and doing a regular build.
+// Map MP_COMPRESSED_ROM_TEXT to the compressed strings.
// Force usage of the MP_ERROR_TEXT macro by requiring an opaque type.
typedef struct {} *mp_rom_error_text_t;
-// Regular build -- map MP_COMPRESSED_ROM_TEXT to the compressed strings.
-
#include <string.h>
inline __attribute__((always_inline)) const char *MP_COMPRESSED_ROM_TEXT(const char *msg) {
@@ -297,16 +292,17 @@ inline __attribute__((always_inline)) const char *MP_COMPRESSED_ROM_TEXT(const c
return msg;
}
+#endif
+
#else
// Compression not enabled, just make it a no-op.
+
typedef const char *mp_rom_error_text_t;
#define MP_COMPRESSED_ROM_TEXT(x) x
#endif // MICROPY_ROM_TEXT_COMPRESSION
-#endif // NO_QSTR
-
// Might add more types of compressed text in the future.
// For now, forward directly to MP_COMPRESSED_ROM_TEXT.
#define MP_ERROR_TEXT(x) (mp_rom_error_text_t)MP_COMPRESSED_ROM_TEXT(x)