rlottie: Optimize library size when logging is disabled
authorsubhransu mohanty <sub.mohanty@samsung.com>
Thu, 30 May 2019 01:07:32 +0000 (10:07 +0900)
committerHermet Park <hermetpark@gmail.com>
Wed, 19 Jun 2019 04:33:35 +0000 (13:33 +0900)
src/vector/config.h
src/vector/vbitmap.h
src/vector/vdebug.cpp
src/vector/vdebug.h
src/vector/vdrawhelper.h

index 2c2722ac119a47fbca21b94a6c899b43c2257014..6ac91599df832959008e3c36e25eb7e28f7a429e 100644 (file)
@@ -5,7 +5,7 @@
 #define LOTTIE_THREAD_SUPPORT
 
 //enable logging
-#define LOTTIE_LOGGING_SUPPORT
+//#define LOTTIE_LOGGING_SUPPORT
 
 //enable static building of image loader
 //#define LOTTIE_STATIC_IMAGE_LOADER
index e40c52ae0b3ac8ce980a32fab7e5d31c29d6fe16..c7f4702d89994cebad18ab8b49ebe1c2b54fe321 100644 (file)
@@ -20,6 +20,7 @@
 #define VBITMAP_H
 
 #include "vrect.h"
+#include <memory>
 
 V_BEGIN_NAMESPACE
 
index 8e9cc52aa504fba27dc4d569fe5e79b54eb998ee..86d00c22c95249cf633059ff1ceb431d44cd7942 100644 (file)
@@ -17,7 +17,9 @@
  */
 
 #include "vdebug.h"
-#include "config.h"
+
+#ifdef LOTTIE_LOGGING_SUPPORT
+
 #include <atomic>
 #include <chrono>
 #include <cstring>
@@ -740,19 +742,10 @@ void set_log_level(LogLevel level)
     loglevel.store(static_cast<unsigned int>(level), std::memory_order_release);
 }
 
-#ifdef LOTTIE_LOGGING_SUPPORT
-
 bool is_logged(LogLevel level)
 {
     return static_cast<unsigned int>(level) >=
            loglevel.load(std::memory_order_relaxed);
 }
 
-#else
-
-bool is_logged(LogLevel)
-{
-    return false;
-}
-
-#endif
+#endif //LOTTIE_LOGGING_SUPPORT
index 052dd8fcdb95815be2fdad0a9860940bb47b56fe..83ffdb028b6c1b8a1873dac613f7276197a5a3a7 100644 (file)
 
 #ifndef VDEBUG_H
 #define VDEBUG_H
+
+#include "config.h"
+
+#ifdef LOTTIE_LOGGING_SUPPORT
+
 #include <cstdint>
 #include <iosfwd>
 #include <memory>
@@ -161,4 +166,18 @@ void initialize(NonGuaranteedLogger ngl, std::string const& log_directory,
 #define vWarning is_logged(LogLevel::WARN) && VDEBUG_LOG(LogLevel::WARN)
 #define vCritical is_logged(LogLevel::CRIT) && VDEBUG_LOG(LogLevel::CRIT)
 
+#else
+
+struct VDebug
+{
+    template<typename Args>
+    VDebug& operator<<(const Args &){return *this;}
+};
+
+#define vDebug VDebug()
+#define vWarning VDebug()
+#define vCritical VDebug()
+
+#endif //LOTTIE_LOGGING_SUPPORT
+
 #endif  // VDEBUG_H
index 9672613dc65c2e2dc7e98c2eb47b2107741e652d..065377201f999b01ace260822a5df9b02e0253c7 100644 (file)
@@ -20,6 +20,7 @@
 #define VDRAWHELPER_H
 
 #include <cstring>
+#include <memory>
 #include "assert.h"
 #include "vbitmap.h"
 #include "vbrush.h"