Removed malloc from vlog

Change-Id: Iec620d567a6c19e48056f037d2f928cb3a196db8
diff --git a/aos/common/logging/interface.cc b/aos/common/logging/interface.cc
index 72431e8..a601e83 100644
--- a/aos/common/logging/interface.cc
+++ b/aos/common/logging/interface.cc
@@ -56,8 +56,7 @@
 
 void LogImplementation::DoVLog(log_level level, const char *format, va_list ap,
                                int levels) {
-  internal::RunWithCurrentImplementation(
-      levels, [&](LogImplementation * implementation) {
+  auto log_impl = [&](LogImplementation *implementation) {
     va_list ap1;
     va_copy(ap1, ap);
     implementation->DoLog(level, format, ap1);
@@ -66,7 +65,8 @@
     if (level == FATAL) {
       VDie(format, ap);
     }
-  });
+  };
+  internal::RunWithCurrentImplementation(levels, ::std::ref(log_impl));
 }
 
 void VLog(log_level level, const char *format, va_list ap) {