fixup! implement alignment-safe ntoh16p() && ntoh32p()
diff --git a/src/cn-cbor.c b/src/cn-cbor.c
index 400de5f..b5759e6 100644
--- a/src/cn-cbor.c
+++ b/src/cn-cbor.c
@@ -49,8 +49,12 @@
 }
 #endif /* CBOR_NO_FLOAT */
 
-/* Fix these if you can't do non-aligned reads */
 #define ntoh8p(p) (*(unsigned char*)(p))
+
+#ifndef CBOR_ALIGN_MEMREADS
+#define ntoh16p(p) (ntohs(*(unsigned short*)(p)))
+#define ntoh32p(p) (ntohl(*(unsigned long*)(p)))
+#else
 static uint16_t ntoh16p(unsigned char *p) {
     uint16_t tmp;
     memcpy(&tmp, p, sizeof(tmp));
@@ -62,6 +66,7 @@
     memcpy(&tmp, p, sizeof(tmp));
     return ntohl(tmp);
 }
+#endif
 
 static uint64_t ntoh64p(unsigned char *p) {
   uint64_t ret = ntoh32p(p);