Finish off the new JNI implementation.

There are a handful of remaining TODOs, but this gives us complete coverage.

Change-Id: Ibee38e6a87a0fcfae769d991125b0551243c8eeb
diff --git a/src/reference_table.cc b/src/reference_table.cc
index 0fc038a..b5c988a 100644
--- a/src/reference_table.cc
+++ b/src/reference_table.cc
@@ -29,7 +29,7 @@
   entries_.reserve(initial_size);
 }
 
-void ReferenceTable::Add(Object* obj) {
+void ReferenceTable::Add(const Object* obj) {
   DCHECK(obj != NULL);
   if (entries_.size() == max_size_) {
     LOG(FATAL) << "ReferenceTable '" << name_ << "' "
@@ -38,7 +38,7 @@
   entries_.push_back(obj);
 }
 
-void ReferenceTable::Remove(Object* obj) {
+void ReferenceTable::Remove(const Object* obj) {
   // We iterate backwards on the assumption that references are LIFO.
   for (int i = entries_.size() - 1; i >= 0; --i) {
     if (entries_[i] == obj) {
@@ -58,7 +58,7 @@
 }
 
 struct ObjectComparator {
-  bool operator()(Object* obj1, Object* obj2){
+  bool operator()(const Object* obj1, const Object* obj2){
     // Ensure null references and cleared jweaks appear at the end.
     if (obj1 == NULL) {
       return true;
@@ -132,7 +132,7 @@
   Dump(entries_);
 }
 
-void ReferenceTable::Dump(const std::vector<Object*>& entries) {
+void ReferenceTable::Dump(const std::vector<const Object*>& entries) {
   if (entries.empty()) {
     LOG(WARNING) << "  (empty)";
     return;
@@ -192,7 +192,7 @@
   }
 
   // Make a copy of the table and sort it.
-  std::vector<Object*> sorted_entries(entries.begin(), entries.end());
+  std::vector<const Object*> sorted_entries(entries.begin(), entries.end());
   std::sort(sorted_entries.begin(), sorted_entries.end(), ObjectComparator());
 
   // Remove any uninteresting stuff from the list. The sort moved them all to the end.
@@ -211,8 +211,8 @@
   size_t equiv = 0;
   size_t identical = 0;
   for (size_t idx = 1; idx < count; idx++) {
-    Object* prev = sorted_entries[idx-1];
-    Object* current = sorted_entries[idx];
+    const Object* prev = sorted_entries[idx-1];
+    const Object* current = sorted_entries[idx];
     size_t elems = GetElementCount(prev);
     if (current == prev) {
       // Same reference, added more than once.