diff --git a/c/dec/state.c b/c/dec/state.c
index be6a266..edc56c9 100644
--- a/c/dec/state.c
+++ b/c/dec/state.c
@@ -17,8 +17,24 @@
 extern "C" {
 #endif
 
+#ifdef BROTLI_REPORTING
+/* When BROTLI_REPORTING is defined extra reporting module have to be linked. */
+void BrotliDecoderOnStart(const BrotliDecoderState* s);
+void BrotliDecoderOnFinish(const BrotliDecoderState* s);
+#define BROTLI_DECODER_ON_START(s) BrotliDecoderOnStart(s);
+#define BROTLI_DECODER_ON_FINISH(s) BrotliDecoderOnFinish(s);
+#else
+#if !defined(BROTLI_DECODER_ON_START)
+#define BROTLI_DECODER_ON_START(s) (void)(s);
+#endif
+#if !defined(BROTLI_DECODER_ON_FINISH)
+#define BROTLI_DECODER_ON_FINISH(s) (void)(s);
+#endif
+#endif
+
 BROTLI_BOOL BrotliDecoderStateInit(BrotliDecoderState* s,
     brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) {
+  BROTLI_DECODER_ON_START(s);
   if (!alloc_func) {
     s->alloc_func = BrotliDefaultAllocFunc;
     s->free_func = BrotliDefaultFreeFunc;
@@ -135,16 +151,6 @@
   BROTLI_DECODER_FREE(s, s->distance_hgroup.htrees);
 }
 
-#ifdef BROTLI_REPORTING
-/* When BROTLI_REPORTING is defined extra reporting module have to be linked. */
-void BrotliDecoderOnFinish(const BrotliDecoderState* s);
-#define BROTLI_DECODER_ON_FINISH(s) BrotliDecoderOnFinish(s);
-#else
-#if !defined(BROTLI_DECODER_ON_FINISH)
-#define BROTLI_DECODER_ON_FINISH(s) (void)(s);
-#endif
-#endif
-
 void BrotliDecoderStateCleanup(BrotliDecoderState* s) {
   BrotliDecoderStateCleanupAfterMetablock(s);
 
diff --git a/c/enc/encode.c b/c/enc/encode.c
index 491361b..96c517b 100644
--- a/c/enc/encode.c
+++ b/c/enc/encode.c
@@ -687,7 +687,23 @@
   BrotliCleanupSharedEncoderDictionary(m, &params->dictionary);
 }
 
+#ifdef BROTLI_REPORTING
+/* When BROTLI_REPORTING is defined extra reporting module have to be linked. */
+void BrotliEncoderOnStart(const BrotliEncoderState* s);
+void BrotliEncoderOnFinish(const BrotliEncoderState* s);
+#define BROTLI_ENCODER_ON_START(s) BrotliEncoderOnStart(s);
+#define BROTLI_ENCODER_ON_FINISH(s) BrotliEncoderOnFinish(s);
+#else
+#if !defined(BROTLI_ENCODER_ON_START)
+#define BROTLI_ENCODER_ON_START(s) (void)(s);
+#endif
+#if !defined(BROTLI_ENCODER_ON_FINISH)
+#define BROTLI_ENCODER_ON_FINISH(s) (void)(s);
+#endif
+#endif
+
 static void BrotliEncoderInitState(BrotliEncoderState* s) {
+  BROTLI_ENCODER_ON_START(s);
   BrotliEncoderInitParams(&s->params);
   s->input_pos_ = 0;
   s->num_commands_ = 0;
@@ -743,16 +759,6 @@
   return state;
 }
 
-#ifdef BROTLI_REPORTING
-/* When BROTLI_REPORTING is defined extra reporting module have to be linked. */
-void BrotliEncoderOnFinish(const BrotliEncoderState* s);
-#define BROTLI_ENCODER_ON_FINISH(s) BrotliEncoderOnFinish(s);
-#else
-#if !defined(BROTLI_ENCODER_ON_FINISH)
-#define BROTLI_ENCODER_ON_FINISH(s) (void)(s);
-#endif
-#endif
-
 static void BrotliEncoderCleanupState(BrotliEncoderState* s) {
   MemoryManager* m = &s->memory_manager_;
 
