diff --git a/Makefile b/Makefile index 5eadd72..921b71c 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,15 @@ CC = g++ -# Uncomment one of the following to switch between debug and opt mode -#OPT = -O2 -DNDEBUG -OPT = -g2 +#----------------------------------------------- +# Uncomment exactly one of the lines labelled (A), (B), and (C) below +# to switch between compilation modes. + +OPT = -O2 -DNDEBUG # (A) Production use (optimized mode) +# OPT = -g2 # (B) Debug mode, w/ full line-level debugging symbols +# OPT = -O2 -g2 -DNDEBUG # (C) Profiling mode: opt, but w/debugging symbols +#----------------------------------------------- + UNAME := $(shell uname) diff --git a/leveldb.gyp b/leveldb.gyp index 8376592..ea634a2 100644 --- a/leveldb.gyp +++ b/leveldb.gyp @@ -35,6 +35,9 @@ # The base libary is a lightweight abstraction layer for things like # threads and IO. http://src.chromium.org/viewvc/chrome/trunk/src/base/ '../../base/base.gyp:base', + # base::LazyInstance is a template that pulls in dynamic_annotations so + # we need to explictly link in the code for dynamic_annotations. + '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', ], 'conditions': [ ['use_snappy', { diff --git a/table/iterator_wrapper.h b/table/iterator_wrapper.h index d8ca2b3..9e16b3d 100644 --- a/table/iterator_wrapper.h +++ b/table/iterator_wrapper.h @@ -34,16 +34,16 @@ class IteratorWrapper { // Iterator interface methods - bool Valid() const { return valid_; } - Slice key() const { assert(Valid()); return key_; } - Slice value() const { assert(Valid()); return iter_->value(); } + bool Valid() const { return valid_; } + Slice key() const { assert(Valid()); return key_; } + Slice value() const { assert(Valid()); return iter_->value(); } // Methods below require iter() != NULL - Status status() const { assert(iter_); return iter_->status(); } - void Next() { assert(iter_); iter_->Next(); Update(); } - void Prev() { assert(iter_); iter_->Prev(); Update(); } - void Seek(const Slice& k) { assert(iter_); iter_->Seek(k); Update(); } - void SeekToFirst() { assert(iter_); iter_->SeekToFirst(); Update(); } - void SeekToLast() { assert(iter_); iter_->SeekToLast(); Update(); } + Status status() const { assert(iter_); return iter_->status(); } + void Next() { assert(iter_); iter_->Next(); Update(); } + void Prev() { assert(iter_); iter_->Prev(); Update(); } + void Seek(const Slice& k) { assert(iter_); iter_->Seek(k); Update(); } + void SeekToFirst() { assert(iter_); iter_->SeekToFirst(); Update(); } + void SeekToLast() { assert(iter_); iter_->SeekToLast(); Update(); } private: void Update() {