Fix refering freed memory in earlier commit.

Summary: Fix refering freed memory in earlier commit by https://reviews.facebook.net/D11181

Test Plan: make check

Reviewers: haobo, sheki

Reviewed By: haobo

CC: leveldb

Differential Revision: https://reviews.facebook.net/D11193
main
Dhruba Borthakur 12 years ago
parent 4a8554d5bb
commit 1b69f1e584
  1. 3
      db/dbformat.cc
  2. 7
      db/dbformat.h

@ -44,8 +44,7 @@ std::string InternalKey::DebugString(bool hex) const {
} }
const char* InternalKeyComparator::Name() const { const char* InternalKeyComparator::Name() const {
return ("leveldb.InternalKeyComparator:" + return name_.c_str();
std::string(user_comparator_->Name())).c_str();
} }
int InternalKeyComparator::Compare(const Slice& akey, const Slice& bkey) const { int InternalKeyComparator::Compare(const Slice& akey, const Slice& bkey) const {

@ -86,8 +86,13 @@ inline ValueType ExtractValueType(const Slice& internal_key) {
class InternalKeyComparator : public Comparator { class InternalKeyComparator : public Comparator {
private: private:
const Comparator* user_comparator_; const Comparator* user_comparator_;
std::string name_;
public: public:
explicit InternalKeyComparator(const Comparator* c) : user_comparator_(c) { } explicit InternalKeyComparator(const Comparator* c) : user_comparator_(c),
name_("leveldb.InternalKeyComparator:" +
std::string(user_comparator_->Name())) {
}
virtual const char* Name() const; virtual const char* Name() const;
virtual int Compare(const Slice& a, const Slice& b) const; virtual int Compare(const Slice& a, const Slice& b) const;
virtual void FindShortestSeparator( virtual void FindShortestSeparator(

Loading…
Cancel
Save