pdfviewer: SkTDict, does accept to pass the length of the key also. We will use it, as this is a prerequirment for optimizing memory usage for pdf parser.

Review URL: https://codereview.chromium.org/19964003

git-svn-id: http://skia.googlecode.com/svn/trunk@10242 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/PdfViewer/pdfparser/native/SkPdfObject.h b/experimental/PdfViewer/pdfparser/native/SkPdfObject.h
index ff64798..d496670 100644
--- a/experimental/PdfViewer/pdfparser/native/SkPdfObject.h
+++ b/experimental/PdfViewer/pdfparser/native/SkPdfObject.h
@@ -384,10 +384,14 @@
         // we rewrite all delimiters and white spaces with '\0', so we expect the end of name to be '\0'
         SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
 
-        return set((char*)key->fStr.fBuffer, value);
+        return set(key->fStr.fBuffer, key->fStr.fBytes, value);
     }
 
     bool set(const char* key, SkPdfObject* value) {
+        return set((const unsigned char*)key, strlen(key), value);
+    }
+
+    bool set(const unsigned char* key, size_t len, SkPdfObject* value) {
         SkASSERT(fObjectType == kDictionary_PdfObjectType);
 
         if (fObjectType != kDictionary_PdfObjectType) {
@@ -395,7 +399,7 @@
             return false;
         }
 
-        return fMap->set(key, value);
+        return fMap->set((const char*)key, len, value);
     }
 
     SkPdfObject* get(SkPdfObject* key) {
@@ -409,10 +413,14 @@
 
         SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
 
-        return get((char*)key->fStr.fBuffer);
+        return get(key->fStr.fBuffer, key->fStr.fBytes);
     }
 
     SkPdfObject* get(const char* key) {
+        return get((const unsigned char*)key, strlen(key));
+    }
+
+    SkPdfObject* get(const unsigned char* key, size_t len) {
         SkASSERT(fObjectType == kDictionary_PdfObjectType);
         SkASSERT(key);
         if (fObjectType != kDictionary_PdfObjectType) {
@@ -420,7 +428,7 @@
             return NULL;
         }
         SkPdfObject* ret = NULL;
-        fMap->find(key, &ret);
+        fMap->find((const char*)key, len, &ret);
         return ret;
     }
 
@@ -435,11 +443,14 @@
 
         SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
 
-        return get((char*)key->fStr.fBuffer);
+        return get(key->fStr.fBuffer, key->fStr.fBytes);
     }
 
-
     const SkPdfObject* get(const char* key) const {
+        return get((const unsigned char*)key, strlen(key));
+    }
+
+    const SkPdfObject* get(const unsigned char* key, size_t len) const {
         SkASSERT(fObjectType == kDictionary_PdfObjectType);
         SkASSERT(key);
         if (fObjectType != kDictionary_PdfObjectType) {
@@ -447,7 +458,7 @@
             return NULL;
         }
         SkPdfObject* ret = NULL;
-        fMap->find(key, &ret);
+        fMap->find((const char*)key, len, &ret);
         return ret;
     }