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

Unified Diff: runtime/bin/dartutils.cc

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/bin/dartutils.cc
===================================================================
--- runtime/bin/dartutils.cc (revision 14314)
+++ runtime/bin/dartutils.cc (working copy)
@@ -99,15 +99,15 @@
const char* name,
intptr_t val) {
Dart_Handle result = Dart_SetField(handle,
- Dart_NewString(name),
+ NewString(name),
Dart_NewInteger(val));
ASSERT(!Dart_IsError(result));
}
intptr_t DartUtils::GetIntegerField(Dart_Handle handle,
- const char* name) {
- Dart_Handle result = Dart_GetField(handle, Dart_NewString(name));
+ const char* name) {
+ Dart_Handle result = Dart_GetField(handle, NewString(name));
ASSERT(!Dart_IsError(result));
intptr_t value = DartUtils::GetIntegerValue(result);
return value;
@@ -117,9 +117,7 @@
void DartUtils::SetStringField(Dart_Handle handle,
const char* name,
const char* val) {
- Dart_Handle result = Dart_SetField(handle,
- Dart_NewString(name),
- Dart_NewString(val));
+ Dart_Handle result = Dart_SetField(handle, NewString(name), NewString(val));
ASSERT(!Dart_IsError(result));
}
@@ -174,7 +172,7 @@
if (Dart_IsError(library_url)) {
return Dart_Error("accessing library url failed");
}
- if (!Dart_IsString8(library_url)) {
+ if (!Dart_IsString(library_url)) {
return Dart_Error("library url is not a string");
}
const char* library_url_str = NULL;
@@ -191,7 +189,7 @@
}
// Calculate the canonical path.
const char* canon_url_str = GetCanonicalPath(library_url_str, url_str);
- Dart_Handle canon_url = Dart_NewString(canon_url_str);
+ Dart_Handle canon_url = NewString(canon_url_str);
free(const_cast<char*>(canon_url_str));
return canon_url;
@@ -210,18 +208,18 @@
return Dart_Error(error_msg);
}
intptr_t len = file->Length();
- char* text_buffer = reinterpret_cast<char*>(malloc(len + 1));
+ uint8_t* text_buffer = reinterpret_cast<uint8_t*>(malloc(len));
if (text_buffer == NULL) {
delete file;
return Dart_Error("Unable to allocate buffer");
}
if (!file->ReadFully(text_buffer, len)) {
delete file;
+ free(text_buffer);
return Dart_Error("Unable to fully read contents");
}
- text_buffer[len] = '\0';
delete file;
- Dart_Handle str = Dart_NewString(text_buffer);
+ Dart_Handle str = Dart_NewStringFromUTF8(text_buffer, len);
free(text_buffer);
return str;
}
@@ -231,11 +229,13 @@
Dart_Handle builtin_lib) {
const int kNumArgs = 3;
Dart_Handle dart_args[kNumArgs];
- dart_args[0] = Dart_NewString(DartUtils::original_working_directory);
+ dart_args[0] = DartUtils::NewString(DartUtils::original_working_directory);
dart_args[1] = script_uri;
dart_args[2] = (IsWindowsHost() ? Dart_True() : Dart_False());
- return Dart_Invoke(
- builtin_lib, Dart_NewString("_resolveScriptUri"), kNumArgs, dart_args);
+ return Dart_Invoke(builtin_lib,
+ DartUtils::NewString("_resolveScriptUri"),
+ kNumArgs,
+ dart_args);
}
@@ -246,7 +246,10 @@
dart_args[0] = script_uri;
dart_args[1] = (IsWindowsHost() ? Dart_True() : Dart_False());
Dart_Handle script_path = Dart_Invoke(
- builtin_lib, Dart_NewString("_filePathFromUri"), kNumArgs, dart_args);
+ builtin_lib,
+ DartUtils::NewString("_filePathFromUri"),
+ kNumArgs,
+ dart_args);
return script_path;
}
@@ -257,7 +260,7 @@
if (!Dart_IsLibrary(library)) {
return Dart_Error("not a library");
}
- if (!Dart_IsString8(url)) {
+ if (!Dart_IsString(url)) {
return Dart_Error("url is not a string");
}
const char* url_string = NULL;
@@ -285,7 +288,7 @@
dart_args[0] = library_url;
dart_args[1] = url;
return Dart_Invoke(
- builtin_lib, Dart_NewString("_resolveUri"), kNumArgs, dart_args);
+ builtin_lib, NewString("_resolveUri"), kNumArgs, dart_args);
}
if (is_dart_scheme_url) {
ASSERT(tag == kImportTag);
@@ -346,8 +349,7 @@
Dart_Handle DartUtils::LoadScript(const char* script_uri,
Dart_Handle builtin_lib) {
Dart_Handle resolved_script_uri;
- resolved_script_uri = ResolveScriptUri(Dart_NewString(script_uri),
- builtin_lib);
+ resolved_script_uri = ResolveScriptUri(NewString(script_uri), builtin_lib);
if (Dart_IsError(resolved_script_uri)) {
return resolved_script_uri;
}
@@ -392,35 +394,35 @@
Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root,
Dart_Handle builtin_lib) {
// Setup the corelib 'print' function.
- Dart_Handle print =
- Dart_Invoke(builtin_lib, Dart_NewString("_getPrintClosure"), 0, 0);
- Dart_Handle corelib = Dart_LookupLibrary(Dart_NewString("dart:core"));
+ Dart_Handle print = Dart_Invoke(
+ builtin_lib, NewString("_getPrintClosure"), 0, 0);
+ Dart_Handle corelib = Dart_LookupLibrary(NewString("dart:core"));
Dart_Handle result = Dart_SetField(corelib,
- Dart_NewString("_printClosure"), print);
+ NewString("_printClosure"),
+ print);
// Setup the 'timer' factory.
- Dart_Handle url = Dart_NewString(kIsolateLibURL);
+ Dart_Handle url = NewString(kIsolateLibURL);
DART_CHECK_VALID(url);
Dart_Handle isolate_lib = Dart_LookupLibrary(url);
DART_CHECK_VALID(isolate_lib);
Dart_Handle io_lib = Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary);
Dart_Handle timer_closure =
- Dart_Invoke(io_lib, Dart_NewString("_getTimerFactoryClosure"), 0, NULL);
+ Dart_Invoke(io_lib, NewString("_getTimerFactoryClosure"), 0, NULL);
Dart_Handle args[1];
args[0] = timer_closure;
- DART_CHECK_VALID(Dart_Invoke(isolate_lib,
- Dart_NewString("_setTimerFactoryClosure"),
- 1, args));
+ DART_CHECK_VALID(Dart_Invoke(
+ isolate_lib, NewString("_setTimerFactoryClosure"), 1, args));
// Set up package root if specified.
if (package_root != NULL) {
- result = Dart_NewString(package_root);
+ result = NewString(package_root);
if (!Dart_IsError(result)) {
const int kNumArgs = 1;
Dart_Handle dart_args[kNumArgs];
dart_args[0] = result;
return Dart_Invoke(builtin_lib,
- Dart_NewString("_setPackageRoot"),
+ NewString("_setPackageRoot"),
kNumArgs,
dart_args);
}
@@ -492,16 +494,16 @@
Dart_Handle DartUtils::NewDartOSError(OSError* os_error) {
// Create a Dart OSError object with the information retrieved from the OS.
- Dart_Handle url = Dart_NewString("dart:io");
+ Dart_Handle url = NewString("dart:io");
if (Dart_IsError(url)) return url;
Dart_Handle lib = Dart_LookupLibrary(url);
if (Dart_IsError(lib)) return lib;
- Dart_Handle class_name = Dart_NewString("OSError");
+ Dart_Handle class_name = NewString("OSError");
if (Dart_IsError(class_name)) return class_name;
Dart_Handle clazz = Dart_GetClass(lib, class_name);
if (Dart_IsError(clazz)) return clazz;
Dart_Handle args[2];
- args[0] = Dart_NewString(os_error->message());
+ args[0] = NewString(os_error->message());
if (Dart_IsError(args[0])) return args[0];
args[1] = Dart_NewInteger(os_error->code());
if (Dart_IsError(args[1])) return args[1];
« no previous file with comments | « runtime/bin/dartutils.h ('k') | runtime/bin/dbg_message.cc » ('j') | runtime/vm/dart_api_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698