Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: third_party/leveldatabase/env_chromium.cc

Issue 936073003: Remove unused errno parsing for leveldb status codes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The LevelDB Authors. All rights reserved. 1 // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. See the AUTHORS file for names of contributors. 3 // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 4
5 #include "third_party/leveldatabase/env_chromium.h" 5 #include "third_party/leveldatabase/env_chromium.h"
6 6
7 #if defined(OS_POSIX) 7 #if defined(OS_POSIX)
8 #include <dirent.h> 8 #include <dirent.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 #endif 10 #endif
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 const std::string& message, 405 const std::string& message,
406 MethodID method) { 406 MethodID method) {
407 char buf[512]; 407 char buf[512];
408 snprintf(buf, sizeof(buf), "%s (ChromeMethodOnly: %d::%s)", message.c_str(), 408 snprintf(buf, sizeof(buf), "%s (ChromeMethodOnly: %d::%s)", message.c_str(),
409 method, MethodIDToString(method)); 409 method, MethodIDToString(method));
410 return Status::IOError(filename, buf); 410 return Status::IOError(filename, buf);
411 } 411 }
412 412
413 ErrorParsingResult ParseMethodAndError(const leveldb::Status& status, 413 ErrorParsingResult ParseMethodAndError(const leveldb::Status& status,
414 MethodID* method_param, 414 MethodID* method_param,
415 int* error) { 415 base::File::Error* error) {
416 const std::string status_string = status.ToString(); 416 const std::string status_string = status.ToString();
417 int method; 417 int method;
418 if (RE2::PartialMatch(status_string.c_str(), "ChromeMethodOnly: (\\d+)", 418 if (RE2::PartialMatch(status_string.c_str(), "ChromeMethodOnly: (\\d+)",
419 &method)) { 419 &method)) {
420 *method_param = static_cast<MethodID>(method); 420 *method_param = static_cast<MethodID>(method);
421 return METHOD_ONLY; 421 return METHOD_ONLY;
422 } 422 }
423 int parsed_error;
423 if (RE2::PartialMatch(status_string.c_str(), 424 if (RE2::PartialMatch(status_string.c_str(),
424 "ChromeMethodPFE: (\\d+)::.*::(\\d+)", &method, 425 "ChromeMethodPFE: (\\d+)::.*::(\\d+)", &method,
425 error)) { 426 &parsed_error)) {
426 *error = -*error;
427 *method_param = static_cast<MethodID>(method); 427 *method_param = static_cast<MethodID>(method);
428 *error = static_cast<base::File::Error>(-parsed_error);
429 DCHECK_LT(*error, base::File::FILE_OK);
430 DCHECK_GT(*error, base::File::FILE_ERROR_MAX);
428 return METHOD_AND_PFE; 431 return METHOD_AND_PFE;
429 } 432 }
430 if (RE2::PartialMatch(status_string.c_str(),
431 "ChromeMethodErrno: (\\d+)::.*::(\\d+)", &method,
432 error)) {
433 *method_param = static_cast<MethodID>(method);
434 return METHOD_AND_ERRNO;
435 }
436 return NONE; 433 return NONE;
437 } 434 }
438 435
439 // Keep in sync with LevelDBCorruptionTypes in histograms.xml. Also, don't 436 // Keep in sync with LevelDBCorruptionTypes in histograms.xml. Also, don't
440 // change the order because indices into this array have been recorded in uma 437 // change the order because indices into this array have been recorded in uma
441 // histograms. 438 // histograms.
442 const char* patterns[] = { 439 const char* patterns[] = {
443 "missing files", 440 "missing files",
444 "log record too small", 441 "log record too small",
445 "corrupted internal key", 442 "corrupted internal key",
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 int code = GetCorruptionCode(status); 497 int code = GetCorruptionCode(status);
501 if (code == 0) 498 if (code == 0)
502 return "Unknown corruption"; 499 return "Unknown corruption";
503 return patterns[code - 1]; 500 return patterns[code - 1];
504 } 501 }
505 502
506 bool IndicatesDiskFull(const leveldb::Status& status) { 503 bool IndicatesDiskFull(const leveldb::Status& status) {
507 if (status.ok()) 504 if (status.ok())
508 return false; 505 return false;
509 leveldb_env::MethodID method; 506 leveldb_env::MethodID method;
510 int error = -1; 507 base::File::Error error = base::File::FILE_OK;
511 leveldb_env::ErrorParsingResult result = 508 leveldb_env::ErrorParsingResult result =
512 leveldb_env::ParseMethodAndError(status, &method, &error); 509 leveldb_env::ParseMethodAndError(status, &method, &error);
513 return (result == leveldb_env::METHOD_AND_PFE && 510 return (result == leveldb_env::METHOD_AND_PFE &&
514 static_cast<base::File::Error>(error) == 511 static_cast<base::File::Error>(error) ==
515 base::File::FILE_ERROR_NO_SPACE) || 512 base::File::FILE_ERROR_NO_SPACE);
516 (result == leveldb_env::METHOD_AND_ERRNO && error == ENOSPC);
517 } 513 }
518 514
519 bool ChromiumEnv::MakeBackup(const std::string& fname) { 515 bool ChromiumEnv::MakeBackup(const std::string& fname) {
520 FilePath original_table_name = FilePath::FromUTF8Unsafe(fname); 516 FilePath original_table_name = FilePath::FromUTF8Unsafe(fname);
521 FilePath backup_table_name = 517 FilePath backup_table_name =
522 original_table_name.ReplaceExtension(backup_table_extension); 518 original_table_name.ReplaceExtension(backup_table_extension);
523 return base::CopyFile(original_table_name, backup_table_name); 519 return base::CopyFile(original_table_name, backup_table_name);
524 } 520 }
525 521
526 ChromiumEnv::ChromiumEnv() 522 ChromiumEnv::ChromiumEnv()
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 1096
1101 Env* IDBEnv() { 1097 Env* IDBEnv() {
1102 return leveldb_env::idb_env.Pointer(); 1098 return leveldb_env::idb_env.Pointer();
1103 } 1099 }
1104 1100
1105 Env* Env::Default() { 1101 Env* Env::Default() {
1106 return leveldb_env::default_env.Pointer(); 1102 return leveldb_env::default_env.Pointer();
1107 } 1103 }
1108 1104
1109 } // namespace leveldb 1105 } // namespace leveldb
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698