Index: third_party/leveldatabase/env_chromium.cc |
diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc |
index 84ae4acbb020c6728b40b39318ff7189d5da6bf5..65d179ac498d2d7ee668af595f1cb8bf16d5824b 100644 |
--- a/third_party/leveldatabase/env_chromium.cc |
+++ b/third_party/leveldatabase/env_chromium.cc |
@@ -412,7 +412,7 @@ Status MakeIOError(Slice filename, |
ErrorParsingResult ParseMethodAndError(const leveldb::Status& status, |
MethodID* method_param, |
- int* error) { |
+ base::File::Error* error) { |
const std::string status_string = status.ToString(); |
int method; |
if (RE2::PartialMatch(status_string.c_str(), "ChromeMethodOnly: (\\d+)", |
@@ -420,19 +420,16 @@ ErrorParsingResult ParseMethodAndError(const leveldb::Status& status, |
*method_param = static_cast<MethodID>(method); |
return METHOD_ONLY; |
} |
+ int parsed_error; |
if (RE2::PartialMatch(status_string.c_str(), |
"ChromeMethodPFE: (\\d+)::.*::(\\d+)", &method, |
- error)) { |
- *error = -*error; |
+ &parsed_error)) { |
*method_param = static_cast<MethodID>(method); |
+ *error = static_cast<base::File::Error>(-parsed_error); |
+ DCHECK_LT(*error, base::File::FILE_OK); |
+ DCHECK_GT(*error, base::File::FILE_ERROR_MAX); |
return METHOD_AND_PFE; |
} |
- if (RE2::PartialMatch(status_string.c_str(), |
- "ChromeMethodErrno: (\\d+)::.*::(\\d+)", &method, |
- error)) { |
- *method_param = static_cast<MethodID>(method); |
- return METHOD_AND_ERRNO; |
- } |
return NONE; |
} |
@@ -507,13 +504,12 @@ bool IndicatesDiskFull(const leveldb::Status& status) { |
if (status.ok()) |
return false; |
leveldb_env::MethodID method; |
- int error = -1; |
+ base::File::Error error = base::File::FILE_OK; |
leveldb_env::ErrorParsingResult result = |
leveldb_env::ParseMethodAndError(status, &method, &error); |
return (result == leveldb_env::METHOD_AND_PFE && |
static_cast<base::File::Error>(error) == |
- base::File::FILE_ERROR_NO_SPACE) || |
- (result == leveldb_env::METHOD_AND_ERRNO && error == ENOSPC); |
+ base::File::FILE_ERROR_NO_SPACE); |
} |
bool ChromiumEnv::MakeBackup(const std::string& fname) { |