Skip to content

Commit

Permalink
Merge "Revert "Revert "Revert "Revert "Drop all path-related methods …
Browse files Browse the repository at this point in the history
…from android::String8""""" into main am: 8245afd am: 74ee2a4 am: c17617f

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2747144

Change-Id: I1905bece3e61da82d4f8981825e88c41f5bd2e1e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
  • Loading branch information
twasilczyk authored and android-build-merge-worker-robot committed Sep 12, 2023
2 parents 5d5b3b2 + c17617f commit 9996ca7
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 375 deletions.
108 changes: 3 additions & 105 deletions libutils/String8.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,31 +430,6 @@ void String8::toLower()
// ---------------------------------------------------------------------------
// Path functions

static void setPathName(String8& s, const char* name) {
size_t len = strlen(name);
char* buf = s.lockBuffer(len);

memcpy(buf, name, len);

// remove trailing path separator, if present
if (len > 0 && buf[len - 1] == OS_PATH_SEPARATOR) len--;
buf[len] = '\0';

s.unlockBuffer(len);
}

String8 String8::getPathLeaf(void) const
{
const char* cp;
const char*const buf = mString;

cp = strrchr(buf, OS_PATH_SEPARATOR);
if (cp == nullptr)
return String8(*this);
else
return String8(cp+1);
}

String8 String8::getPathDir(void) const
{
const char* cp;
Expand All @@ -467,40 +442,14 @@ String8 String8::getPathDir(void) const
return String8(str, cp - str);
}

String8 String8::walkPath(String8* outRemains) const
{
const char* cp;
const char*const str = mString;
const char* buf = str;

cp = strchr(buf, OS_PATH_SEPARATOR);
if (cp == buf) {
// don't include a leading '/'.
buf = buf+1;
cp = strchr(buf, OS_PATH_SEPARATOR);
}

if (cp == nullptr) {
String8 res = buf != str ? String8(buf) : *this;
if (outRemains) *outRemains = String8("");
return res;
}

String8 res(buf, cp-buf);
if (outRemains) *outRemains = String8(cp+1);
return res;
}

/*
* Helper function for finding the start of an extension in a pathname.
*
* Returns a pointer inside mString, or NULL if no extension was found.
*/
char* String8::find_extension(void) const
{
static const char* find_extension(const char* str) {
const char* lastSlash;
const char* lastDot;
const char* const str = mString;

// only look at the filename
lastSlash = strrchr(str, OS_PATH_SEPARATOR);
Expand All @@ -515,67 +464,16 @@ char* String8::find_extension(void) const
return nullptr;

// looks good, ship it
return const_cast<char*>(lastDot);
return lastDot;
}

String8 String8::getPathExtension(void) const
{
char* ext;

ext = find_extension();
auto ext = find_extension(mString);
if (ext != nullptr)
return String8(ext);
else
return String8("");
}

String8 String8::getBasePath(void) const
{
char* ext;
const char* const str = mString;

ext = find_extension();
if (ext == nullptr)
return String8(*this);
else
return String8(str, ext - str);
}

String8& String8::appendPath(const char* name)
{
// TODO: The test below will fail for Win32 paths. Fix later or ignore.
if (name[0] != OS_PATH_SEPARATOR) {
if (*name == '\0') {
// nothing to do
return *this;
}

size_t len = length();
if (len == 0) {
// no existing filename, just use the new one
setPathName(*this, name);
return *this;
}

// make room for oldPath + '/' + newPath
int newlen = strlen(name);

char* buf = lockBuffer(len+1+newlen);

// insert a '/' if needed
if (buf[len-1] != OS_PATH_SEPARATOR)
buf[len++] = OS_PATH_SEPARATOR;

memcpy(buf+len, name, newlen+1);
len += newlen;

unlockBuffer(len);

return *this;
} else {
setPathName(*this, name);
return *this;
}
}

}; // namespace android
24 changes: 0 additions & 24 deletions libutils/String8_fuzz.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,30 +68,6 @@ std::vector<std::function<void(FuzzedDataProvider*, android::String8*, android::
int start_index = dataProvider->ConsumeIntegralInRange<int>(0, str1->size());
str1->find(str2->c_str(), start_index);
},

// Path handling
[](FuzzedDataProvider*, android::String8* str1, android::String8*) -> void {
str1->getBasePath();
},
[](FuzzedDataProvider*, android::String8* str1, android::String8*) -> void {
str1->getPathExtension();
},
[](FuzzedDataProvider*, android::String8* str1, android::String8*) -> void {
str1->getPathLeaf();
},
[](FuzzedDataProvider*, android::String8* str1, android::String8*) -> void {
str1->getPathDir();
},
[](FuzzedDataProvider*, android::String8* str1, android::String8*) -> void {
std::shared_ptr<android::String8> path_out_str =
std::make_shared<android::String8>();
str1->walkPath(path_out_str.get());
path_out_str->clear();
},
[](FuzzedDataProvider* dataProvider, android::String8* str1,
android::String8*) -> void {
str1->appendPath(dataProvider->ConsumeBytesWithTerminator<char>(5).data());
},
};

void fuzzFormat(FuzzedDataProvider* dataProvider, android::String8* str1, bool shouldAppend) {
Expand Down
88 changes: 1 addition & 87 deletions libutils/abi-dumps/arm64/source-based/libutils.so.lsdump
Original file line number Diff line number Diff line change
Expand Up @@ -703,9 +703,6 @@
{
"name" : "_ZN7android7RefBaseD2Ev"
},
{
"name" : "_ZN7android7String810appendPathEPKc"
},
{
"name" : "_ZN7android7String810lockBufferEm"
},
Expand Down Expand Up @@ -1144,15 +1141,6 @@
{
"name" : "_ZNK7android7String810getPathDirEv"
},
{
"name" : "_ZNK7android7String811getBasePathEv"
},
{
"name" : "_ZNK7android7String811getPathLeafEv"
},
{
"name" : "_ZNK7android7String814find_extensionEv"
},
{
"name" : "_ZNK7android7String816getPathExtensionEv"
},
Expand All @@ -1162,9 +1150,6 @@
{
"name" : "_ZNK7android7String86lengthEv"
},
{
"name" : "_ZNK7android7String88walkPathEPS0_"
},
{
"name" : "_ZNK7android8String1610startsWithEPKDs"
},
Expand Down Expand Up @@ -6808,22 +6793,6 @@
"return_type" : "_ZTIv",
"source_file" : "system/core/libutils/include/utils/RefBase.h"
},
{
"function_name" : "android::String8::appendPath",
"linker_set_key" : "_ZN7android7String810appendPathEPKc",
"parameters" :
[
{
"is_this_ptr" : true,
"referenced_type" : "_ZTIPN7android7String8E"
},
{
"referenced_type" : "_ZTIPKc"
}
],
"return_type" : "_ZTIRN7android7String8E",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String8::lockBuffer",
"linker_set_key" : "_ZN7android7String810lockBufferEm",
Expand Down Expand Up @@ -9104,6 +9073,7 @@
"source_file" : "system/core/libutils/include/utils/RefBase.h"
},
{
"access" : "private",
"function_name" : "android::String8::getPathDir",
"linker_set_key" : "_ZNK7android7String810getPathDirEv",
"parameters" :
Expand All @@ -9116,47 +9086,8 @@
"return_type" : "_ZTIN7android7String8E",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String8::getBasePath",
"linker_set_key" : "_ZNK7android7String811getBasePathEv",
"parameters" :
[
{
"is_this_ptr" : true,
"referenced_type" : "_ZTIPKN7android7String8E"
}
],
"return_type" : "_ZTIN7android7String8E",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String8::getPathLeaf",
"linker_set_key" : "_ZNK7android7String811getPathLeafEv",
"parameters" :
[
{
"is_this_ptr" : true,
"referenced_type" : "_ZTIPKN7android7String8E"
}
],
"return_type" : "_ZTIN7android7String8E",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"access" : "private",
"function_name" : "android::String8::find_extension",
"linker_set_key" : "_ZNK7android7String814find_extensionEv",
"parameters" :
[
{
"is_this_ptr" : true,
"referenced_type" : "_ZTIPKN7android7String8E"
}
],
"return_type" : "_ZTIPc",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String8::getPathExtension",
"linker_set_key" : "_ZNK7android7String816getPathExtensionEv",
"parameters" :
Expand Down Expand Up @@ -9202,23 +9133,6 @@
"return_type" : "_ZTIm",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String8::walkPath",
"linker_set_key" : "_ZNK7android7String88walkPathEPS0_",
"parameters" :
[
{
"is_this_ptr" : true,
"referenced_type" : "_ZTIPKN7android7String8E"
},
{
"default_arg" : true,
"referenced_type" : "_ZTIPN7android7String8E"
}
],
"return_type" : "_ZTIN7android7String8E",
"source_file" : "system/core/libutils/include/utils/String8.h"
},
{
"function_name" : "android::String16::startsWith",
"linker_set_key" : "_ZNK7android8String1610startsWithEPKDs",
Expand Down
Loading

0 comments on commit 9996ca7

Please sign in to comment.