Loading cmds/statsd/src/logd/LogEvent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -679,7 +679,7 @@ float LogEvent::GetFloat(size_t key, status_t* err) const { string LogEvent::ToString() const { string result; result += StringPrintf("{ %lld %lld (%d)", (long long)mLogdTimestampNs, result += StringPrintf("{ uid(%d) %lld %lld (%d)", mLogUid, (long long)mLogdTimestampNs, (long long)mElapsedTimestampNs, mTagId); for (const auto& value : mValues) { result += Loading cmds/statsd/src/stats_log_util.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -343,9 +343,11 @@ void writeFieldValueTreeToStreamHelper(int tagId, const std::vector<FieldValue>& } } if (isBytesField) { if (dim.mValue.str_value.length() > 0) { protoOutput->write(FIELD_TYPE_MESSAGE | fieldNum, (const char*)dim.mValue.str_value.c_str(), dim.mValue.str_value.length()); } } else { protoOutput->write(FIELD_TYPE_STRING | fieldNum, dim.mValue.str_value); } Loading cmds/statsd/tests/LogEvent_test.cpp +37 −0 Original line number Diff line number Diff line Loading @@ -605,7 +605,44 @@ TEST(LogEventTest, TestBinaryFieldAtom) { EXPECT_EQ(orig_str, result_str); } TEST(LogEventTest, TestBinaryFieldAtom_empty) { Atom launcherAtom; auto launcher_event = launcherAtom.mutable_launcher_event(); launcher_event->set_action(stats::launcher::LauncherAction::LONGPRESS); launcher_event->set_src_state(stats::launcher::LauncherState::OVERVIEW); launcher_event->set_dst_state(stats::launcher::LauncherState::ALLAPPS); // empty string. string extension_str; LogEvent event1(Atom::kLauncherEventFieldNumber, 1000); event1.write((int32_t)stats::launcher::LauncherAction::LONGPRESS); event1.write((int32_t)stats::launcher::LauncherState::OVERVIEW); event1.write((int64_t)stats::launcher::LauncherState::ALLAPPS); event1.write(extension_str); event1.init(); ProtoOutputStream proto; event1.ToProto(proto); std::vector<uint8_t> outData; outData.resize(proto.size()); size_t pos = 0; auto iter = proto.data(); while (iter.readBuffer() != NULL) { size_t toRead = iter.currentToRead(); std::memcpy(&(outData[pos]), iter.readBuffer(), toRead); pos += toRead; iter.rp()->move(toRead); } std::string result_str(outData.begin(), outData.end()); std::string orig_str; launcherAtom.SerializeToString(&orig_str); EXPECT_EQ(orig_str, result_str); } } // namespace statsd } // namespace os Loading tools/stats_log_api_gen/main.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -1128,7 +1128,10 @@ write_stats_log_jni(FILE* out, const string& java_method_name, const string& cpp hadStringOrChain = true; fprintf(out, " jbyte* jbyte_array%d;\n", argIndex); fprintf(out, " const char* str%d;\n", argIndex); fprintf(out, " if (arg%d != NULL) {\n", argIndex); fprintf(out, " if (arg%d != NULL && env->GetArrayLength(arg%d) > " "0) {\n", argIndex, argIndex); fprintf(out, " jbyte_array%d = " "env->GetByteArrayElements(arg%d, NULL);\n", Loading Loading
cmds/statsd/src/logd/LogEvent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -679,7 +679,7 @@ float LogEvent::GetFloat(size_t key, status_t* err) const { string LogEvent::ToString() const { string result; result += StringPrintf("{ %lld %lld (%d)", (long long)mLogdTimestampNs, result += StringPrintf("{ uid(%d) %lld %lld (%d)", mLogUid, (long long)mLogdTimestampNs, (long long)mElapsedTimestampNs, mTagId); for (const auto& value : mValues) { result += Loading
cmds/statsd/src/stats_log_util.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -343,9 +343,11 @@ void writeFieldValueTreeToStreamHelper(int tagId, const std::vector<FieldValue>& } } if (isBytesField) { if (dim.mValue.str_value.length() > 0) { protoOutput->write(FIELD_TYPE_MESSAGE | fieldNum, (const char*)dim.mValue.str_value.c_str(), dim.mValue.str_value.length()); } } else { protoOutput->write(FIELD_TYPE_STRING | fieldNum, dim.mValue.str_value); } Loading
cmds/statsd/tests/LogEvent_test.cpp +37 −0 Original line number Diff line number Diff line Loading @@ -605,7 +605,44 @@ TEST(LogEventTest, TestBinaryFieldAtom) { EXPECT_EQ(orig_str, result_str); } TEST(LogEventTest, TestBinaryFieldAtom_empty) { Atom launcherAtom; auto launcher_event = launcherAtom.mutable_launcher_event(); launcher_event->set_action(stats::launcher::LauncherAction::LONGPRESS); launcher_event->set_src_state(stats::launcher::LauncherState::OVERVIEW); launcher_event->set_dst_state(stats::launcher::LauncherState::ALLAPPS); // empty string. string extension_str; LogEvent event1(Atom::kLauncherEventFieldNumber, 1000); event1.write((int32_t)stats::launcher::LauncherAction::LONGPRESS); event1.write((int32_t)stats::launcher::LauncherState::OVERVIEW); event1.write((int64_t)stats::launcher::LauncherState::ALLAPPS); event1.write(extension_str); event1.init(); ProtoOutputStream proto; event1.ToProto(proto); std::vector<uint8_t> outData; outData.resize(proto.size()); size_t pos = 0; auto iter = proto.data(); while (iter.readBuffer() != NULL) { size_t toRead = iter.currentToRead(); std::memcpy(&(outData[pos]), iter.readBuffer(), toRead); pos += toRead; iter.rp()->move(toRead); } std::string result_str(outData.begin(), outData.end()); std::string orig_str; launcherAtom.SerializeToString(&orig_str); EXPECT_EQ(orig_str, result_str); } } // namespace statsd } // namespace os Loading
tools/stats_log_api_gen/main.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -1128,7 +1128,10 @@ write_stats_log_jni(FILE* out, const string& java_method_name, const string& cpp hadStringOrChain = true; fprintf(out, " jbyte* jbyte_array%d;\n", argIndex); fprintf(out, " const char* str%d;\n", argIndex); fprintf(out, " if (arg%d != NULL) {\n", argIndex); fprintf(out, " if (arg%d != NULL && env->GetArrayLength(arg%d) > " "0) {\n", argIndex, argIndex); fprintf(out, " jbyte_array%d = " "env->GetByteArrayElements(arg%d, NULL);\n", Loading