Use String8/16 c_str

Bug: 295394788
Test: make checkbuild
Change-Id: I538720d4de2dcc038b417048209782ff605b7e30
This commit is contained in:
Tomasz Wasilczyk 2023-08-10 23:54:44 +00:00
parent 6c8fb01159
commit 3815d34e5f
48 changed files with 214 additions and 212 deletions

View File

@ -66,10 +66,10 @@ public:
* executing boot class Java code and thereby deny ourselves access to * executing boot class Java code and thereby deny ourselves access to
* non-boot classes. * non-boot classes.
*/ */
char* slashClassName = toSlashClassName(mClassName.string()); char* slashClassName = toSlashClassName(mClassName.c_str());
mClass = env->FindClass(slashClassName); mClass = env->FindClass(slashClassName);
if (mClass == NULL) { if (mClass == NULL) {
ALOGE("ERROR: could not find class '%s'\n", mClassName.string()); ALOGE("ERROR: could not find class '%s'\n", mClassName.c_str());
} }
free(slashClassName); free(slashClassName);
@ -179,7 +179,7 @@ int main(int argc, char* const argv[])
argv_String.append(argv[i]); argv_String.append(argv[i]);
argv_String.append("\" "); argv_String.append("\" ");
} }
ALOGV("app_process main with argv: %s", argv_String.string()); ALOGV("app_process main with argv: %s", argv_String.c_str());
} }
AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv)); AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv));
@ -300,7 +300,7 @@ int main(int argc, char* const argv[])
restOfArgs.append(argv_new[k]); restOfArgs.append(argv_new[k]);
restOfArgs.append("\" "); restOfArgs.append("\" ");
} }
ALOGV("Class name = %s, args = %s", className.string(), restOfArgs.string()); ALOGV("Class name = %s, args = %s", className.c_str(), restOfArgs.c_str());
} }
} else { } else {
// We're in zygote mode. // We're in zygote mode.
@ -329,7 +329,7 @@ int main(int argc, char* const argv[])
} }
if (!niceName.empty()) { if (!niceName.empty()) {
runtime.setArgv0(niceName.string(), true /* setProcName */); runtime.setArgv0(niceName.c_str(), true /* setProcName */);
} }
if (zygote) { if (zygote) {

View File

@ -1137,7 +1137,7 @@ bool BootAnimation::parseAnimationDesc(Animation& animation) {
if (!readFile(animation.zip, "desc.txt", desString)) { if (!readFile(animation.zip, "desc.txt", desString)) {
return false; return false;
} }
char const* s = desString.string(); char const* s = desString.c_str();
std::string dynamicColoringPartName = ""; std::string dynamicColoringPartName = "";
bool postDynamicColoring = false; bool postDynamicColoring = false;
@ -1146,7 +1146,7 @@ bool BootAnimation::parseAnimationDesc(Animation& animation) {
const char* endl = strstr(s, "\n"); const char* endl = strstr(s, "\n");
if (endl == nullptr) break; if (endl == nullptr) break;
String8 line(s, endl - s); String8 line(s, endl - s);
const char* l = line.string(); const char* l = line.c_str();
int fps = 0; int fps = 0;
int width = 0; int width = 0;
int height = 0; int height = 0;
@ -1330,7 +1330,7 @@ bool BootAnimation::preloadZip(Animation& animation) {
// If there is trimData present, override the positioning defaults. // If there is trimData present, override the positioning defaults.
for (Animation::Part& part : animation.parts) { for (Animation::Part& part : animation.parts) {
const char* trimDataStr = part.trimData.string(); const char* trimDataStr = part.trimData.c_str();
for (size_t frameIdx = 0; frameIdx < part.frames.size(); frameIdx++) { for (size_t frameIdx = 0; frameIdx < part.frames.size(); frameIdx++) {
const char* endl = strstr(trimDataStr, "\n"); const char* endl = strstr(trimDataStr, "\n");
// No more trimData for this part. // No more trimData for this part.
@ -1338,7 +1338,7 @@ bool BootAnimation::preloadZip(Animation& animation) {
break; break;
} }
String8 line(trimDataStr, endl - trimDataStr); String8 line(trimDataStr, endl - trimDataStr);
const char* lineStr = line.string(); const char* lineStr = line.c_str();
trimDataStr = ++endl; trimDataStr = ++endl;
int width = 0, height = 0, x = 0, y = 0; int width = 0, height = 0, x = 0, y = 0;
if (sscanf(lineStr, "%dx%d+%d+%d", &width, &height, &x, &y) == 4) { if (sscanf(lineStr, "%dx%d+%d+%d", &width, &height, &x, &y) == 4) {
@ -1566,7 +1566,7 @@ bool BootAnimation::playAnimation(const Animation& animation) {
1.0f); 1.0f);
ALOGD("Playing files = %s/%s, Requested repeat = %d, playUntilComplete = %s", ALOGD("Playing files = %s/%s, Requested repeat = %d, playUntilComplete = %s",
animation.fileName.string(), part.path.string(), part.count, animation.fileName.c_str(), part.path.c_str(), part.count,
part.playUntilComplete ? "true" : "false"); part.playUntilComplete ? "true" : "false");
// For the last animation, if we have progress indicator from // For the last animation, if we have progress indicator from
@ -1787,17 +1787,17 @@ void BootAnimation::releaseAnimation(Animation* animation) const {
BootAnimation::Animation* BootAnimation::loadAnimation(const String8& fn) { BootAnimation::Animation* BootAnimation::loadAnimation(const String8& fn) {
if (mLoadedFiles.indexOf(fn) >= 0) { if (mLoadedFiles.indexOf(fn) >= 0) {
SLOGE("File \"%s\" is already loaded. Cyclic ref is not allowed", SLOGE("File \"%s\" is already loaded. Cyclic ref is not allowed",
fn.string()); fn.c_str());
return nullptr; return nullptr;
} }
ZipFileRO *zip = ZipFileRO::open(fn); ZipFileRO *zip = ZipFileRO::open(fn);
if (zip == nullptr) { if (zip == nullptr) {
SLOGE("Failed to open animation zip \"%s\": %s", SLOGE("Failed to open animation zip \"%s\": %s",
fn.string(), strerror(errno)); fn.c_str(), strerror(errno));
return nullptr; return nullptr;
} }
ALOGD("%s is loaded successfully", fn.string()); ALOGD("%s is loaded successfully", fn.c_str());
Animation *animation = new Animation; Animation *animation = new Animation;
animation->fileName = fn; animation->fileName = fn;

View File

@ -83,8 +83,8 @@ StatusListener::onReportSectionStatus(int32_t section, int32_t status)
Status Status
StatusListener::onReportServiceStatus(const String16& service, int32_t status) StatusListener::onReportServiceStatus(const String16& service, int32_t status)
{ {
fprintf(stderr, "service '%s' status %d\n", String8(service).string(), status); fprintf(stderr, "service '%s' status %d\n", String8(service).c_str(), status);
ALOGD("service '%s' status %d\n", String8(service).string(), status); ALOGD("service '%s' status %d\n", String8(service).c_str(), status);
return Status::ok(); return Status::ok();
} }
@ -384,7 +384,7 @@ main(int argc, char** argv)
status = service->reportIncidentToStream(args, listener, std::move(writeEnd)); status = service->reportIncidentToStream(args, listener, std::move(writeEnd));
if (!status.isOk()) { if (!status.isOk()) {
fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string()); fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().c_str());
return 1; return 1;
} }
@ -396,14 +396,14 @@ main(int argc, char** argv)
sp<StatusListener> listener(new StatusListener()); sp<StatusListener> listener(new StatusListener());
status = service->reportIncidentToDumpstate(std::move(writeEnd), listener); status = service->reportIncidentToDumpstate(std::move(writeEnd), listener);
if (!status.isOk()) { if (!status.isOk()) {
fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string()); fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().c_str());
return 1; return 1;
} }
return listener->getExitCodeOrElse(stream_output(fds[0], STDOUT_FILENO)); return listener->getExitCodeOrElse(stream_output(fds[0], STDOUT_FILENO));
} else { } else {
status = service->reportIncident(args); status = service->reportIncident(args);
if (!status.isOk()) { if (!status.isOk()) {
fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string()); fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().c_str());
return 1; return 1;
} else { } else {
return 0; return 0;

View File

@ -27,11 +27,11 @@ status_t NoopParser::Parse(const int in, const int out) const
{ {
string content; string content;
if (!ReadFdToString(in, &content)) { if (!ReadFdToString(in, &content)) {
fprintf(stderr, "[%s]Failed to read data from incidentd\n", this->name.string()); fprintf(stderr, "[%s]Failed to read data from incidentd\n", this->name.c_str());
return -1; return -1;
} }
if (!WriteStringToFd(content, out)) { if (!WriteStringToFd(content, out)) {
fprintf(stderr, "[%s]Failed to write data to incidentd\n", this->name.string()); fprintf(stderr, "[%s]Failed to write data to incidentd\n", this->name.c_str());
return -1; return -1;
} }
return NO_ERROR; return NO_ERROR;
@ -42,13 +42,13 @@ status_t ReverseParser::Parse(const int in, const int out) const
{ {
string content; string content;
if (!ReadFdToString(in, &content)) { if (!ReadFdToString(in, &content)) {
fprintf(stderr, "[%s]Failed to read data from incidentd\n", this->name.string()); fprintf(stderr, "[%s]Failed to read data from incidentd\n", this->name.c_str());
return -1; return -1;
} }
// reverse the content // reverse the content
reverse(content.begin(), content.end()); reverse(content.begin(), content.end());
if (!WriteStringToFd(content, out)) { if (!WriteStringToFd(content, out)) {
fprintf(stderr, "[%s]Failed to write data to incidentd\n", this->name.string()); fprintf(stderr, "[%s]Failed to write data to incidentd\n", this->name.c_str());
return -1; return -1;
} }
return NO_ERROR; return NO_ERROR;

View File

@ -101,7 +101,7 @@ int main(int argc, char** argv) {
fprintf(stderr, "Pasring section %d...\n", sectionID); fprintf(stderr, "Pasring section %d...\n", sectionID);
TextParserBase* parser = selectParser(sectionID); TextParserBase* parser = selectParser(sectionID);
if (parser != nullptr) { if (parser != nullptr) {
fprintf(stderr, "Running parser: %s\n", parser->name.string()); fprintf(stderr, "Running parser: %s\n", parser->name.c_str());
status_t err = parser->Parse(STDIN_FILENO, STDOUT_FILENO); status_t err = parser->Parse(STDIN_FILENO, STDOUT_FILENO);
if (err != NO_ERROR) { if (err != NO_ERROR) {
fprintf(stderr, "Parse error in section %d: %s\n", sectionID, strerror(-err)); fprintf(stderr, "Parse error in section %d: %s\n", sectionID, strerror(-err));

View File

@ -52,9 +52,9 @@ BatteryTypeParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -82,9 +82,9 @@ CpuFreqParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -130,11 +130,11 @@ CpuInfoParser::Parse(const int in, const int out) const
record = parseRecordByColumns(line, columnIndices); record = parseRecordByColumns(line, columnIndices);
diff = record.size() - header.size(); diff = record.size() - header.size();
if (diff < 0) { if (diff < 0) {
fprintf(stderr, "[%s]Line %d has %d missing fields\n%s\n", this->name.string(), nline, -diff, line.c_str()); fprintf(stderr, "[%s]Line %d has %d missing fields\n%s\n", this->name.c_str(), nline, -diff, line.c_str());
printRecord(record); printRecord(record);
continue; continue;
} else if (diff > 0) { } else if (diff > 0) {
fprintf(stderr, "[%s]Line %d has %d extra fields\n%s\n", this->name.string(), nline, diff, line.c_str()); fprintf(stderr, "[%s]Line %d has %d extra fields\n%s\n", this->name.c_str(), nline, diff, line.c_str());
printRecord(record); printRecord(record);
continue; continue;
} }
@ -143,7 +143,7 @@ CpuInfoParser::Parse(const int in, const int out) const
for (int i=0; i<(int)record.size(); i++) { for (int i=0; i<(int)record.size(); i++) {
if (!table.insertField(&proto, header[i], record[i])) { if (!table.insertField(&proto, header[i], record[i])) {
fprintf(stderr, "[%s]Line %d fails to insert field %s with value %s\n", fprintf(stderr, "[%s]Line %d fails to insert field %s with value %s\n",
this->name.string(), nline, header[i].c_str(), record[i].c_str()); this->name.c_str(), nline, header[i].c_str(), record[i].c_str());
} }
} }
proto.end(token); proto.end(token);
@ -155,9 +155,9 @@ CpuInfoParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -76,9 +76,9 @@ EventLogTagsParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -51,11 +51,11 @@ KernelWakesParser::Parse(const int in, const int out) const
if (record.size() < header.size()) { if (record.size() < header.size()) {
// TODO: log this to incident report! // TODO: log this to incident report!
fprintf(stderr, "[%s]Line %d has missing fields\n%s\n", this->name.string(), nline, line.c_str()); fprintf(stderr, "[%s]Line %d has missing fields\n%s\n", this->name.c_str(), nline, line.c_str());
continue; continue;
} else if (record.size() > header.size()) { } else if (record.size() > header.size()) {
// TODO: log this to incident report! // TODO: log this to incident report!
fprintf(stderr, "[%s]Line %d has extra fields\n%s\n", this->name.string(), nline, line.c_str()); fprintf(stderr, "[%s]Line %d has extra fields\n%s\n", this->name.c_str(), nline, line.c_str());
continue; continue;
} }
@ -63,7 +63,7 @@ KernelWakesParser::Parse(const int in, const int out) const
for (int i=0; i<(int)record.size(); i++) { for (int i=0; i<(int)record.size(); i++) {
if (!table.insertField(&proto, header[i], record[i])) { if (!table.insertField(&proto, header[i], record[i])) {
fprintf(stderr, "[%s]Line %d has bad value %s of %s\n", fprintf(stderr, "[%s]Line %d has bad value %s of %s\n",
this->name.string(), nline, header[i].c_str(), record[i].c_str()); this->name.c_str(), nline, header[i].c_str(), record[i].c_str());
} }
} }
proto.end(token); proto.end(token);
@ -75,9 +75,9 @@ KernelWakesParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -114,10 +114,10 @@ PageTypeInfoParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -60,7 +60,7 @@ ProcrankParser::Parse(const int in, const int out) const
if (record[record.size() - 1] == "TOTAL") { // TOTAL record if (record[record.size() - 1] == "TOTAL") { // TOTAL record
total = line; total = line;
} else { } else {
fprintf(stderr, "[%s]Line %d has missing fields\n%s\n", this->name.string(), nline, fprintf(stderr, "[%s]Line %d has missing fields\n%s\n", this->name.c_str(), nline,
line.c_str()); line.c_str());
} }
continue; continue;
@ -70,7 +70,7 @@ ProcrankParser::Parse(const int in, const int out) const
for (int i=0; i<(int)record.size(); i++) { for (int i=0; i<(int)record.size(); i++) {
if (!table.insertField(&proto, header[i], record[i])) { if (!table.insertField(&proto, header[i], record[i])) {
fprintf(stderr, "[%s]Line %d has bad value %s of %s\n", fprintf(stderr, "[%s]Line %d has bad value %s of %s\n",
this->name.string(), nline, header[i].c_str(), record[i].c_str()); this->name.c_str(), nline, header[i].c_str(), record[i].c_str());
} }
} }
proto.end(token); proto.end(token);
@ -104,9 +104,9 @@ ProcrankParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -61,12 +61,12 @@ status_t PsParser::Parse(const int in, const int out) const {
diff = record.size() - header.size(); diff = record.size() - header.size();
if (diff < 0) { if (diff < 0) {
// TODO: log this to incident report! // TODO: log this to incident report!
fprintf(stderr, "[%s]Line %d has %d missing fields\n%s\n", this->name.string(), nline, -diff, line.c_str()); fprintf(stderr, "[%s]Line %d has %d missing fields\n%s\n", this->name.c_str(), nline, -diff, line.c_str());
printRecord(record); printRecord(record);
continue; continue;
} else if (diff > 0) { } else if (diff > 0) {
// TODO: log this to incident report! // TODO: log this to incident report!
fprintf(stderr, "[%s]Line %d has %d extra fields\n%s\n", this->name.string(), nline, diff, line.c_str()); fprintf(stderr, "[%s]Line %d has %d extra fields\n%s\n", this->name.c_str(), nline, diff, line.c_str());
printRecord(record); printRecord(record);
continue; continue;
} }
@ -75,7 +75,7 @@ status_t PsParser::Parse(const int in, const int out) const {
for (int i=0; i<(int)record.size(); i++) { for (int i=0; i<(int)record.size(); i++) {
if (!table.insertField(&proto, header[i], record[i])) { if (!table.insertField(&proto, header[i], record[i])) {
fprintf(stderr, "[%s]Line %d has bad value %s of %s\n", fprintf(stderr, "[%s]Line %d has bad value %s of %s\n",
this->name.string(), nline, header[i].c_str(), record[i].c_str()); this->name.c_str(), nline, header[i].c_str(), record[i].c_str());
} }
} }
proto.end(token); proto.end(token);
@ -87,9 +87,9 @@ status_t PsParser::Parse(const int in, const int out) const {
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -219,9 +219,9 @@ SystemPropertiesParser::Parse(const int in, const int out) const
} }
if (!proto.flush(out)) { if (!proto.flush(out)) {
fprintf(stderr, "[%s]Error writing proto back\n", this->name.string()); fprintf(stderr, "[%s]Error writing proto back\n", this->name.c_str());
return -1; return -1;
} }
fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.string(), proto.size()); fprintf(stderr, "[%s]Proto size: %zu bytes\n", this->name.c_str(), proto.size());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -407,8 +407,8 @@ Status IncidentService::systemRunning() {
Status IncidentService::getIncidentReportList(const String16& pkg16, const String16& cls16, Status IncidentService::getIncidentReportList(const String16& pkg16, const String16& cls16,
vector<String16>* result) { vector<String16>* result) {
status_t err; status_t err;
const string pkg(String8(pkg16).string()); const string pkg(String8(pkg16).c_str());
const string cls(String8(cls16).string()); const string cls(String8(cls16).c_str());
// List the reports // List the reports
vector<sp<ReportFile>> all; vector<sp<ReportFile>> all;
@ -441,9 +441,9 @@ Status IncidentService::getIncidentReport(const String16& pkg16, const String16&
const String16& id16, IncidentManager::IncidentReport* result) { const String16& id16, IncidentManager::IncidentReport* result) {
status_t err; status_t err;
const string pkg(String8(pkg16).string()); const string pkg(String8(pkg16).c_str());
const string cls(String8(cls16).string()); const string cls(String8(cls16).c_str());
const string id(String8(id16).string()); const string id(String8(id16).c_str());
IncidentReportArgs args; IncidentReportArgs args;
sp<ReportFile> file = mWorkDirectory->getReport(pkg, cls, id, &args); sp<ReportFile> file = mWorkDirectory->getReport(pkg, cls, id, &args);
@ -470,9 +470,9 @@ Status IncidentService::getIncidentReport(const String16& pkg16, const String16&
Status IncidentService::deleteIncidentReports(const String16& pkg16, const String16& cls16, Status IncidentService::deleteIncidentReports(const String16& pkg16, const String16& cls16,
const String16& id16) { const String16& id16) {
const string pkg(String8(pkg16).string()); const string pkg(String8(pkg16).c_str());
const string cls(String8(cls16).string()); const string cls(String8(cls16).c_str());
const string id(String8(id16).string()); const string id(String8(id16).c_str());
sp<ReportFile> file = mWorkDirectory->getReport(pkg, cls, id, nullptr); sp<ReportFile> file = mWorkDirectory->getReport(pkg, cls, id, nullptr);
if (file != nullptr) { if (file != nullptr) {
@ -484,7 +484,7 @@ Status IncidentService::deleteIncidentReports(const String16& pkg16, const Strin
} }
Status IncidentService::deleteAllIncidentReports(const String16& pkg16) { Status IncidentService::deleteAllIncidentReports(const String16& pkg16) {
const string pkg(String8(pkg16).string()); const string pkg(String8(pkg16).c_str());
mWorkDirectory->commitAll(pkg); mWorkDirectory->commitAll(pkg);
mBroadcaster->clearPackageBroadcasts(pkg); mBroadcaster->clearPackageBroadcasts(pkg);
@ -568,7 +568,7 @@ status_t IncidentService::command(FILE* in, FILE* out, FILE* err, Vector<String8
while (SECTION_LIST[idx] != NULL) { while (SECTION_LIST[idx] != NULL) {
const Section* section = SECTION_LIST[idx]; const Section* section = SECTION_LIST[idx];
if (section->id == id) { if (section->id == id) {
fprintf(out, "Section[%d] %s\n", id, section->name.string()); fprintf(out, "Section[%d] %s\n", id, section->name.c_str());
break; break;
} }
idx++; idx++;
@ -592,7 +592,7 @@ status_t IncidentService::cmd_help(FILE* out) {
static void printPrivacy(const Privacy* p, FILE* out, String8 indent) { static void printPrivacy(const Privacy* p, FILE* out, String8 indent) {
if (p == NULL) return; if (p == NULL) return;
fprintf(out, "%sid:%d, type:%d, dest:%d\n", indent.string(), p->field_id, p->type, p->policy); fprintf(out, "%sid:%d, type:%d, dest:%d\n", indent.c_str(), p->field_id, p->type, p->policy);
if (p->children == NULL) return; if (p->children == NULL) return;
for (int i = 0; p->children[i] != NULL; i++) { // NULL-terminated. for (int i = 0; p->children[i] != NULL; i++) { // NULL-terminated.
printPrivacy(p->children[i], out, indent + " "); printPrivacy(p->children[i], out, indent + " ");
@ -605,7 +605,7 @@ status_t IncidentService::cmd_privacy(FILE* in, FILE* out, FILE* err, Vector<Str
const int argCount = args.size(); const int argCount = args.size();
if (argCount >= 3) { if (argCount >= 3) {
String8 opt = args[1]; String8 opt = args[1];
int sectionId = atoi(args[2].string()); int sectionId = atoi(args[2].c_str());
const Privacy* p = get_privacy_of_section(sectionId); const Privacy* p = get_privacy_of_section(sectionId);
if (p == NULL) { if (p == NULL) {

View File

@ -711,7 +711,7 @@ status_t Reporter::execute_section(const Section* section, IncidentMetadata* met
return NO_ERROR; return NO_ERROR;
} }
ALOGD("Start incident report section %d '%s'", sectionId, section->name.string()); ALOGD("Start incident report section %d '%s'", sectionId, section->name.c_str());
IncidentMetadata::SectionStats* sectionMetadata = metadata->add_sections(); IncidentMetadata::SectionStats* sectionMetadata = metadata->add_sections();
// Notify listener of starting // Notify listener of starting
@ -747,7 +747,7 @@ status_t Reporter::execute_section(const Section* section, IncidentMetadata* met
sectionId, IIncidentReportStatusListener::STATUS_FINISHED); sectionId, IIncidentReportStatusListener::STATUS_FINISHED);
}); });
ALOGD("Finish incident report section %d '%s'", sectionId, section->name.string()); ALOGD("Finish incident report section %d '%s'", sectionId, section->name.c_str());
return NO_ERROR; return NO_ERROR;
} }

View File

@ -60,7 +60,7 @@ const char INCIDENT_HELPER[] = "/system/bin/incident_helper";
const char* GZIP[] = {"/system/bin/gzip", NULL}; const char* GZIP[] = {"/system/bin/gzip", NULL};
static pid_t fork_execute_incident_helper(const int id, Fpipe* p2cPipe, Fpipe* c2pPipe) { static pid_t fork_execute_incident_helper(const int id, Fpipe* p2cPipe, Fpipe* c2pPipe) {
const char* ihArgs[]{INCIDENT_HELPER, "-s", String8::format("%d", id).string(), NULL}; const char* ihArgs[]{INCIDENT_HELPER, "-s", String8::format("%d", id).c_str(), NULL};
return fork_execute_cmd(const_cast<char**>(ihArgs), p2cPipe, c2pPipe); return fork_execute_cmd(const_cast<char**>(ihArgs), p2cPipe, c2pPipe);
} }
@ -100,7 +100,7 @@ status_t FileSection::Execute(ReportWriter* writer) const {
// add O_CLOEXEC to make sure it is closed when exec incident helper // add O_CLOEXEC to make sure it is closed when exec incident helper
unique_fd fd(open(mFilename, O_RDONLY | O_CLOEXEC)); unique_fd fd(open(mFilename, O_RDONLY | O_CLOEXEC));
if (fd.get() == -1) { if (fd.get() == -1) {
ALOGW("[%s] failed to open file", this->name.string()); ALOGW("[%s] failed to open file", this->name.c_str());
// There may be some devices/architectures that won't have the file. // There may be some devices/architectures that won't have the file.
// Just return here without an error. // Just return here without an error.
return NO_ERROR; return NO_ERROR;
@ -110,13 +110,13 @@ status_t FileSection::Execute(ReportWriter* writer) const {
Fpipe c2pPipe; Fpipe c2pPipe;
// initiate pipes to pass data to/from incident_helper // initiate pipes to pass data to/from incident_helper
if (!p2cPipe.init() || !c2pPipe.init()) { if (!p2cPipe.init() || !c2pPipe.init()) {
ALOGW("[%s] failed to setup pipes", this->name.string()); ALOGW("[%s] failed to setup pipes", this->name.c_str());
return -errno; return -errno;
} }
pid_t pid = fork_execute_incident_helper(this->id, &p2cPipe, &c2pPipe); pid_t pid = fork_execute_incident_helper(this->id, &p2cPipe, &c2pPipe);
if (pid == -1) { if (pid == -1) {
ALOGW("[%s] failed to fork", this->name.string()); ALOGW("[%s] failed to fork", this->name.c_str());
return -errno; return -errno;
} }
@ -128,14 +128,14 @@ status_t FileSection::Execute(ReportWriter* writer) const {
writer->setSectionStats(buffer); writer->setSectionStats(buffer);
if (readStatus != NO_ERROR || buffer.timedOut()) { if (readStatus != NO_ERROR || buffer.timedOut()) {
ALOGW("[%s] failed to read data from incident helper: %s, timedout: %s", ALOGW("[%s] failed to read data from incident helper: %s, timedout: %s",
this->name.string(), strerror(-readStatus), buffer.timedOut() ? "true" : "false"); this->name.c_str(), strerror(-readStatus), buffer.timedOut() ? "true" : "false");
kill_child(pid); kill_child(pid);
return readStatus; return readStatus;
} }
status_t ihStatus = wait_child(pid); status_t ihStatus = wait_child(pid);
if (ihStatus != NO_ERROR) { if (ihStatus != NO_ERROR) {
ALOGW("[%s] abnormal child process: %s", this->name.string(), strerror(-ihStatus)); ALOGW("[%s] abnormal child process: %s", this->name.c_str(), strerror(-ihStatus));
return OK; // Not a fatal error. return OK; // Not a fatal error.
} }
@ -169,7 +169,7 @@ status_t GZipSection::Execute(ReportWriter* writer) const {
index++; // look at the next file. index++; // look at the next file.
} }
if (fd.get() == -1) { if (fd.get() == -1) {
ALOGW("[%s] can't open all the files", this->name.string()); ALOGW("[%s] can't open all the files", this->name.c_str());
return NO_ERROR; // e.g. LAST_KMSG will reach here in user build. return NO_ERROR; // e.g. LAST_KMSG will reach here in user build.
} }
FdBuffer buffer; FdBuffer buffer;
@ -177,13 +177,13 @@ status_t GZipSection::Execute(ReportWriter* writer) const {
Fpipe c2pPipe; Fpipe c2pPipe;
// initiate pipes to pass data to/from gzip // initiate pipes to pass data to/from gzip
if (!p2cPipe.init() || !c2pPipe.init()) { if (!p2cPipe.init() || !c2pPipe.init()) {
ALOGW("[%s] failed to setup pipes", this->name.string()); ALOGW("[%s] failed to setup pipes", this->name.c_str());
return -errno; return -errno;
} }
pid_t pid = fork_execute_cmd((char* const*)GZIP, &p2cPipe, &c2pPipe); pid_t pid = fork_execute_cmd((char* const*)GZIP, &p2cPipe, &c2pPipe);
if (pid == -1) { if (pid == -1) {
ALOGW("[%s] failed to fork", this->name.string()); ALOGW("[%s] failed to fork", this->name.c_str());
return -errno; return -errno;
} }
// parent process // parent process
@ -202,14 +202,14 @@ status_t GZipSection::Execute(ReportWriter* writer) const {
size_t editPos = internalBuffer->wp()->pos(); size_t editPos = internalBuffer->wp()->pos();
internalBuffer->wp()->move(8); // reserve 8 bytes for the varint of the data size. internalBuffer->wp()->move(8); // reserve 8 bytes for the varint of the data size.
size_t dataBeginAt = internalBuffer->wp()->pos(); size_t dataBeginAt = internalBuffer->wp()->pos();
VLOG("[%s] editPos=%zu, dataBeginAt=%zu", this->name.string(), editPos, dataBeginAt); VLOG("[%s] editPos=%zu, dataBeginAt=%zu", this->name.c_str(), editPos, dataBeginAt);
status_t readStatus = buffer.readProcessedDataInStream( status_t readStatus = buffer.readProcessedDataInStream(
fd.get(), std::move(p2cPipe.writeFd()), std::move(c2pPipe.readFd()), this->timeoutMs, fd.get(), std::move(p2cPipe.writeFd()), std::move(c2pPipe.readFd()), this->timeoutMs,
isSysfs(mFilenames[index])); isSysfs(mFilenames[index]));
writer->setSectionStats(buffer); writer->setSectionStats(buffer);
if (readStatus != NO_ERROR || buffer.timedOut()) { if (readStatus != NO_ERROR || buffer.timedOut()) {
ALOGW("[%s] failed to read data from gzip: %s, timedout: %s", this->name.string(), ALOGW("[%s] failed to read data from gzip: %s, timedout: %s", this->name.c_str(),
strerror(-readStatus), buffer.timedOut() ? "true" : "false"); strerror(-readStatus), buffer.timedOut() ? "true" : "false");
kill_child(pid); kill_child(pid);
return readStatus; return readStatus;
@ -217,7 +217,7 @@ status_t GZipSection::Execute(ReportWriter* writer) const {
status_t gzipStatus = wait_child(pid); status_t gzipStatus = wait_child(pid);
if (gzipStatus != NO_ERROR) { if (gzipStatus != NO_ERROR) {
ALOGW("[%s] abnormal child process: %s", this->name.string(), strerror(-gzipStatus)); ALOGW("[%s] abnormal child process: %s", this->name.c_str(), strerror(-gzipStatus));
return gzipStatus; return gzipStatus;
} }
// Revisit the actual size from gzip result and edit the internal buffer accordingly. // Revisit the actual size from gzip result and edit the internal buffer accordingly.
@ -290,7 +290,7 @@ status_t WorkerThreadSection::Execute(ReportWriter* writer) const {
FdBuffer buffer; FdBuffer buffer;
err = buffer.read(data->pipe.readFd().get(), this->timeoutMs); err = buffer.read(data->pipe.readFd().get(), this->timeoutMs);
if (err != NO_ERROR) { if (err != NO_ERROR) {
ALOGE("[%s] reader failed with error '%s'", this->name.string(), strerror(-err)); ALOGE("[%s] reader failed with error '%s'", this->name.c_str(), strerror(-err));
} }
// If the worker side is finished, then return its error (which may overwrite // If the worker side is finished, then return its error (which may overwrite
@ -300,7 +300,7 @@ status_t WorkerThreadSection::Execute(ReportWriter* writer) const {
data->pipe.close(); data->pipe.close();
if (data->workerError != NO_ERROR) { if (data->workerError != NO_ERROR) {
err = data->workerError; err = data->workerError;
ALOGE("[%s] worker failed with error '%s'", this->name.string(), strerror(-err)); ALOGE("[%s] worker failed with error '%s'", this->name.c_str(), strerror(-err));
} }
workerDone = data->workerDone; workerDone = data->workerDone;
} }
@ -309,17 +309,17 @@ status_t WorkerThreadSection::Execute(ReportWriter* writer) const {
if (err != NO_ERROR) { if (err != NO_ERROR) {
char errMsg[128]; char errMsg[128];
snprintf(errMsg, 128, "[%s] failed with error '%s'", snprintf(errMsg, 128, "[%s] failed with error '%s'",
this->name.string(), strerror(-err)); this->name.c_str(), strerror(-err));
writer->error(this, err, "WorkerThreadSection failed."); writer->error(this, err, "WorkerThreadSection failed.");
return NO_ERROR; return NO_ERROR;
} }
if (buffer.truncated()) { if (buffer.truncated()) {
ALOGW("[%s] too large, truncating", this->name.string()); ALOGW("[%s] too large, truncating", this->name.c_str());
// Do not write a truncated section. It won't pass through the PrivacyFilter. // Do not write a truncated section. It won't pass through the PrivacyFilter.
return NO_ERROR; return NO_ERROR;
} }
if (!workerDone || buffer.timedOut()) { if (!workerDone || buffer.timedOut()) {
ALOGW("[%s] timed out", this->name.string()); ALOGW("[%s] timed out", this->name.c_str());
return NO_ERROR; return NO_ERROR;
} }
@ -360,18 +360,18 @@ status_t CommandSection::Execute(ReportWriter* writer) const {
Fpipe ihPipe; Fpipe ihPipe;
if (!cmdPipe.init() || !ihPipe.init()) { if (!cmdPipe.init() || !ihPipe.init()) {
ALOGW("[%s] failed to setup pipes", this->name.string()); ALOGW("[%s] failed to setup pipes", this->name.c_str());
return -errno; return -errno;
} }
pid_t cmdPid = fork_execute_cmd((char* const*)mCommand, NULL, &cmdPipe); pid_t cmdPid = fork_execute_cmd((char* const*)mCommand, NULL, &cmdPipe);
if (cmdPid == -1) { if (cmdPid == -1) {
ALOGW("[%s] failed to fork", this->name.string()); ALOGW("[%s] failed to fork", this->name.c_str());
return -errno; return -errno;
} }
pid_t ihPid = fork_execute_incident_helper(this->id, &cmdPipe, &ihPipe); pid_t ihPid = fork_execute_incident_helper(this->id, &cmdPipe, &ihPipe);
if (ihPid == -1) { if (ihPid == -1) {
ALOGW("[%s] failed to fork", this->name.string()); ALOGW("[%s] failed to fork", this->name.c_str());
return -errno; return -errno;
} }
@ -381,7 +381,7 @@ status_t CommandSection::Execute(ReportWriter* writer) const {
writer->setSectionStats(buffer); writer->setSectionStats(buffer);
if (readStatus != NO_ERROR || buffer.timedOut()) { if (readStatus != NO_ERROR || buffer.timedOut()) {
ALOGW("[%s] failed to read data from incident helper: %s, timedout: %s", ALOGW("[%s] failed to read data from incident helper: %s, timedout: %s",
this->name.string(), strerror(-readStatus), buffer.timedOut() ? "true" : "false"); this->name.c_str(), strerror(-readStatus), buffer.timedOut() ? "true" : "false");
kill_child(cmdPid); kill_child(cmdPid);
kill_child(ihPid); kill_child(ihPid);
return readStatus; return readStatus;
@ -393,7 +393,7 @@ status_t CommandSection::Execute(ReportWriter* writer) const {
status_t ihStatus = wait_child(ihPid); status_t ihStatus = wait_child(ihPid);
if (cmdStatus != NO_ERROR || ihStatus != NO_ERROR) { if (cmdStatus != NO_ERROR || ihStatus != NO_ERROR) {
ALOGW("[%s] abnormal child processes, return status: command: %s, incident helper: %s", ALOGW("[%s] abnormal child processes, return status: command: %s, incident helper: %s",
this->name.string(), strerror(-cmdStatus), strerror(-ihStatus)); this->name.c_str(), strerror(-cmdStatus), strerror(-ihStatus));
// Not a fatal error. // Not a fatal error.
return NO_ERROR; return NO_ERROR;
} }
@ -428,7 +428,7 @@ status_t DumpsysSection::BlockingCall(unique_fd& pipeWriteFd) const {
sp<IBinder> service = defaultServiceManager()->checkService(mService); sp<IBinder> service = defaultServiceManager()->checkService(mService);
if (service == NULL) { if (service == NULL) {
ALOGW("DumpsysSection: Can't lookup service: %s", String8(mService).string()); ALOGW("DumpsysSection: Can't lookup service: %s", String8(mService).c_str());
return NAME_NOT_FOUND; return NAME_NOT_FOUND;
} }
@ -463,14 +463,14 @@ status_t TextDumpsysSection::Execute(ReportWriter* writer) const {
// checkService won't wait for the service to show up like getService will. // checkService won't wait for the service to show up like getService will.
sp<IBinder> service = defaultServiceManager()->checkService(mService); sp<IBinder> service = defaultServiceManager()->checkService(mService);
if (service == NULL) { if (service == NULL) {
ALOGW("TextDumpsysSection: Can't lookup service: %s", String8(mService).string()); ALOGW("TextDumpsysSection: Can't lookup service: %s", String8(mService).c_str());
return NAME_NOT_FOUND; return NAME_NOT_FOUND;
} }
// Create pipe // Create pipe
Fpipe dumpPipe; Fpipe dumpPipe;
if (!dumpPipe.init()) { if (!dumpPipe.init()) {
ALOGW("[%s] failed to setup pipe", this->name.string()); ALOGW("[%s] failed to setup pipe", this->name.c_str());
return -errno; return -errno;
} }
@ -482,7 +482,7 @@ status_t TextDumpsysSection::Execute(ReportWriter* writer) const {
signal(SIGPIPE, sigpipe_handler); signal(SIGPIPE, sigpipe_handler);
status_t err = service->dump(write_fd.get(), this->mArgs); status_t err = service->dump(write_fd.get(), this->mArgs);
if (err != OK) { if (err != OK) {
ALOGW("[%s] dump thread failed. Error: %s", this->name.string(), strerror(-err)); ALOGW("[%s] dump thread failed. Error: %s", this->name.c_str(), strerror(-err));
} }
write_fd.reset(); write_fd.reset();
}); });
@ -490,7 +490,7 @@ status_t TextDumpsysSection::Execute(ReportWriter* writer) const {
// Collect dump content // Collect dump content
FdBuffer buffer; FdBuffer buffer;
ProtoOutputStream proto; ProtoOutputStream proto;
proto.write(TextDumpProto::COMMAND, std::string(name.string())); proto.write(TextDumpProto::COMMAND, std::string(name.c_str()));
proto.write(TextDumpProto::DUMP_DURATION_NS, int64_t(Nanotime() - start)); proto.write(TextDumpProto::DUMP_DURATION_NS, int64_t(Nanotime() - start));
buffer.write(proto.data()); buffer.write(proto.data());
@ -504,7 +504,7 @@ status_t TextDumpsysSection::Execute(ReportWriter* writer) const {
dumpPipe.readFd().reset(); dumpPipe.readFd().reset();
writer->setSectionStats(buffer); writer->setSectionStats(buffer);
if (readStatus != OK || buffer.timedOut()) { if (readStatus != OK || buffer.timedOut()) {
ALOGW("[%s] failed to read from dumpsys: %s, timedout: %s", this->name.string(), ALOGW("[%s] failed to read from dumpsys: %s, timedout: %s", this->name.c_str(),
strerror(-readStatus), buffer.timedOut() ? "true" : "false"); strerror(-readStatus), buffer.timedOut() ? "true" : "false");
worker.detach(); worker.detach();
return readStatus; return readStatus;
@ -579,7 +579,7 @@ status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
// Hence forking a new process to prevent memory fragmentation. // Hence forking a new process to prevent memory fragmentation.
pid_t pid = fork(); pid_t pid = fork();
if (pid < 0) { if (pid < 0) {
ALOGW("[%s] failed to fork", this->name.string()); ALOGW("[%s] failed to fork", this->name.c_str());
return errno; return errno;
} }
if (pid > 0) { if (pid > 0) {
@ -593,7 +593,7 @@ status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
android_logger_list_free); android_logger_list_free);
if (android_logger_open(loggers.get(), mLogID) == NULL) { if (android_logger_open(loggers.get(), mLogID) == NULL) {
ALOGE("[%s] Can't get logger.", this->name.string()); ALOGE("[%s] Can't get logger.", this->name.c_str());
_exit(EXIT_FAILURE); _exit(EXIT_FAILURE);
} }
@ -610,7 +610,7 @@ status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
// status = -EAGAIN, graceful indication for ANDRODI_LOG_NONBLOCK that this is the end. // status = -EAGAIN, graceful indication for ANDRODI_LOG_NONBLOCK that this is the end.
if (status <= 0) { if (status <= 0) {
if (status != -EAGAIN) { if (status != -EAGAIN) {
ALOGW("[%s] fails to read a log_msg.\n", this->name.string()); ALOGW("[%s] fails to read a log_msg.\n", this->name.c_str());
err = -status; err = -status;
} }
break; break;
@ -680,7 +680,7 @@ status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
AndroidLogEntry entry; AndroidLogEntry entry;
status = android_log_processLogBuffer(&msg.entry, &entry); status = android_log_processLogBuffer(&msg.entry, &entry);
if (status != OK) { if (status != OK) {
ALOGW("[%s] fails to process to an entry.\n", this->name.string()); ALOGW("[%s] fails to process to an entry.\n", this->name.c_str());
err = status; err = status;
break; break;
} }
@ -702,7 +702,7 @@ status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
} }
if (!proto.flush(pipeWriteFd.get())) { if (!proto.flush(pipeWriteFd.get())) {
if (errno == EPIPE) { if (errno == EPIPE) {
ALOGW("[%s] wrote to a broken pipe\n", this->name.string()); ALOGW("[%s] wrote to a broken pipe\n", this->name.c_str());
} }
err = errno; err = errno;
break; break;
@ -757,7 +757,7 @@ status_t TombstoneSection::BlockingCall(unique_fd& pipeWriteFd) const {
} }
ssize_t exe_name_len = readlink(link_name, exe_name, EXE_NAME_LEN); ssize_t exe_name_len = readlink(link_name, exe_name, EXE_NAME_LEN);
if (exe_name_len < 0 || exe_name_len >= EXE_NAME_LEN) { if (exe_name_len < 0 || exe_name_len >= EXE_NAME_LEN) {
ALOGE("[%s] Can't read '%s': %s", name.string(), link_name, strerror(errno)); ALOGE("[%s] Can't read '%s': %s", name.c_str(), link_name, strerror(errno));
continue; continue;
} }
// readlink(2) does not put a null terminator at the end // readlink(2) does not put a null terminator at the end
@ -788,7 +788,7 @@ status_t TombstoneSection::BlockingCall(unique_fd& pipeWriteFd) const {
Fpipe dumpPipe; Fpipe dumpPipe;
if (!dumpPipe.init()) { if (!dumpPipe.init()) {
ALOGW("[%s] failed to setup dump pipe", this->name.string()); ALOGW("[%s] failed to setup dump pipe", this->name.c_str());
err = -errno; err = -errno;
break; break;
} }
@ -822,12 +822,12 @@ status_t TombstoneSection::BlockingCall(unique_fd& pipeWriteFd) const {
// Wait on the child to avoid it becoming a zombie process. // Wait on the child to avoid it becoming a zombie process.
status_t cStatus = wait_child(child); status_t cStatus = wait_child(child);
if (err != NO_ERROR) { if (err != NO_ERROR) {
ALOGW("[%s] failed to read stack dump: %d", this->name.string(), err); ALOGW("[%s] failed to read stack dump: %d", this->name.c_str(), err);
dumpPipe.readFd().reset(); dumpPipe.readFd().reset();
break; break;
} }
if (cStatus != NO_ERROR) { if (cStatus != NO_ERROR) {
ALOGE("[%s] child had an issue: %s\n", this->name.string(), strerror(-cStatus)); ALOGE("[%s] child had an issue: %s\n", this->name.c_str(), strerror(-cStatus));
} }
// Resize dump buffer // Resize dump buffer
@ -852,7 +852,7 @@ status_t TombstoneSection::BlockingCall(unique_fd& pipeWriteFd) const {
dumpPipe.readFd().reset(); dumpPipe.readFd().reset();
if (!proto.flush(pipeWriteFd.get())) { if (!proto.flush(pipeWriteFd.get())) {
if (errno == EPIPE) { if (errno == EPIPE) {
ALOGE("[%s] wrote to a broken pipe\n", this->name.string()); ALOGE("[%s] wrote to a broken pipe\n", this->name.c_str());
} }
err = errno; err = errno;
break; break;

View File

@ -62,8 +62,8 @@ void clean_directory(const char* directory, off_t maxSize, size_t maxCount) {
continue; continue;
} }
String8 filename = dirbase + entry->d_name; String8 filename = dirbase + entry->d_name;
if (stat(filename.string(), &st) != 0) { if (stat(filename.c_str(), &st) != 0) {
ALOGE("Unable to stat file %s", filename.string()); ALOGE("Unable to stat file %s", filename.c_str());
continue; continue;
} }
if (!S_ISREG(st.st_mode)) { if (!S_ISREG(st.st_mode)) {
@ -88,7 +88,7 @@ void clean_directory(const char* directory, off_t maxSize, size_t maxCount) {
// Remove files until we're under our limits. // Remove files until we're under our limits.
for (std::vector<std::pair<String8, struct stat>>::iterator it = files.begin(); for (std::vector<std::pair<String8, struct stat>>::iterator it = files.begin();
it != files.end() && totalSize >= maxSize && totalCount >= maxCount; it++) { it != files.end() && totalSize >= maxSize && totalCount >= maxCount; it++) {
remove(it->first.string()); remove(it->first.c_str());
totalSize -= it->second.st_size; totalSize -= it->second.st_size;
totalCount--; totalCount--;
} }

View File

@ -352,7 +352,7 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName
const char* dirStr = env->GetStringUTFChars(internalDataDir, NULL); const char* dirStr = env->GetStringUTFChars(internalDataDir, NULL);
code->internalDataPathObj = dirStr; code->internalDataPathObj = dirStr;
code->internalDataPath = code->internalDataPathObj.string(); code->internalDataPath = code->internalDataPathObj.c_str();
env->ReleaseStringUTFChars(internalDataDir, dirStr); env->ReleaseStringUTFChars(internalDataDir, dirStr);
if (externalDataDir != NULL) { if (externalDataDir != NULL) {
@ -360,7 +360,7 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName
code->externalDataPathObj = dirStr; code->externalDataPathObj = dirStr;
env->ReleaseStringUTFChars(externalDataDir, dirStr); env->ReleaseStringUTFChars(externalDataDir, dirStr);
} }
code->externalDataPath = code->externalDataPathObj.string(); code->externalDataPath = code->externalDataPathObj.c_str();
code->sdkVersion = sdkVersion; code->sdkVersion = sdkVersion;
@ -372,7 +372,7 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName
code->obbPathObj = dirStr; code->obbPathObj = dirStr;
env->ReleaseStringUTFChars(obbDir, dirStr); env->ReleaseStringUTFChars(obbDir, dirStr);
} }
code->obbPath = code->obbPathObj.string(); code->obbPath = code->obbPathObj.c_str();
jbyte* rawSavedState = NULL; jbyte* rawSavedState = NULL;
jsize rawSavedSize = 0; jsize rawSavedSize = 0;

View File

@ -106,15 +106,14 @@ static jint backupToTar(JNIEnv* env, jobject clazz, jstring packageNameObj,
: NULL; : NULL;
if (path.length() < rootpath.length()) { if (path.length() < rootpath.length()) {
ALOGE("file path [%s] shorter than root path [%s]", ALOGE("file path [%s] shorter than root path [%s]", path.c_str(), rootpath.c_str());
path.string(), rootpath.string());
return (jint) -1; return (jint) -1;
} }
off64_t tarSize = 0; off64_t tarSize = 0;
jint err = write_tarfile(packageName, domain, rootpath, path, &tarSize, writer); jint err = write_tarfile(packageName, domain, rootpath, path, &tarSize, writer);
if (!err) { if (!err) {
ALOGI("measured [%s] at %lld", path.string(), (long long)tarSize); ALOGI("measured [%s] at %lld", path.c_str(), (long long)tarSize);
env->CallVoidMethod(dataOutputObj, sFullBackupDataOutput.addSize, (jlong) tarSize); env->CallVoidMethod(dataOutputObj, sFullBackupDataOutput.addSize, (jlong) tarSize);
} }

View File

@ -76,7 +76,7 @@ readNextHeader_native(JNIEnv* env, jobject clazz, jlong r, jobject entity)
return err < 0 ? err : -1; return err < 0 ? err : -1;
} }
// TODO: Set the fields in the entity object // TODO: Set the fields in the entity object
jstring keyStr = env->NewStringUTF(key.string()); jstring keyStr = env->NewStringUTF(key.c_str());
env->SetObjectField(entity, s_keyField, keyStr); env->SetObjectField(entity, s_keyField, keyStr);
env->SetIntField(entity, s_dataSizeField, dataSize); env->SetIntField(entity, s_dataSizeField, dataSize);
return 0; return 0;

View File

@ -118,7 +118,7 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
} }
env->SetIntField(headerObj, s_chunkSizeField, flattenedHeader.dataSize); env->SetIntField(headerObj, s_chunkSizeField, flattenedHeader.dataSize);
env->SetObjectField(headerObj, s_keyPrefixField, env->NewStringUTF(keyPrefix.string())); env->SetObjectField(headerObj, s_keyPrefixField, env->NewStringUTF(keyPrefix.c_str()));
return (jint) 0; return (jint) 0;
} }

View File

@ -58,13 +58,13 @@ static void throwExceptionWithRowCol(JNIEnv* env, jint row, jint column) {
msg.appendFormat("Couldn't read row %d, col %d from CursorWindow. " msg.appendFormat("Couldn't read row %d, col %d from CursorWindow. "
"Make sure the Cursor is initialized correctly before accessing data from it.", "Make sure the Cursor is initialized correctly before accessing data from it.",
row, column); row, column);
jniThrowException(env, "java/lang/IllegalStateException", msg.string()); jniThrowException(env, "java/lang/IllegalStateException", msg.c_str());
} }
static void throwUnknownTypeException(JNIEnv * env, jint type) { static void throwUnknownTypeException(JNIEnv * env, jint type) {
String8 msg; String8 msg;
msg.appendFormat("UNKNOWN type %d", type); msg.appendFormat("UNKNOWN type %d", type);
jniThrowException(env, "java/lang/IllegalStateException", msg.string()); jniThrowException(env, "java/lang/IllegalStateException", msg.c_str());
} }
static int getFdCount() { static int getFdCount() {
@ -107,7 +107,7 @@ static jlong nativeCreate(JNIEnv* env, jclass clazz, jstring nameObj, jint curso
fail: fail:
jniThrowExceptionFmt(env, "android/database/CursorWindowAllocationException", jniThrowExceptionFmt(env, "android/database/CursorWindowAllocationException",
"Could not allocate CursorWindow '%s' of size %d due to error %d.", "Could not allocate CursorWindow '%s' of size %d due to error %d.",
name.string(), cursorWindowSize, status); name.c_str(), cursorWindowSize, status);
return 0; return 0;
} }
@ -139,7 +139,7 @@ static void nativeDispose(JNIEnv* env, jclass clazz, jlong windowPtr) {
static jstring nativeGetName(JNIEnv* env, jclass clazz, jlong windowPtr) { static jstring nativeGetName(JNIEnv* env, jclass clazz, jlong windowPtr) {
CursorWindow* window = reinterpret_cast<CursorWindow*>(windowPtr); CursorWindow* window = reinterpret_cast<CursorWindow*>(windowPtr);
return env->NewStringUTF(window->name().string()); return env->NewStringUTF(window->name().c_str());
} }
static void nativeWriteToParcel(JNIEnv * env, jclass clazz, jlong windowPtr, static void nativeWriteToParcel(JNIEnv * env, jclass clazz, jlong windowPtr,
@ -151,7 +151,7 @@ static void nativeWriteToParcel(JNIEnv * env, jclass clazz, jlong windowPtr,
if (status) { if (status) {
String8 msg; String8 msg;
msg.appendFormat("Could not write CursorWindow to Parcel due to error %d.", status); msg.appendFormat("Could not write CursorWindow to Parcel due to error %d.", status);
jniThrowRuntimeException(env, msg.string()); jniThrowRuntimeException(env, msg.c_str());
} }
} }
@ -267,7 +267,7 @@ static jstring nativeGetString(JNIEnv* env, jclass clazz, jlong windowPtr,
// doesn't like UTF-8 strings with high codepoints. It actually expects // doesn't like UTF-8 strings with high codepoints. It actually expects
// Modified UTF-8 with encoded surrogate pairs. // Modified UTF-8 with encoded surrogate pairs.
String16 utf16(value, sizeIncludingNull - 1); String16 utf16(value, sizeIncludingNull - 1);
return env->NewString(reinterpret_cast<const jchar*>(utf16.string()), utf16.size()); return env->NewString(reinterpret_cast<const jchar*>(utf16.c_str()), utf16.size());
} else if (type == CursorWindow::FIELD_TYPE_INTEGER) { } else if (type == CursorWindow::FIELD_TYPE_INTEGER) {
int64_t value = window->getFieldSlotValueLong(fieldSlot); int64_t value = window->getFieldSlotValueLong(fieldSlot);
char buf[32]; char buf[32];

View File

@ -229,7 +229,7 @@ void throw_sqlite3_exception(JNIEnv* env, int errcode,
fullMessage.append(": "); fullMessage.append(": ");
fullMessage.append(message); fullMessage.append(message);
} }
jniThrowException(env, exceptionClass, fullMessage.string()); jniThrowException(env, exceptionClass, fullMessage.c_str());
} else { } else {
jniThrowException(env, exceptionClass, message); jniThrowException(env, exceptionClass, message);
} }

View File

@ -91,15 +91,14 @@ struct SQLiteConnection {
// Called each time a statement begins execution, when tracing is enabled. // Called each time a statement begins execution, when tracing is enabled.
static void sqliteTraceCallback(void *data, const char *sql) { static void sqliteTraceCallback(void *data, const char *sql) {
SQLiteConnection* connection = static_cast<SQLiteConnection*>(data); SQLiteConnection* connection = static_cast<SQLiteConnection*>(data);
ALOG(LOG_VERBOSE, SQLITE_TRACE_TAG, "%s: \"%s\"\n", ALOG(LOG_VERBOSE, SQLITE_TRACE_TAG, "%s: \"%s\"\n", connection->label.c_str(), sql);
connection->label.string(), sql);
} }
// Called each time a statement finishes execution, when profiling is enabled. // Called each time a statement finishes execution, when profiling is enabled.
static void sqliteProfileCallback(void *data, const char *sql, sqlite3_uint64 tm) { static void sqliteProfileCallback(void *data, const char *sql, sqlite3_uint64 tm) {
SQLiteConnection* connection = static_cast<SQLiteConnection*>(data); SQLiteConnection* connection = static_cast<SQLiteConnection*>(data);
ALOG(LOG_VERBOSE, SQLITE_PROFILE_TAG, "%s: \"%s\" took %0.3f ms\n", ALOG(LOG_VERBOSE, SQLITE_PROFILE_TAG, "%s: \"%s\" took %0.3f ms\n", connection->label.c_str(),
connection->label.string(), sql, tm * 0.000001f); sql, tm * 0.000001f);
} }
// Called after each SQLite VM instruction when cancelation is enabled. // Called after each SQLite VM instruction when cancelation is enabled.
@ -130,7 +129,7 @@ static jlong nativeOpen(JNIEnv* env, jclass clazz, jstring pathStr, jint openFla
env->ReleaseStringUTFChars(labelStr, labelChars); env->ReleaseStringUTFChars(labelStr, labelChars);
sqlite3* db; sqlite3* db;
int err = sqlite3_open_v2(path.string(), &db, sqliteFlags, NULL); int err = sqlite3_open_v2(path.c_str(), &db, sqliteFlags, NULL);
if (err != SQLITE_OK) { if (err != SQLITE_OK) {
throw_sqlite3_exception_errcode(env, err, "Could not open database"); throw_sqlite3_exception_errcode(env, err, "Could not open database");
return 0; return 0;
@ -180,7 +179,7 @@ static jlong nativeOpen(JNIEnv* env, jclass clazz, jstring pathStr, jint openFla
sqlite3_profile(db, &sqliteProfileCallback, connection); sqlite3_profile(db, &sqliteProfileCallback, connection);
} }
ALOGV("Opened connection %p with label '%s'", db, label.string()); ALOGV("Opened connection %p with label '%s'", db, label.c_str());
return reinterpret_cast<jlong>(connection); return reinterpret_cast<jlong>(connection);
} }
@ -760,7 +759,7 @@ static jlong nativeExecuteForCursorWindow(JNIEnv* env, jclass clazz,
if (status) { if (status) {
String8 msg; String8 msg;
msg.appendFormat("Failed to clear the cursor window, status=%d", status); msg.appendFormat("Failed to clear the cursor window, status=%d", status);
throw_sqlite3_exception(env, connection->db, msg.string()); throw_sqlite3_exception(env, connection->db, msg.c_str());
return 0; return 0;
} }
@ -770,7 +769,7 @@ static jlong nativeExecuteForCursorWindow(JNIEnv* env, jclass clazz,
String8 msg; String8 msg;
msg.appendFormat("Failed to set the cursor window column count to %d, status=%d", msg.appendFormat("Failed to set the cursor window column count to %d, status=%d",
numColumns, status); numColumns, status);
throw_sqlite3_exception(env, connection->db, msg.string()); throw_sqlite3_exception(env, connection->db, msg.c_str());
return 0; return 0;
} }
@ -845,7 +844,7 @@ static jlong nativeExecuteForCursorWindow(JNIEnv* env, jclass clazz,
String8 msg; String8 msg;
msg.appendFormat("Row too big to fit into CursorWindow requiredPos=%d, totalRows=%d", msg.appendFormat("Row too big to fit into CursorWindow requiredPos=%d, totalRows=%d",
requiredPos, totalRows); requiredPos, totalRows);
throw_sqlite3_exception(env, SQLITE_TOOBIG, NULL, msg.string()); throw_sqlite3_exception(env, SQLITE_TOOBIG, NULL, msg.c_str());
return 0; return 0;
} }

View File

@ -100,8 +100,8 @@ static jbyteArray DdmHandleNativeHeap_getLeakInfo(JNIEnv* env, jobject) {
if (array != NULL) { if (array != NULL) {
env->SetByteArrayRegion(array, 0, env->SetByteArrayRegion(array, 0,
sizeof(header), reinterpret_cast<jbyte*>(&header)); sizeof(header), reinterpret_cast<jbyte*>(&header));
env->SetByteArrayRegion(array, sizeof(header), env->SetByteArrayRegion(array, sizeof(header), maps.size(),
maps.size(), reinterpret_cast<const jbyte*>(maps.string())); reinterpret_cast<const jbyte*>(maps.c_str()));
env->SetByteArrayRegion(array, sizeof(header) + maps.size(), env->SetByteArrayRegion(array, sizeof(header) + maps.size(),
header.allocSize, reinterpret_cast<jbyte*>(leak_info.buffer)); header.allocSize, reinterpret_cast<jbyte*>(leak_info.buffer));
} }

View File

@ -878,7 +878,7 @@ static jstring android_hardware_Camera_getParameters(JNIEnv *env, jobject thiz)
jniThrowRuntimeException(env, "getParameters failed (empty parameters)"); jniThrowRuntimeException(env, "getParameters failed (empty parameters)");
return 0; return 0;
} }
return env->NewStringUTF(params8.string()); return env->NewStringUTF(params8.c_str());
} }
static void android_hardware_Camera_reconnect(JNIEnv *env, jobject thiz) static void android_hardware_Camera_reconnect(JNIEnv *env, jobject thiz)

View File

@ -514,7 +514,7 @@ static void CameraMetadata_dump(JNIEnv *env, jclass thiz, jlong ptr) {
ssize_t res; ssize_t res;
while ((res = TEMP_FAILURE_RETRY(read(readFd, &out[0], /*count*/1))) > 0) { while ((res = TEMP_FAILURE_RETRY(read(readFd, &out[0], /*count*/1))) > 0) {
if (out[0] == '\n') { if (out[0] == '\n') {
ALOGD("%s", logLine.string()); ALOGD("%s", logLine.c_str());
logLine.clear(); logLine.clear();
} else { } else {
logLine.append(out); logLine.append(out);
@ -527,7 +527,7 @@ static void CameraMetadata_dump(JNIEnv *env, jclass thiz, jlong ptr) {
errno, strerror(errno)); errno, strerror(errno));
//return; //return;
} else if (!logLine.empty()) { } else if (!logLine.empty()) {
ALOGD("%s", logLine.string()); ALOGD("%s", logLine.c_str());
} }
close(readFd); close(readFd);
@ -956,8 +956,8 @@ static jint CameraMetadata_setupGlobalVendorTagDescriptor(JNIEnv *env, jclass th
return OK; return OK;
} else if (!res.isOk()) { } else if (!res.isOk()) {
VendorTagDescriptor::clearGlobalVendorTagDescriptor(); VendorTagDescriptor::clearGlobalVendorTagDescriptor();
ALOGE("%s: Failed to setup vendor tag descriptors: %s", ALOGE("%s: Failed to setup vendor tag descriptors: %s", __FUNCTION__,
__FUNCTION__, res.toString8().string()); res.toString8().c_str());
return res.serviceSpecificErrorCode(); return res.serviceSpecificErrorCode();
} }
if (0 < desc->getTagCount()) { if (0 < desc->getTagCount()) {
@ -971,8 +971,8 @@ static jint CameraMetadata_setupGlobalVendorTagDescriptor(JNIEnv *env, jclass th
return OK; return OK;
} else if (!res.isOk()) { } else if (!res.isOk()) {
VendorTagDescriptorCache::clearGlobalVendorTagCache(); VendorTagDescriptorCache::clearGlobalVendorTagCache();
ALOGE("%s: Failed to setup vendor tag cache: %s", ALOGE("%s: Failed to setup vendor tag cache: %s", __FUNCTION__,
__FUNCTION__, res.toString8().string()); res.toString8().c_str());
return res.serviceSpecificErrorCode(); return res.serviceSpecificErrorCode();
} }

View File

@ -1543,7 +1543,8 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image
String8 captureTime = nativeContext->getCaptureTime(); String8 captureTime = nativeContext->getCaptureTime();
if (writer->addEntry(TAG_DATETIME, NativeContext::DATETIME_COUNT, if (writer->addEntry(TAG_DATETIME, NativeContext::DATETIME_COUNT,
reinterpret_cast<const uint8_t*>(captureTime.string()), TIFF_IFD_0) != OK) { reinterpret_cast<const uint8_t*>(captureTime.c_str()),
TIFF_IFD_0) != OK) {
jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
"Invalid metadata for tag %x", TAG_DATETIME); "Invalid metadata for tag %x", TAG_DATETIME);
return nullptr; return nullptr;
@ -1551,7 +1552,8 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image
// datetime original // datetime original
if (writer->addEntry(TAG_DATETIMEORIGINAL, NativeContext::DATETIME_COUNT, if (writer->addEntry(TAG_DATETIMEORIGINAL, NativeContext::DATETIME_COUNT,
reinterpret_cast<const uint8_t*>(captureTime.string()), TIFF_IFD_0) != OK) { reinterpret_cast<const uint8_t*>(captureTime.c_str()),
TIFF_IFD_0) != OK) {
jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
"Invalid metadata for tag %x", TAG_DATETIMEORIGINAL); "Invalid metadata for tag %x", TAG_DATETIMEORIGINAL);
return nullptr; return nullptr;
@ -1879,8 +1881,10 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image
cameraModel += brand.c_str(); cameraModel += brand.c_str();
BAIL_IF_INVALID_RET_NULL_SP(writer->addEntry(TAG_UNIQUECAMERAMODEL, cameraModel.size() + 1, BAIL_IF_INVALID_RET_NULL_SP(writer->addEntry(TAG_UNIQUECAMERAMODEL, cameraModel.size() + 1,
reinterpret_cast<const uint8_t*>(cameraModel.string()), TIFF_IFD_0), env, reinterpret_cast<const uint8_t*>(
TAG_UNIQUECAMERAMODEL, writer); cameraModel.c_str()),
TIFF_IFD_0),
env, TAG_UNIQUECAMERAMODEL, writer);
} }
{ {
@ -2165,7 +2169,8 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image
String8 description = nativeContext->getDescription(); String8 description = nativeContext->getDescription();
size_t len = description.bytes() + 1; size_t len = description.bytes() + 1;
if (writer->addEntry(TAG_IMAGEDESCRIPTION, len, if (writer->addEntry(TAG_IMAGEDESCRIPTION, len,
reinterpret_cast<const uint8_t*>(description.string()), TIFF_IFD_0) != OK) { reinterpret_cast<const uint8_t*>(description.c_str()),
TIFF_IFD_0) != OK) {
jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
"Invalid metadata for tag %x", TAG_IMAGEDESCRIPTION); "Invalid metadata for tag %x", TAG_IMAGEDESCRIPTION);
} }

View File

@ -285,7 +285,7 @@ static void JHwParcel_native_writeInterfaceToken(
hardware::Parcel *parcel = hardware::Parcel *parcel =
JHwParcel::GetNativeContext(env, thiz)->getParcel(); JHwParcel::GetNativeContext(env, thiz)->getParcel();
status_t err = parcel->writeInterfaceToken(nameCopy.string()); status_t err = parcel->writeInterfaceToken(nameCopy.c_str());
signalExceptionForError(env, err); signalExceptionForError(env, err);
} }
} }
@ -687,9 +687,7 @@ static void JHwParcel_native_writeHidlMemory(
static jstring MakeStringObjFromHidlString(JNIEnv *env, const hidl_string &s) { static jstring MakeStringObjFromHidlString(JNIEnv *env, const hidl_string &s) {
String16 utf16String(s.c_str(), s.size()); String16 utf16String(s.c_str(), s.size());
return env->NewString( return env->NewString(reinterpret_cast<const jchar *>(utf16String.c_str()), utf16String.size());
reinterpret_cast<const jchar *>(utf16String.string()),
utf16String.size());
} }
static jstring JHwParcel_native_readString(JNIEnv *env, jobject thiz) { static jstring JHwParcel_native_readString(JNIEnv *env, jobject thiz) {

View File

@ -51,8 +51,8 @@ static bool isMatch(const char* buffer, size_t length) {
const char* field = buffer; const char* field = buffer;
const char* end = buffer + length + 1; const char* end = buffer + length + 1;
do { do {
if (strstr(field, match.string())) { if (strstr(field, match.c_str())) {
ALOGV("Matched uevent message with pattern: %s", match.string()); ALOGV("Matched uevent message with pattern: %s", match.c_str());
return true; return true;
} }
field += strlen(field) + 1; field += strlen(field) + 1;

View File

@ -953,8 +953,10 @@ void signalExceptionForError(JNIEnv* env, jobject obj, status_t err,
String8 msg; String8 msg;
msg.appendFormat("Unknown binder error code. 0x%" PRIx32, err); msg.appendFormat("Unknown binder error code. 0x%" PRIx32, err);
// RemoteException is a checked exception, only throw from certain methods. // RemoteException is a checked exception, only throw from certain methods.
jniThrowException(env, canThrowRemoteException jniThrowException(env,
? "android/os/RemoteException" : "java/lang/RuntimeException", msg.string()); canThrowRemoteException ? "android/os/RemoteException"
: "java/lang/RuntimeException",
msg.c_str());
break; break;
} }
} }
@ -1286,8 +1288,7 @@ static jstring android_os_BinderProxy_getInterfaceDescriptor(JNIEnv* env, jobjec
IBinder* target = getBPNativeData(env, obj)->mObject.get(); IBinder* target = getBPNativeData(env, obj)->mObject.get();
if (target != NULL) { if (target != NULL) {
const String16& desc = target->getInterfaceDescriptor(); const String16& desc = target->getInterfaceDescriptor();
return env->NewString(reinterpret_cast<const jchar*>(desc.string()), return env->NewString(reinterpret_cast<const jchar*>(desc.c_str()), desc.size());
desc.size());
} }
jniThrowException(env, "java/lang/RuntimeException", jniThrowException(env, "java/lang/RuntimeException",
"No binder found for object"); "No binder found for object");

View File

@ -148,7 +148,7 @@ jint android_os_Process_getUidForName(JNIEnv* env, jobject clazz, jstring name)
const size_t N = name8.size(); const size_t N = name8.size();
if (N > 0) { if (N > 0) {
const char* str = name8.string(); const char* str = name8.c_str();
for (size_t i=0; i<N; i++) { for (size_t i=0; i<N; i++) {
if (str[i] < '0' || str[i] > '9') { if (str[i] < '0' || str[i] > '9') {
struct passwd* pwd = getpwnam(str); struct passwd* pwd = getpwnam(str);
@ -180,7 +180,7 @@ jint android_os_Process_getGidForName(JNIEnv* env, jobject clazz, jstring name)
const size_t N = name8.size(); const size_t N = name8.size();
if (N > 0) { if (N > 0) {
const char* str = name8.string(); const char* str = name8.c_str();
for (size_t i=0; i<N; i++) { for (size_t i=0; i<N; i++) {
if (str[i] < '0' || str[i] > '9') { if (str[i] < '0' || str[i] > '9') {
struct group* grp = getgrnam(str); struct group* grp = getgrnam(str);
@ -584,7 +584,7 @@ void android_os_Process_setArgV0(JNIEnv* env, jobject clazz, jstring name)
} }
if (!name8.empty()) { if (!name8.empty()) {
AndroidRuntime::getRuntime()->setArgv0(name8.string(), true /* setProcName */); AndroidRuntime::getRuntime()->setArgv0(name8.c_str(), true /* setProcName */);
} }
} }
@ -690,7 +690,7 @@ void android_os_Process_readProcLines(JNIEnv* env, jobject clazz, jstring fileSt
return; return;
} }
int fd = open(file.string(), O_RDONLY | O_CLOEXEC); int fd = open(file.c_str(), O_RDONLY | O_CLOEXEC);
if (fd >= 0) { if (fd >= 0) {
//ALOGI("Clearing %" PRId32 " sizes", count); //ALOGI("Clearing %" PRId32 " sizes", count);
@ -704,7 +704,7 @@ void android_os_Process_readProcLines(JNIEnv* env, jobject clazz, jstring fileSt
close(fd); close(fd);
if (len < 0) { if (len < 0) {
ALOGW("Unable to read %s", file.string()); ALOGW("Unable to read %s", file.c_str());
len = 0; len = 0;
} }
buffer[len] = 0; buffer[len] = 0;
@ -717,7 +717,7 @@ void android_os_Process_readProcLines(JNIEnv* env, jobject clazz, jstring fileSt
//ALOGI("Parsing at: %s", p); //ALOGI("Parsing at: %s", p);
for (i=0; i<count; i++) { for (i=0; i<count; i++) {
const String8& field = fields[i]; const String8& field = fields[i];
if (strncmp(p, field.string(), field.length()) == 0) { if (strncmp(p, field.c_str(), field.length()) == 0) {
p += field.length(); p += field.length();
while (*p == ' ' || *p == '\t') p++; while (*p == ' ' || *p == '\t') p++;
char* num = p; char* num = p;
@ -729,7 +729,7 @@ void android_os_Process_readProcLines(JNIEnv* env, jobject clazz, jstring fileSt
} }
char* end; char* end;
sizesArray[i] = strtoll(num, &end, 10); sizesArray[i] = strtoll(num, &end, 10);
//ALOGI("Field %s = %" PRId64, field.string(), sizesArray[i]); // ALOGI("Field %s = %" PRId64, field.c_str(), sizesArray[i]);
foundCount++; foundCount++;
break; break;
} }
@ -746,7 +746,7 @@ void android_os_Process_readProcLines(JNIEnv* env, jobject clazz, jstring fileSt
free(buffer); free(buffer);
} else { } else {
ALOGW("Unable to open %s", file.string()); ALOGW("Unable to open %s", file.c_str());
} }
//ALOGI("Done!"); //ALOGI("Done!");

View File

@ -167,8 +167,8 @@ void JNIOnInfoListener::onInfo(const DrmInfoEvent& event) {
jint uniqueId = event.getUniqueId(); jint uniqueId = event.getUniqueId();
jint type = event.getType(); jint type = event.getType();
JNIEnv *env = AndroidRuntime::getJNIEnv(); JNIEnv *env = AndroidRuntime::getJNIEnv();
jstring message = env->NewStringUTF(event.getMessage().string()); jstring message = env->NewStringUTF(event.getMessage().c_str());
ALOGV("JNIOnInfoListener::onInfo => %d | %d | %s", uniqueId, type, event.getMessage().string()); ALOGV("JNIOnInfoListener::onInfo => %d | %d | %s", uniqueId, type, event.getMessage().c_str());
env->CallStaticVoidMethod( env->CallStaticVoidMethod(
mClass, mClass,
@ -273,15 +273,15 @@ static jobject android_drm_DrmManagerClient_getConstraintsFromContent(
const char* value = pConstraints->getAsByteArray(&key); const char* value = pConstraints->getAsByteArray(&key);
if (NULL != value) { if (NULL != value) {
ScopedLocalRef<jbyteArray> dataArray(env, env->NewByteArray(strlen(value))); ScopedLocalRef<jbyteArray> dataArray(env, env->NewByteArray(strlen(value)));
ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string())); ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.c_str()));
env->SetByteArrayRegion(dataArray.get(), 0, strlen(value), (jbyte*)value); env->SetByteArrayRegion(dataArray.get(), 0, strlen(value), (jbyte*)value);
env->CallVoidMethod(constraints, ContentValues_putByteArray, env->CallVoidMethod(constraints, ContentValues_putByteArray,
keyString.get(), dataArray.get()); keyString.get(), dataArray.get());
} }
} else { } else {
String8 value = pConstraints->get(key); String8 value = pConstraints->get(key);
ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string())); ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.c_str()));
ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string())); ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.c_str()));
env->CallVoidMethod(constraints, ContentValues_putString, env->CallVoidMethod(constraints, ContentValues_putString,
keyString.get(), valueString.get()); keyString.get(), valueString.get());
} }
@ -320,8 +320,8 @@ static jobject android_drm_DrmManagerClient_getMetadataFromContent(
// insert the entry<constraintKey, constraintValue> // insert the entry<constraintKey, constraintValue>
// to newly created java object // to newly created java object
String8 value = pMetadata->get(key); String8 value = pMetadata->get(key);
ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string())); ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.c_str()));
ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string())); ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.c_str()));
env->CallVoidMethod(metadata, ContentValues_putString, env->CallVoidMethod(metadata, ContentValues_putString,
keyString.get(), valueString.get()); keyString.get(), valueString.get());
} }
@ -357,19 +357,19 @@ static jobjectArray android_drm_DrmManagerClient_getAllSupportInfo(
env->CallVoidMethod( env->CallVoidMethod(
drmSupportInfo, env->GetMethodID(clazz, "setDescription", "(Ljava/lang/String;)V"), drmSupportInfo, env->GetMethodID(clazz, "setDescription", "(Ljava/lang/String;)V"),
env->NewStringUTF(info.getDescription().string())); env->NewStringUTF(info.getDescription().c_str()));
DrmSupportInfo::MimeTypeIterator iterator = info.getMimeTypeIterator(); DrmSupportInfo::MimeTypeIterator iterator = info.getMimeTypeIterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
String8 value = iterator.next(); String8 value = iterator.next();
env->CallVoidMethod(drmSupportInfo, addMimeTypeId, env->NewStringUTF(value.string())); env->CallVoidMethod(drmSupportInfo, addMimeTypeId, env->NewStringUTF(value.c_str()));
} }
DrmSupportInfo::FileSuffixIterator it = info.getFileSuffixIterator(); DrmSupportInfo::FileSuffixIterator it = info.getFileSuffixIterator();
while (it.hasNext()) { while (it.hasNext()) {
String8 value = it.next(); String8 value = it.next();
env->CallVoidMethod( env->CallVoidMethod(
drmSupportInfo, addFileSuffixId, env->NewStringUTF(value.string())); drmSupportInfo, addFileSuffixId, env->NewStringUTF(value.c_str()));
} }
env->SetObjectArrayElement(array, i, drmSupportInfo); env->SetObjectArrayElement(array, i, drmSupportInfo);
@ -459,7 +459,7 @@ static jobject android_drm_DrmManagerClient_processDrmInfo(
String8 keyString = Utility::getStringValue(env, key.get()); String8 keyString = Utility::getStringValue(env, key.get());
String8 valueString = Utility::getStringValue(env, valString.get()); String8 valueString = Utility::getStringValue(env, valString.get());
ALOGV("Key: %s | Value: %s", keyString.string(), valueString.string()); ALOGV("Key: %s | Value: %s", keyString.c_str(), valueString.c_str());
drmInfo.put(keyString, valueString); drmInfo.put(keyString, valueString);
} }
@ -488,15 +488,15 @@ static jobject android_drm_DrmManagerClient_processDrmInfo(
jmethodID constructorId jmethodID constructorId
= env->GetMethodID(clazz, "<init>", "([BLjava/lang/String;Ljava/lang/String;)V"); = env->GetMethodID(clazz, "<init>", "([BLjava/lang/String;Ljava/lang/String;)V");
jobject processedData = env->NewObject(clazz, constructorId, dataArray, jobject processedData = env->NewObject(clazz, constructorId, dataArray,
env->NewStringUTF((drmInfo.get(DrmInfoRequest::ACCOUNT_ID)).string()), env->NewStringUTF((drmInfo.get(DrmInfoRequest::ACCOUNT_ID)).c_str()),
env->NewStringUTF((drmInfo.get(DrmInfoRequest::SUBSCRIPTION_ID)).string())); env->NewStringUTF((drmInfo.get(DrmInfoRequest::SUBSCRIPTION_ID)).c_str()));
constructorId constructorId
= env->GetMethodID(localRef, = env->GetMethodID(localRef,
"<init>", "(IILandroid/drm/ProcessedData;Ljava/lang/String;)V"); "<init>", "(IILandroid/drm/ProcessedData;Ljava/lang/String;)V");
drmInfoStatus = env->NewObject(localRef, constructorId, statusCode, infoType, drmInfoStatus = env->NewObject(localRef, constructorId, statusCode, infoType,
processedData, env->NewStringUTF(pDrmInfoStatus->mimeType.string())); processedData, env->NewStringUTF(pDrmInfoStatus->mimeType.c_str()));
} }
delete[] mData; mData = NULL; delete[] mData; mData = NULL;
@ -533,7 +533,7 @@ static jobject android_drm_DrmManagerClient_acquireDrmInfo(
String8 keyString = Utility::getStringValue(env, key.get()); String8 keyString = Utility::getStringValue(env, key.get());
String8 valueString = Utility::getStringValue(env, value.get()); String8 valueString = Utility::getStringValue(env, value.get());
ALOGV("Key: %s | Value: %s", keyString.string(), valueString.string()); ALOGV("Key: %s | Value: %s", keyString.c_str(), valueString.c_str());
drmInfoReq.put(keyString, valueString); drmInfoReq.put(keyString, valueString);
} }
@ -554,7 +554,7 @@ static jobject android_drm_DrmManagerClient_acquireDrmInfo(
drmInfoObject drmInfoObject
= env->NewObject(localRef, = env->NewObject(localRef,
env->GetMethodID(localRef, "<init>", "(I[BLjava/lang/String;)V"), env->GetMethodID(localRef, "<init>", "(I[BLjava/lang/String;)V"),
mInfoType, dataArray, env->NewStringUTF(pDrmInfo->getMimeType().string())); mInfoType, dataArray, env->NewStringUTF(pDrmInfo->getMimeType().c_str()));
DrmInfo::KeyIterator it = pDrmInfo->keyIterator(); DrmInfo::KeyIterator it = pDrmInfo->keyIterator();
jmethodID putMethodId jmethodID putMethodId
@ -563,8 +563,8 @@ static jobject android_drm_DrmManagerClient_acquireDrmInfo(
while (it.hasNext()) { while (it.hasNext()) {
String8 key = it.next(); String8 key = it.next();
String8 value = pDrmInfo->get(key); String8 value = pDrmInfo->get(key);
ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string())); ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.c_str()));
ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string())); ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.c_str()));
env->CallVoidMethod(drmInfoObject, putMethodId, env->CallVoidMethod(drmInfoObject, putMethodId,
keyString.get(), valueString.get()); keyString.get(), valueString.get());
} }
@ -602,7 +602,7 @@ static jstring android_drm_DrmManagerClient_getOriginalMimeType(
->getOriginalMimeType(uniqueId, ->getOriginalMimeType(uniqueId,
Utility::getStringValue(env, path), fd); Utility::getStringValue(env, path), fd);
ALOGV("getOriginalMimeType Exit"); ALOGV("getOriginalMimeType Exit");
return env->NewStringUTF(mimeType.string()); return env->NewStringUTF(mimeType.c_str());
} }
static jint android_drm_DrmManagerClient_checkRightsStatus( static jint android_drm_DrmManagerClient_checkRightsStatus(

View File

@ -152,8 +152,8 @@ IncidentReportArgs::readFromParcel(const Parcel* in)
} }
mPrivacyPolicy = privacyPolicy; mPrivacyPolicy = privacyPolicy;
mReceiverPkg = String8(in->readString16()).string(); mReceiverPkg = String8(in->readString16()).c_str();
mReceiverCls = String8(in->readString16()).string(); mReceiverCls = String8(in->readString16()).c_str();
int32_t gzip; int32_t gzip;
err = in->readInt32(&gzip); err = in->readInt32(&gzip);

View File

@ -196,7 +196,7 @@ DropBoxManager::addData(const String16& tag, uint8_t const* data,
vector<uint8_t> dataArg; vector<uint8_t> dataArg;
dataArg.assign(data, data + size); dataArg.assign(data, data + size);
Status status = service->addData(tag, dataArg, flags); Status status = service->addData(tag, dataArg, flags);
ALOGD("service->add returned %s", status.toString8().string()); ALOGD("service->add returned %s", status.toString8().c_str());
return status; return status;
} }
@ -230,7 +230,7 @@ DropBoxManager::addFile(const String16& tag, int fd, int flags)
android::base::unique_fd uniqueFd(fd); android::base::unique_fd uniqueFd(fd);
android::os::ParcelFileDescriptor parcelFd(std::move(uniqueFd)); android::os::ParcelFileDescriptor parcelFd(std::move(uniqueFd));
Status status = service->addFile(tag, parcelFd, flags); Status status = service->addFile(tag, parcelFd, flags);
ALOGD("service->add returned %s", status.toString8().string()); ALOGD("service->add returned %s", status.toString8().c_str());
return status; return status;
} }

View File

@ -617,7 +617,7 @@ static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image) {
"match the ImageReader's configured buffer format 0x%x.", "match the ImageReader's configured buffer format 0x%x.",
bufferFormat, ctx->getBufferFormat()); bufferFormat, ctx->getBufferFormat());
jniThrowException(env, "java/lang/UnsupportedOperationException", jniThrowException(env, "java/lang/UnsupportedOperationException",
msg.string()); msg.c_str());
return -1; return -1;
} }
} }
@ -789,7 +789,7 @@ static jobjectArray ImageReader_createImagePlanes(JNIEnv* env, jobject /*thiz*/,
String8 msg; String8 msg;
msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)" msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)"
" must be 0", halReaderFormat, numPlanes); " must be 0", halReaderFormat, numPlanes);
jniThrowException(env, "java/lang/IllegalArgumentException", msg.string()); jniThrowException(env, "java/lang/IllegalArgumentException", msg.c_str());
return NULL; return NULL;
} }
@ -854,7 +854,7 @@ static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz,
String8 msg; String8 msg;
msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)" msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)"
" must be 0", halReaderFormat, numPlanes); " must be 0", halReaderFormat, numPlanes);
jniThrowException(env, "java/lang/IllegalArgumentException", msg.string()); jniThrowException(env, "java/lang/IllegalArgumentException", msg.c_str());
return NULL; return NULL;
} }

View File

@ -1068,7 +1068,7 @@ static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz,
String8 msg; String8 msg;
msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)" msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)"
" must be 0", writerFormat, numPlanes); " must be 0", writerFormat, numPlanes);
jniThrowException(env, "java/lang/IllegalArgumentException", msg.string()); jniThrowException(env, "java/lang/IllegalArgumentException", msg.c_str());
return NULL; return NULL;
} }

View File

@ -299,7 +299,7 @@ static void android_media_MediaCrypto_setMediaDrmSession(
std::string strerr(StrCryptoError(err)); std::string strerr(StrCryptoError(err));
msg.appendFormat(": general failure (%s)", strerr.c_str()); msg.appendFormat(": general failure (%s)", strerr.c_str());
} }
jniThrowException(env, "android/media/MediaCryptoException", msg.string()); jniThrowException(env, "android/media/MediaCryptoException", msg.c_str());
} }
} }

View File

@ -708,8 +708,8 @@ static jobject KeyedVectorToHashMap (JNIEnv *env, KeyedVector<String8, String8>
jclass clazz = gFields.hashmapClassId; jclass clazz = gFields.hashmapClassId;
jobject hashMap = env->NewObject(clazz, gFields.hashmap.init); jobject hashMap = env->NewObject(clazz, gFields.hashmap.init);
for (size_t i = 0; i < map.size(); ++i) { for (size_t i = 0; i < map.size(); ++i) {
jstring jkey = env->NewStringUTF(map.keyAt(i).string()); jstring jkey = env->NewStringUTF(map.keyAt(i).c_str());
jstring jvalue = env->NewStringUTF(map.valueAt(i).string()); jstring jvalue = env->NewStringUTF(map.valueAt(i).c_str());
env->CallObjectMethod(hashMap, gFields.hashmap.put, jkey, jvalue); env->CallObjectMethod(hashMap, gFields.hashmap.put, jkey, jvalue);
env->DeleteLocalRef(jkey); env->DeleteLocalRef(jkey);
env->DeleteLocalRef(jvalue); env->DeleteLocalRef(jvalue);
@ -1169,7 +1169,7 @@ static jobject android_media_MediaDrm_getKeyRequest(
jbyteArray jrequest = VectorToJByteArray(env, request); jbyteArray jrequest = VectorToJByteArray(env, request);
env->SetObjectField(keyObj, gFields.keyRequest.data, jrequest); env->SetObjectField(keyObj, gFields.keyRequest.data, jrequest);
jstring jdefaultUrl = env->NewStringUTF(defaultUrl.string()); jstring jdefaultUrl = env->NewStringUTF(defaultUrl.c_str());
env->SetObjectField(keyObj, gFields.keyRequest.defaultUrl, jdefaultUrl); env->SetObjectField(keyObj, gFields.keyRequest.defaultUrl, jdefaultUrl);
switch (keyRequestType) { switch (keyRequestType) {
@ -1332,7 +1332,7 @@ static jobject android_media_MediaDrm_getProvisionRequestNative(
jbyteArray jrequest = VectorToJByteArray(env, request); jbyteArray jrequest = VectorToJByteArray(env, request);
env->SetObjectField(provisionObj, gFields.provisionRequest.data, jrequest); env->SetObjectField(provisionObj, gFields.provisionRequest.data, jrequest);
jstring jdefaultUrl = env->NewStringUTF(defaultUrl.string()); jstring jdefaultUrl = env->NewStringUTF(defaultUrl.c_str());
env->SetObjectField(provisionObj, gFields.provisionRequest.defaultUrl, jdefaultUrl); env->SetObjectField(provisionObj, gFields.provisionRequest.defaultUrl, jdefaultUrl);
} }
@ -1686,7 +1686,7 @@ static jstring android_media_MediaDrm_getPropertyString(
return NULL; return NULL;
} }
return env->NewStringUTF(value.string()); return env->NewStringUTF(value.c_str());
} }
static jbyteArray android_media_MediaDrm_getPropertyByteArray( static jbyteArray android_media_MediaDrm_getPropertyByteArray(

View File

@ -126,7 +126,7 @@ android_media_MediaMetadataRetriever_setDataSourceAndHeaders(
tmp = NULL; tmp = NULL;
// Don't let somebody trick us in to reading some random block of memory // Don't let somebody trick us in to reading some random block of memory
if (strncmp("mem://", pathStr.string(), 6) == 0) { if (strncmp("mem://", pathStr.c_str(), 6) == 0) {
jniThrowException( jniThrowException(
env, "java/lang/IllegalArgumentException", "Invalid pathname"); env, "java/lang/IllegalArgumentException", "Invalid pathname");
return; return;
@ -149,7 +149,7 @@ android_media_MediaMetadataRetriever_setDataSourceAndHeaders(
env, env,
retriever->setDataSource( retriever->setDataSource(
httpService, httpService,
pathStr.string(), pathStr.c_str(),
headersVector.size() > 0 ? &headersVector : NULL), headersVector.size() > 0 ? &headersVector : NULL),
"java/lang/RuntimeException", "java/lang/RuntimeException",

View File

@ -1214,7 +1214,7 @@ static bool throwDrmExceptionAsNecessary(JNIEnv *env, status_t err, const char *
String8 vendorMessage; String8 vendorMessage;
if (err >= ERROR_DRM_VENDOR_MIN && err <= ERROR_DRM_VENDOR_MAX) { if (err >= ERROR_DRM_VENDOR_MIN && err <= ERROR_DRM_VENDOR_MAX) {
vendorMessage = String8::format("DRM vendor-defined error: %d", err); vendorMessage = String8::format("DRM vendor-defined error: %d", err);
drmMessage = vendorMessage.string(); drmMessage = vendorMessage.c_str();
} }
if (err == BAD_VALUE) { if (err == BAD_VALUE) {
@ -1240,7 +1240,7 @@ static bool throwDrmExceptionAsNecessary(JNIEnv *env, status_t err, const char *
msg = drmMessage; msg = drmMessage;
} else { } else {
errbuf = String8::format("%s: %s", msg, drmMessage); errbuf = String8::format("%s: %s", msg, drmMessage);
msg = errbuf.string(); msg = errbuf.c_str();
} }
} }
throwDrmStateException(env, msg, err); throwDrmStateException(env, msg, err);

View File

@ -38,7 +38,7 @@ FileStream::FileStream(const int fd)
FileStream::FileStream(const String8 filename) FileStream::FileStream(const String8 filename)
: mPosition(0) { : mPosition(0) {
mFile = fopen(filename.string(), "r"); mFile = fopen(filename.c_str(), "r");
if (mFile == NULL) { if (mFile == NULL) {
return; return;
} }
@ -86,7 +86,7 @@ bool GetExifFromRawImage(
if (!piex::IsRaw(stream)) { if (!piex::IsRaw(stream)) {
// Format not supported. // Format not supported.
ALOGV("Format not supported: %s", filename.string()); ALOGV("Format not supported: %s", filename.c_str());
return false; return false;
} }
@ -94,7 +94,7 @@ bool GetExifFromRawImage(
if (err != piex::Error::kOk) { if (err != piex::Error::kOk) {
// The input data seems to be broken. // The input data seems to be broken.
ALOGV("Raw image not detected: %s (piex error code: %d)", filename.string(), (int32_t)err); ALOGV("Raw image not detected: %s (piex error code: %d)", filename.c_str(), (int32_t)err);
return false; return false;
} }

View File

@ -118,7 +118,7 @@ const char* AAssetDir_getNextFileName(AAssetDir* assetDir)
// the string to return and advance the iterator for next time. // the string to return and advance the iterator for next time.
if (index < max) { if (index < max) {
assetDir->mCachedFileName = assetDir->mAssetDir->getFileName(index); assetDir->mCachedFileName = assetDir->mAssetDir->getFileName(index);
returnName = assetDir->mCachedFileName.string(); returnName = assetDir->mCachedFileName.c_str();
index++; index++;
} }
@ -134,7 +134,7 @@ void AAssetDir_rewind(AAssetDir* assetDir)
const char* AAssetDir_getFileName(AAssetDir* assetDir, int index) const char* AAssetDir_getFileName(AAssetDir* assetDir, int index)
{ {
assetDir->mCachedFileName = assetDir->mAssetDir->getFileName(index); assetDir->mCachedFileName = assetDir->mAssetDir->getFileName(index);
return assetDir->mCachedFileName.string(); return assetDir->mCachedFileName.c_str();
} }
void AAssetDir_close(AAssetDir* assetDir) void AAssetDir_close(AAssetDir* assetDir)

View File

@ -304,12 +304,12 @@ int ASensorEventQueue_requestAdditionalInfoEvents(ASensorEventQueue* queue, bool
const char* ASensor_getName(ASensor const* sensor) { const char* ASensor_getName(ASensor const* sensor) {
RETURN_IF_SENSOR_IS_NULL(nullptr); RETURN_IF_SENSOR_IS_NULL(nullptr);
return static_cast<Sensor const*>(sensor)->getName().string(); return static_cast<Sensor const*>(sensor)->getName().c_str();
} }
const char* ASensor_getVendor(ASensor const* sensor) { const char* ASensor_getVendor(ASensor const* sensor) {
RETURN_IF_SENSOR_IS_NULL(nullptr); RETURN_IF_SENSOR_IS_NULL(nullptr);
return static_cast<Sensor const*>(sensor)->getVendor().string(); return static_cast<Sensor const*>(sensor)->getVendor().c_str();
} }
int ASensor_getType(ASensor const* sensor) { int ASensor_getType(ASensor const* sensor) {
@ -339,7 +339,7 @@ int ASensor_getFifoReservedEventCount(ASensor const* sensor) {
const char* ASensor_getStringType(ASensor const* sensor) { const char* ASensor_getStringType(ASensor const* sensor) {
RETURN_IF_SENSOR_IS_NULL(nullptr); RETURN_IF_SENSOR_IS_NULL(nullptr);
return static_cast<Sensor const*>(sensor)->getStringType().string(); return static_cast<Sensor const*>(sensor)->getStringType().c_str();
} }
int ASensor_getReportingMode(ASensor const* sensor) { int ASensor_getReportingMode(ASensor const* sensor) {

View File

@ -175,7 +175,7 @@ public:
String16 filename16(filename); String16 filename16(filename);
String16 path16; String16 path16;
if (mMountService->getMountedObbPath(filename16, path16)) { if (mMountService->getMountedObbPath(filename16, path16)) {
return String8(path16).string(); return String8(path16).c_str();
} else { } else {
return NULL; return NULL;
} }
@ -183,7 +183,7 @@ public:
}; };
void ObbActionListener::onObbResult(const android::String16& filename, const int32_t nonce, const int32_t state) { void ObbActionListener::onObbResult(const android::String16& filename, const int32_t nonce, const int32_t state) {
mStorageManager->fireCallback(String8(filename).string(), nonce, state); mStorageManager->fireCallback(String8(filename).c_str(), nonce, state);
} }

View File

@ -73,7 +73,7 @@ bool GnssVisibilityControlCallbackUtil::isInEmergencySession() {
template <> template <>
jstring ToJstring(JNIEnv* env, const String16& value) { jstring ToJstring(JNIEnv* env, const String16& value) {
const char16_t* str = value.string(); const char16_t* str = value.c_str();
size_t len = value.size(); size_t len = value.size();
return env->NewString(reinterpret_cast<const jchar*>(str), len); return env->NewString(reinterpret_cast<const jchar*>(str), len);
} }

View File

@ -135,7 +135,7 @@ void doInfo(const char* filename) {
} }
printf("OBB info for '%s':\n", filename); printf("OBB info for '%s':\n", filename);
printf("Package name: %s\n", obb->getPackageName().string()); printf("Package name: %s\n", obb->getPackageName().c_str());
printf(" Version: %d\n", obb->getVersion()); printf(" Version: %d\n", obb->getVersion());
printf(" Flags: 0x%08x\n", obb->getFlags()); printf(" Flags: 0x%08x\n", obb->getFlags());
printf(" Overlay: %s\n", obb->isOverlay() ? "true" : "false"); printf(" Overlay: %s\n", obb->isOverlay() ? "true" : "false");