Remove char/string conversions in fstab processing

There a few char->string conversions between functions which handle
different parts of fstab line processing, but there are no uses of
string functions. Pass char arrays/pointers around instead.

Change-Id: I976a9a54ee8dcfb6194cadcac6a34e467602003b
This commit is contained in:
Matt Mower
2016-04-26 11:24:08 -05:00
committed by Dees Troy
parent 4ab42b1831
commit 2b2dd15cbd
3 changed files with 12 additions and 12 deletions
+7 -7
View File
@@ -235,14 +235,14 @@ TWPartition::~TWPartition(void) {
// Do nothing
}
bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
char full_line[MAX_FSTAB_LINE_LENGTH], item[MAX_FSTAB_LINE_LENGTH];
bool TWPartition::Process_Fstab_Line(const char *fstab_line, bool Display_Error) {
char full_line[MAX_FSTAB_LINE_LENGTH];
char twflags[MAX_FSTAB_LINE_LENGTH] = "";
int line_len = Line.size(), index = 0, item_index = 0;
char* ptr;
strncpy(full_line, Line.c_str(), line_len);
int line_len = strlen(fstab_line), index = 0, item_index = 0;
bool skip = false;
strlcpy(full_line, fstab_line, sizeof(full_line));
for (index = 0; index < line_len; index++) {
if (full_line[index] == 34)
skip = !skip;
@@ -283,9 +283,9 @@ bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
LOGERR("Until we get better BML support, you will have to find and provide the full block device path to the BML devices e.g. /dev/block/bml9 instead of the partition name\n");
} else if (*ptr != '/') {
if (Display_Error)
LOGERR("Invalid block device on '%s', '%s', %i\n", Line.c_str(), ptr, index);
LOGERR("Invalid block device '%s' in fstab line '%s'", ptr, fstab_line);
else
LOGINFO("Invalid block device on '%s', '%s', %i\n", Line.c_str(), ptr, index);
LOGINFO("Invalid block device '%s' in fstab line '%s'", ptr, fstab_line);
return 0;
} else {
Primary_Block_Device = ptr;
@@ -310,7 +310,7 @@ bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
// Do nothing
} else {
// Unhandled data
LOGINFO("Unhandled fstab information: '%s', %i, line: '%s'\n", ptr, index, Line.c_str());
LOGINFO("Unhandled fstab information '%s' in fstab line '%s'\n", ptr, fstab_line);
}
}
while (index < line_len && full_line[index] != '\0')
+4 -4
View File
@@ -90,11 +90,9 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error)
if (fstab_line[strlen(fstab_line) - 1] != '\n')
fstab_line[strlen(fstab_line)] = '\n';
TWPartition* partition = new TWPartition();
string line = fstab_line;
memset(fstab_line, 0, sizeof(fstab_line));
if (partition->Process_Fstab_Line(line, Display_Error)) {
TWPartition* partition = new TWPartition();
if (partition->Process_Fstab_Line(fstab_line, Display_Error)) {
if (partition->Is_Storage) {
++storageid;
partition->MTP_Storage_ID = storageid;
@@ -113,6 +111,8 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error)
} else {
delete partition;
}
memset(fstab_line, 0, sizeof(fstab_line));
}
fclose(fstabFile);
if (!datamedia && !settings_partition && Find_Partition_By_Path("/sdcard") == NULL && Find_Partition_By_Path("/internal_sd") == NULL && Find_Partition_By_Path("/internal_sdcard") == NULL && Find_Partition_By_Path("/emmc") == NULL) {
+1 -1
View File
@@ -95,7 +95,7 @@ protected:
void Setup_Data_Media(); // Sets up a partition as a /data/media emulated storage partition
private:
bool Process_Fstab_Line(string Line, bool Display_Error); // Processes a fstab line
bool Process_Fstab_Line(const char *fstab_line, bool Display_Error); // Processes a fstab line
void Find_Actual_Block_Device(); // Determines the correct block device and stores it in Actual_Block_Device
void Apply_TW_Flag(const unsigned flag, const char* str, const bool val); // Apply custom twrp fstab flags