Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.hpp @ 2418:352622fd140a
7032129: Native memory usage grow unexpectedly for vm/oom/*InternedString tests
Reviewed-by: kvn, kamg, jcoomes
author | never |
---|---|
date | Thu, 31 Mar 2011 14:00:41 -0700 |
parents | c7f3d0b4570f |
children | 01147d8aac1d |
comparison
equal
deleted
inserted
replaced
2416:38fea01eb669 | 2418:352622fd140a |
---|---|
106 static char* as_utf8_string(oop java_string); | 106 static char* as_utf8_string(oop java_string); |
107 static char* as_utf8_string(oop java_string, char* buf, int buflen); | 107 static char* as_utf8_string(oop java_string, char* buf, int buflen); |
108 static char* as_utf8_string(oop java_string, int start, int len); | 108 static char* as_utf8_string(oop java_string, int start, int len); |
109 static char* as_platform_dependent_str(Handle java_string, TRAPS); | 109 static char* as_platform_dependent_str(Handle java_string, TRAPS); |
110 static jchar* as_unicode_string(oop java_string, int& length); | 110 static jchar* as_unicode_string(oop java_string, int& length); |
111 | |
112 // Compute the hash value for a java.lang.String object which would | |
113 // contain the characters passed in. This hash value is used for at | |
114 // least two purposes. | |
115 // | |
116 // (a) As the hash value used by the StringTable for bucket selection | |
117 // and comparison (stored in the HashtableEntry structures). This | |
118 // is used in the String.intern() method. | |
119 // | |
120 // (b) As the hash value used by the String object itself, in | |
121 // String.hashCode(). This value is normally calculate in Java code | |
122 // in the String.hashCode method(), but is precomputed for String | |
123 // objects in the shared archive file. | |
124 // | |
125 // For this reason, THIS ALGORITHM MUST MATCH String.hashCode(). | |
126 static unsigned int hash_string(jchar* s, int len) { | |
127 unsigned int h = 0; | |
128 while (len-- > 0) { | |
129 h = 31*h + (unsigned int) *s; | |
130 s++; | |
131 } | |
132 return h; | |
133 } | |
134 static unsigned int hash_string(oop java_string); | |
111 | 135 |
112 static bool equals(oop java_string, jchar* chars, int len); | 136 static bool equals(oop java_string, jchar* chars, int len); |
113 | 137 |
114 // Conversion between '.' and '/' formats | 138 // Conversion between '.' and '/' formats |
115 static Handle externalize_classname(Handle java_string, TRAPS) { return char_converter(java_string, '/', '.', THREAD); } | 139 static Handle externalize_classname(Handle java_string, TRAPS) { return char_converter(java_string, '/', '.', THREAD); } |