From 015299f67f3c71bfdad2201a33a3d7bc77dab5c6 Mon Sep 17 00:00:00 2001
From: Moritz Bunkus <moritz@bunkus.org>
Date: Sun, 14 Sep 2008 12:03:05 +0000
Subject: [PATCH] A method for re-using a bit_cursor_c object.

---
 src/common/bit_cursor.h | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/common/bit_cursor.h b/src/common/bit_cursor.h
index 3441df845..e9cd9e348 100644
--- a/src/common/bit_cursor.h
+++ b/src/common/bit_cursor.h
@@ -31,11 +31,16 @@ private:
   bool out_of_data;
 
 public:
-  bit_cursor_c(const unsigned char *data, unsigned int len):
-    end_of_data(data + len), byte_position(data), start_of_data(data),
-    bits_valid(8), out_of_data(false) {
-    if (byte_position >= end_of_data)
-      out_of_data = true;
+  bit_cursor_c(const unsigned char *data, unsigned int len) {
+    init(data, len);
+  }
+
+  void init(const unsigned char *data, unsigned int len) {
+    end_of_data   = data + len;
+    byte_position = data;
+    start_of_data = data;
+    bits_valid    = 8;
+    out_of_data   = byte_position >= end_of_data;
   }
 
   bool eof() {