Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Unified Diff: runtime/include/dart_api.h

Issue 11318018: - Represent strings internally in UTF-16 format, this makes it (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/include/dart_api.h
===================================================================
--- runtime/include/dart_api.h (revision 14314)
+++ runtime/include/dart_api.h (working copy)
@@ -1323,16 +1323,13 @@
*/
DART_EXPORT bool Dart_IsString(Dart_Handle object);
-/**
- * Is this object a String whose codepoints all fit into 8 bits?
- */
-DART_EXPORT bool Dart_IsString8(Dart_Handle object);
/**
- * Is this object a String whose codepoints all fit into 16 bits?
+ * Is this object an ASCII String?
*/
-DART_EXPORT bool Dart_IsString16(Dart_Handle object);
+DART_EXPORT bool Dart_IsAsciiString(Dart_Handle object);
+
/**
* Gets the length of a String.
*
@@ -1345,51 +1342,54 @@
/**
* Returns a String built from the provided C string
+ * (There is an implicit assumption that the C string passed in contains
+ * UTF-8 encoded characters and '\0' is considered as a termination
+ * character).
*
* \param value A C String
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewString(const char* str);
+DART_EXPORT Dart_Handle Dart_NewStringFromCString(const char* str);
// TODO(turnidge): Document what happens when we run out of memory
// during this call.
/**
- * Returns a String built from an array of 8-bit codepoints.
+ * Returns a String built from an array of UTF-8 encoded characters.
*
- * \param value An array of 8-bit codepoints.
+ * \param utf8_array An array of UTF-8 encoded characters.
* \param length The length of the codepoints array.
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewString8(const uint8_t* codepoints,
- intptr_t length);
+DART_EXPORT Dart_Handle Dart_NewStringFromUTF8(const uint8_t* utf8_array,
+ intptr_t length);
/**
- * Returns a String built from an array of 16-bit codepoints.
+ * Returns a String built from an array of UTF-16 encoded characters.
*
- * \param value An array of 16-bit codepoints.
+ * \param utf16_array An array of UTF-16 encoded characters.
* \param length The length of the codepoints array.
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewString16(const uint16_t* codepoints,
- intptr_t length);
+DART_EXPORT Dart_Handle Dart_NewStringFromUTF16(const uint16_t* utf16_array,
+ intptr_t length);
/**
- * Returns a String built from an array of 32-bit codepoints.
+ * Returns a String built from an array of UTF-32 encoded characters.
*
- * \param value An array of 32-bit codepoints.
+ * \param utf32_array An array of UTF-32 encoded characters.
* \param length The length of the codepoints array.
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewString32(const uint32_t* codepoints,
- intptr_t length);
+DART_EXPORT Dart_Handle Dart_NewStringFromUTF32(const uint32_t* utf32_array,
+ intptr_t length);
/**
* Is this object an external String?
@@ -1405,136 +1405,85 @@
DART_EXPORT Dart_Handle Dart_ExternalStringGetPeer(Dart_Handle object,
void** peer);
-
/**
- * Returns a String which references an external array of 8-bit codepoints.
+ * Returns a String which references an external array of UTF-8 encoded
+ * characters.
*
- * \param value An array of 8-bit codepoints. This array must not move.
- * \param length The length of the codepoints array.
+ * \param utf8_array An array of UTF-8 encoded characters. This must not move.
+ * \param length The length of the characters array.
* \param peer An external pointer to associate with this string.
- * \param callback A callback to be called when this string is finalized.
+ * \param cback A callback to be called when this string is finalized.
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewExternalString8(const uint8_t* codepoints,
- intptr_t length,
- void* peer,
- Dart_PeerFinalizer callback);
+DART_EXPORT Dart_Handle Dart_NewExternalUTF8String(const uint8_t* utf8_array,
+ intptr_t length,
+ void* peer,
+ Dart_PeerFinalizer cback);
/**
- * Returns a String which references an external array of 16-bit codepoints.
+ * Returns a String which references an external array of UTF-16 encoded
+ * characters.
*
- * \param value An array of 16-bit codepoints. This array must not move.
- * \param length The length of the codepoints array.
+ * \param utf16_array An array of UTF-16 encoded characters. This must not move.
+ * \param length The length of the characters array.
* \param peer An external pointer to associate with this string.
- * \param callback A callback to be called when this string is finalized.
+ * \param cback A callback to be called when this string is finalized.
*
* \return The String object if no error occurs. Otherwise returns
* an error handle.
*/
-DART_EXPORT Dart_Handle Dart_NewExternalString16(const uint16_t* codepoints,
- intptr_t length,
- void* peer,
- Dart_PeerFinalizer callback);
+DART_EXPORT Dart_Handle Dart_NewExternalUTF16String(const uint16_t* utf16_array,
+ intptr_t length,
+ void* peer,
+ Dart_PeerFinalizer cback);
/**
- * Returns a String which references an external array of 32-bit codepoints.
+ * Gets the C string representation of a String.
+ * (It is a sequence of UTF-8 encoded values with a '\0' termination.)
*
- * \param value An array of 32-bit codepoints. This array must not move.
- * \param length The length of the codepoints array.
- * \param peer An external pointer to associate with this string.
- * \param callback A callback to be called when this string is finalized.
- *
- * \return The String object if no error occurs. Otherwise returns
- * an error handle.
- */
-DART_EXPORT Dart_Handle Dart_NewExternalString32(const uint32_t* codepoints,
- intptr_t length,
- void* peer,
- Dart_PeerFinalizer callback);
-
-/**
- * Gets the codepoints from a String.
- *
- * This function is only valid on strings for which Dart_IsString8 is
- * true. Otherwise an error occurs.
- *
* \param str A string.
- * \param codepoints An array allocated by the caller, used to return
- * the array of codepoints.
- * \param length Used to pass in the length of the provided array.
- * Used to return the length of the array which was actually used.
+ * \param cstr Returns the String represented as a C string.
+ * This C string is scope allocated and is only valid until
+ * the next call to Dart_ExitScope.
*
* \return A valid handle if no error occurs during the operation.
*/
-DART_EXPORT Dart_Handle Dart_StringGet8(Dart_Handle str,
- uint8_t* codepoints,
- intptr_t* length);
-// TODO(turnidge): Rename to GetString8 to be consistent with the Is*
-// and New* functions above?
+DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle str,
+ const char** cstr);
/**
- * Gets the codepoints from a String.
+ * Gets a UTF-8 encoded representation of a String.
*
- * This function is only valid on strings for which Dart_IsString8 or
- * Dart_IsString16 is true. Otherwise an error occurs.
- *
* \param str A string.
- * \param codepoints An array allocated by the caller, used to return
- * the array of codepoints.
+ * \param utf8_array An array allocated by the caller, used to return
+ * the array of UTF-8 encoded characters.
* \param length Used to pass in the length of the provided array.
* Used to return the length of the array which was actually used.
*
* \return A valid handle if no error occurs during the operation.
*/
-DART_EXPORT Dart_Handle Dart_StringGet16(Dart_Handle str,
- uint16_t* codepoints,
- intptr_t* length);
+DART_EXPORT Dart_Handle Dart_StringToUTF8(Dart_Handle str,
+ uint8_t* utf8_array,
+ intptr_t* length);
/**
- * Gets the codepoints from a String
+ * Gets the UTF-16 encoded representation of a string.
*
* \param str A string.
- * \param codepoints An array allocated by the caller, used to return
- * the array of codepoints.
+ * \param utf16_array An array allocated by the caller, used to return
+ * the array of UTF-16 encoded characters.
* \param length Used to pass in the length of the provided array.
* Used to return the length of the array which was actually used.
*
* \return A valid handle if no error occurs during the operation.
*/
-DART_EXPORT Dart_Handle Dart_StringGet32(Dart_Handle str,
- uint32_t* codepoints,
- intptr_t* length);
-
-/**
- * Gets the utf8 encoded representation of a String.
- *
- * \param str A string.
- * \param utf8 Returns the String represented as a utf8 encoded C
- * string. This C string is scope allocated and is only valid until
- * the next call to Dart_ExitScope.
- *
- * \return A valid handle if no error occurs during the operation.
- */
-DART_EXPORT Dart_Handle Dart_StringToCString(Dart_Handle str,
- const char** utf8);
-
-/**
- * Gets a UTF-8 encoded representation of a String.
- *
- * \param str A string.
- * \param bytes Returns the String represented as an array of UTF-8
- * code units. This array is scope allocated and is only valid until
- * the next call to Dart_ExitScope.
- * \param length Returns the length of the code units array, in bytes.
- *
- * \return A valid handle if no error occurs during the operation.
- */
-DART_EXPORT Dart_Handle Dart_StringToBytes(Dart_Handle str,
- const uint8_t** bytes,
+DART_EXPORT Dart_Handle Dart_StringToUTF16(Dart_Handle str,
+ uint16_t* utf16_array,
intptr_t* length);
+
// --- Lists ---
/**

Powered by Google App Engine
This is Rietveld 408576698