[Pkg-javascript-commits] [node-leveldown] 113/492: slight C++ cleanup, giving in to macros, UGH!

Andrew Kelley andrewrk-guest at moszumanska.debian.org
Sun Jul 6 17:13:50 UTC 2014


This is an automated email from the git hooks/post-receive script.

andrewrk-guest pushed a commit to annotated tag rocksdb-0.10.1
in repository node-leveldown.

commit 5a3192d7253539eae49b8c8bf4c96f3bb5e7578e
Author: Rod Vagg <rod at vagg.org>
Date:   Sun Dec 16 12:48:34 2012 +1100

    slight C++ cleanup, giving in to macros, UGH!
---
 src/database.cc | 15 +++++++++------
 src/iterator.cc | 16 ++++------------
 src/levelup.h   |  5 +++++
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/database.cc b/src/database.cc
index ae69ce6..711ff3b 100644
--- a/src/database.cc
+++ b/src/database.cc
@@ -119,14 +119,17 @@ Handle<Value> Database::Open (const Arguments& args) {
   String::Utf8Value location(args[0]->ToString());
   Local<Object> optionsObj = Local<Object>::Cast(args[1]);
   Persistent<Function> callback = Persistent<Function>::New(Local<Function>::Cast(args[2]));
+  BOOLEAN_OPTION_VALUE(optionsObj, createIfMissing)
+  BOOLEAN_OPTION_VALUE(optionsObj, errorIfExists)
+  BOOLEAN_OPTION_VALUE(optionsObj, compression)
 
   OpenWorker* worker = new OpenWorker(
       database
     , callback
     , *location
-    , optionsObj->Has(option_createIfMissing) && optionsObj->Get(option_createIfMissing)->BooleanValue()
-    , optionsObj->Has(option_errorIfExists) && optionsObj->Get(option_errorIfExists)->BooleanValue()
-    , optionsObj->Has(option_compression) && optionsObj->Get(option_compression)->BooleanValue()
+    , createIfMissing
+    , errorIfExists
+    , compression
   );
   AsyncQueueWorker(worker);
 
@@ -163,7 +166,7 @@ Handle<Value> Database::Put (const Arguments& args) {
   Persistent<Value> valueBuffer = Persistent<Value>::New(args[1]);
   STRING_OR_BUFFER_TO_SLICE(value, valueBuffer)
   Local<Object> optionsObj = Local<Object>::Cast(args[2]);
-  bool sync = optionsObj->Has(option_sync) && optionsObj->Get(option_sync)->BooleanValue();
+  BOOLEAN_OPTION_VALUE(optionsObj, sync)
 
   WriteWorker* worker  = new WriteWorker(
       database
@@ -214,7 +217,7 @@ Handle<Value> Database::Delete (const Arguments& args) {
   Persistent<Value> keyBuffer = Persistent<Value>::New(args[0]);
   STRING_OR_BUFFER_TO_SLICE(key, keyBuffer)
   Local<Object> optionsObj = Local<Object>::Cast(args[1]);
-  bool sync = optionsObj->Has(option_sync) && optionsObj->Get(option_sync)->BooleanValue();
+  BOOLEAN_OPTION_VALUE(optionsObj, sync)
 
   DeleteWorker* worker = new DeleteWorker(
       database
@@ -234,7 +237,7 @@ Handle<Value> Database::Batch (const Arguments& args) {
   Database* database = ObjectWrap::Unwrap<Database>(args.This());
   Local<Array> array = Local<Array>::Cast(args[0]);
   Local<Object> optionsObj = Local<Object>::Cast(args[1]);
-  bool sync = optionsObj->Has(option_sync) && optionsObj->Get(option_sync)->BooleanValue();
+  BOOLEAN_OPTION_VALUE(optionsObj, sync)
   Persistent<Function> callback = Persistent<Function>::New(Local<Function>::Cast(args[2]));
 
   vector<BatchOp*>* operations = new vector<BatchOp*>;
diff --git a/src/iterator.cc b/src/iterator.cc
index 5dcd002..7ce8997 100644
--- a/src/iterator.cc
+++ b/src/iterator.cc
@@ -133,18 +133,10 @@ Handle<Value> levelup::Iterator::New (const Arguments& args) {
     STRING_OR_BUFFER_TO_SLICE(_end, endBuffer)
     end = new string(_end.data(), _end.size());
   }
-  bool reverse = false;
-  if (args[1]->ToObject()->Has(option_reverse)) {
-    reverse = args[1]->ToObject()->Get(option_reverse)->BooleanValue();
-  }
-  bool keys = true;
-  if (args[1]->ToObject()->Has(option_keys)) {
-    keys = args[1]->ToObject()->Get(option_keys)->BooleanValue();
-  }
-  bool values = true;
-  if (args[1]->ToObject()->Has(option_values)) {
-    values = args[1]->ToObject()->Get(option_values)->BooleanValue();
-  }
+  Local<Object> optionsObj = Local<Object>::Cast(args[1]);
+  BOOLEAN_OPTION_VALUE(optionsObj, reverse)
+  BOOLEAN_OPTION_VALUE_DEFTRUE(optionsObj, keys)
+  BOOLEAN_OPTION_VALUE_DEFTRUE(optionsObj, values)
   int limit = -1;
   if (args[1]->ToObject()->Has(option_limit)) {
     limit = Local<Integer>::Cast(args[1]->ToObject()->Get(option_limit))->Value();
diff --git a/src/levelup.h b/src/levelup.h
index feabc4b..8fa74ce 100644
--- a/src/levelup.h
+++ b/src/levelup.h
@@ -44,6 +44,11 @@
   } \
   Slice to(to ## Ch_, to ## Sz_);
 
+#define BOOLEAN_OPTION_VALUE(optionsObj, opt) \
+  bool opt = optionsObj->Has(option_ ## opt) && optionsObj->Get(option_ ## opt)->BooleanValue();
+#define BOOLEAN_OPTION_VALUE_DEFTRUE(optionsObj, opt) \
+  bool opt = !optionsObj->Has(option_ ## opt) || optionsObj->Get(option_ ## opt)->BooleanValue();
+
 const char* ToCString(const v8::String::Utf8Value& value);
 const char* ToCString(const v8::String::AsciiValue& value);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-leveldown.git



More information about the Pkg-javascript-commits mailing list