214 }
215 bool ends_with(const char* suffix) const {
216 return ends_with(suffix, (int) strlen(suffix));
217 }
218 bool ends_with(char suffix_char) const {
219 return contains_byte_at(utf8_length()-1, suffix_char);
220 }
221 // Tests if the symbol contains the given utf8 substring
222 // or byte at the given byte position.
223 bool contains_utf8_at(int position, const char* substring, int len) const;
224 bool contains_byte_at(int position, char code_byte) const;
225
226 // True if this is a descriptor for a method with void return.
227 // (Assumes it is a valid descriptor.)
228 bool is_void_method_signature() const {
229 return starts_with('(') && ends_with('V');
230 }
231
232 bool is_Q_signature() const;
233 bool is_Q_array_signature() const;
234 bool is_Q_singledim_array_signature() const;
235 Symbol* fundamental_name(TRAPS);
236 bool is_same_fundamental_type(Symbol*) const;
237
238 // Tests if the symbol starts with the given prefix.
239 int index_of_at(int i, const char* str, int len) const;
240
241 // Three-way compare for sorting; returns -1/0/1 if receiver is </==/> than arg
242 // note that the ordering is not alfabetical
243 inline int fast_compare(const Symbol* other) const;
244
245 // Returns receiver converted to null-terminated UTF-8 string; string is
246 // allocated in resource area, or in the char buffer provided by caller.
247 char* as_C_string() const;
248 char* as_C_string(char* buf, int size) const;
249
250 // Returns an escaped form of a Java string.
251 char* as_quoted_ascii() const;
252
253 // Returns a null terminated utf8 string in a resource array
|
214 }
215 bool ends_with(const char* suffix) const {
216 return ends_with(suffix, (int) strlen(suffix));
217 }
218 bool ends_with(char suffix_char) const {
219 return contains_byte_at(utf8_length()-1, suffix_char);
220 }
221 // Tests if the symbol contains the given utf8 substring
222 // or byte at the given byte position.
223 bool contains_utf8_at(int position, const char* substring, int len) const;
224 bool contains_byte_at(int position, char code_byte) const;
225
226 // True if this is a descriptor for a method with void return.
227 // (Assumes it is a valid descriptor.)
228 bool is_void_method_signature() const {
229 return starts_with('(') && ends_with('V');
230 }
231
232 bool is_Q_signature() const;
233 bool is_Q_array_signature() const;
234 bool is_Q_method_signature() const;
235 bool is_Q_singledim_array_signature() const;
236 Symbol* fundamental_name(TRAPS);
237 bool is_same_fundamental_type(Symbol*) const;
238
239 // Tests if the symbol starts with the given prefix.
240 int index_of_at(int i, const char* str, int len) const;
241
242 // Three-way compare for sorting; returns -1/0/1 if receiver is </==/> than arg
243 // note that the ordering is not alfabetical
244 inline int fast_compare(const Symbol* other) const;
245
246 // Returns receiver converted to null-terminated UTF-8 string; string is
247 // allocated in resource area, or in the char buffer provided by caller.
248 char* as_C_string() const;
249 char* as_C_string(char* buf, int size) const;
250
251 // Returns an escaped form of a Java string.
252 char* as_quoted_ascii() const;
253
254 // Returns a null terminated utf8 string in a resource array
|