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

Side by Side Diff: runtime/bin/dartutils.cc

Issue 270503007: Eliminate unused url mapping parameter in dartutils (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/bin/dartutils.h ('k') | runtime/bin/gen_snapshot.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "bin/dartutils.h" 5 #include "bin/dartutils.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "include/dart_native_api.h" 8 #include "include/dart_native_api.h"
9 9
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 bool DartUtils::IsDartIOLibURL(const char* url_name) { 167 bool DartUtils::IsDartIOLibURL(const char* url_name) {
168 return (strcmp(url_name, kIOLibURL) == 0); 168 return (strcmp(url_name, kIOLibURL) == 0);
169 } 169 }
170 170
171 171
172 bool DartUtils::IsDartBuiltinLibURL(const char* url_name) { 172 bool DartUtils::IsDartBuiltinLibURL(const char* url_name) {
173 return (strcmp(url_name, kBuiltinLibURL) == 0); 173 return (strcmp(url_name, kBuiltinLibURL) == 0);
174 } 174 }
175 175
176 176
177 Dart_Handle DartUtils::CanonicalizeURL(CommandLineOptions* url_mapping,
178 Dart_Handle library,
179 const char* url_str) {
180 // Get the url of the including library.
181 Dart_Handle library_url = Dart_LibraryUrl(library);
182 if (Dart_IsError(library_url)) {
183 return Dart_NewApiError("accessing library url failed");
184 }
185 if (!Dart_IsString(library_url)) {
186 return Dart_NewApiError("library url is not a string");
187 }
188 const char* library_url_str = NULL;
189 Dart_Handle result = Dart_StringToCString(library_url, &library_url_str);
190 if (Dart_IsError(result)) {
191 return Dart_NewApiError("accessing library url characters failed");
192 }
193 if (url_mapping != NULL) {
194 const char* mapped_library_url_str = MapLibraryUrl(url_mapping,
195 library_url_str);
196 if (mapped_library_url_str != NULL) {
197 library_url_str = mapped_library_url_str;
198 }
199 }
200 // Calculate the canonical path.
201 const char* canon_url_str = GetCanonicalPath(library_url_str, url_str);
202 Dart_Handle canon_url = NewString(canon_url_str);
203 free(const_cast<char*>(canon_url_str));
204
205 return canon_url;
206 }
207
208
209 void* DartUtils::OpenFile(const char* name, bool write) { 177 void* DartUtils::OpenFile(const char* name, bool write) {
210 File* file = File::Open(name, write ? File::kWriteTruncate : File::kRead); 178 File* file = File::Open(name, write ? File::kWriteTruncate : File::kRead);
211 return reinterpret_cast<void*>(file); 179 return reinterpret_cast<void*>(file);
212 } 180 }
213 181
214 182
215 void DartUtils::ReadFile(const uint8_t** data, 183 void DartUtils::ReadFile(const uint8_t** data,
216 intptr_t* len, 184 intptr_t* len,
217 void* stream) { 185 void* stream) {
218 ASSERT(data != NULL); 186 ASSERT(data != NULL);
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 library); 529 library);
562 } else { 530 } else {
563 // Handle 'import' or 'part' requests for all other URIs. 531 // Handle 'import' or 'part' requests for all other URIs.
564 // Get the file path out of the url. 532 // Get the file path out of the url.
565 Dart_Handle file_path = DartUtils::FilePathFromUri(url, builtin_lib); 533 Dart_Handle file_path = DartUtils::FilePathFromUri(url, builtin_lib);
566 if (Dart_IsError(file_path)) { 534 if (Dart_IsError(file_path)) {
567 return file_path; 535 return file_path;
568 } 536 }
569 const char* final_path = NULL; 537 const char* final_path = NULL;
570 Dart_StringToCString(file_path, &final_path); 538 Dart_StringToCString(file_path, &final_path);
571 result = DartUtils::LoadSource(NULL, 539 result = DartUtils::LoadSource(library, url, tag, final_path);
572 library,
573 url,
574 tag,
575 final_path);
576 return result; 540 return result;
577 } 541 }
578 } 542 }
579 543
580 544
581 const uint8_t* DartUtils::SniffForMagicNumber(const uint8_t* text_buffer, 545 const uint8_t* DartUtils::SniffForMagicNumber(const uint8_t* text_buffer,
582 intptr_t* buffer_len, 546 intptr_t* buffer_len,
583 bool* is_snapshot) { 547 bool* is_snapshot) {
584 intptr_t len = sizeof(magic_number); 548 intptr_t len = sizeof(magic_number);
585 for (intptr_t i = 0; i < len; i++) { 549 for (intptr_t i = 0; i < len; i++) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 returnValue = NewError("%s is not a valid UTF-8 script", script_uri); 627 returnValue = NewError("%s is not a valid UTF-8 script", script_uri);
664 } else { 628 } else {
665 returnValue = Dart_LoadScript(resolved_script_uri, source, 0, 0); 629 returnValue = Dart_LoadScript(resolved_script_uri, source, 0, 0);
666 } 630 }
667 } 631 }
668 free(const_cast<uint8_t *>(buffer)); 632 free(const_cast<uint8_t *>(buffer));
669 return returnValue; 633 return returnValue;
670 } 634 }
671 635
672 636
673 Dart_Handle DartUtils::LoadSource(CommandLineOptions* url_mapping, 637 Dart_Handle DartUtils::LoadSource(Dart_Handle library,
674 Dart_Handle library,
675 Dart_Handle url, 638 Dart_Handle url,
676 Dart_LibraryTag tag, 639 Dart_LibraryTag tag,
677 const char* url_string) { 640 const char* url_string) {
678 bool is_http_scheme_url = DartUtils::IsHttpSchemeURL(url_string); 641 bool is_http_scheme_url = DartUtils::IsHttpSchemeURL(url_string);
679 if (url_mapping != NULL && IsDartSchemeURL(url_string)) {
680 const char* mapped_url_string = MapLibraryUrl(url_mapping, url_string);
681 if (mapped_url_string == NULL) {
682 return NewError("Do not know how to load %s", url_string);
683 }
684 // We have a URL mapping specified, just read the file that the
685 // URL mapping specifies and load it.
686 url_string = mapped_url_string;
687 }
688 Dart_Handle source; 642 Dart_Handle source;
689 if (is_http_scheme_url) { 643 if (is_http_scheme_url) {
690 // Read the file over http. 644 // Read the file over http.
691 source = DartUtils::ReadStringFromHttp(url_string); 645 source = DartUtils::ReadStringFromHttp(url_string);
692 } else { 646 } else {
693 // Read the file. 647 // Read the file.
694 source = DartUtils::ReadStringFromFile(url_string); 648 source = DartUtils::ReadStringFromFile(url_string);
695 } 649 }
696 if (Dart_IsError(source)) { 650 if (Dart_IsError(source)) {
697 return source; // source contains the error string. 651 return source; // source contains the error string.
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 return Dart_Invoke(builtin_lib, 738 return Dart_Invoke(builtin_lib,
785 NewString("_setPackageRoot"), 739 NewString("_setPackageRoot"),
786 kNumArgs, 740 kNumArgs,
787 dart_args); 741 dart_args);
788 } 742 }
789 } 743 }
790 return result; 744 return result;
791 } 745 }
792 746
793 747
794 const char* DartUtils::GetCanonicalPath(const char* reference_dir,
795 const char* filename) {
796 if (File::IsAbsolutePath(filename)) {
797 return strdup(filename);
798 }
799
800 char* canonical_path = File::GetCanonicalPath(reference_dir);
801 if (canonical_path == NULL) {
802 canonical_path = strdup(reference_dir);
803 ASSERT(canonical_path != NULL);
804 }
805 ASSERT(File::PathSeparator() != NULL && strlen(File::PathSeparator()) == 1);
806 char* path_sep = strrchr(canonical_path, File::PathSeparator()[0]);
807 if (path_sep == NULL) {
808 // No separator found: Reference is a file in local directory.
809 free(canonical_path);
810 return strdup(filename);
811 }
812 *path_sep = '\0';
813 intptr_t len = snprintf(NULL, 0, "%s%s%s",
814 canonical_path, File::PathSeparator(), filename);
815 char* absolute_filename = reinterpret_cast<char*>(malloc(len + 1));
816 ASSERT(absolute_filename != NULL);
817
818 snprintf(absolute_filename, len + 1, "%s%s%s",
819 canonical_path, File::PathSeparator(), filename);
820 free(canonical_path);
821 canonical_path = File::GetCanonicalPath(absolute_filename);
822 if (canonical_path == NULL) {
823 return absolute_filename;
824 }
825 free(absolute_filename);
826 return canonical_path;
827 }
828
829
830 bool DartUtils::PostNull(Dart_Port port_id) { 748 bool DartUtils::PostNull(Dart_Port port_id) {
831 // Post a message with just the null object. 749 // Post a message with just the null object.
832 return Dart_PostCObject(port_id, CObject::Null()->AsApiCObject()); 750 return Dart_PostCObject(port_id, CObject::Null()->AsApiCObject());
833 } 751 }
834 752
835 753
836 bool DartUtils::PostInt32(Dart_Port port_id, int32_t value) { 754 bool DartUtils::PostInt32(Dart_Port port_id, int32_t value) {
837 // Post a message with the integer value. 755 // Post a message with the integer value.
838 int32_t min = 0xc0000000; // -1073741824 756 int32_t min = 0xc0000000; // -1073741824
839 int32_t max = 0x3fffffff; // 1073741823 757 int32_t max = 0x3fffffff; // 1073741823
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 new CObjectString(CObject::NewString(os_error->message())); 1036 new CObjectString(CObject::NewString(os_error->message()));
1119 CObjectArray* result = new CObjectArray(CObject::NewArray(3)); 1037 CObjectArray* result = new CObjectArray(CObject::NewArray(3));
1120 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); 1038 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError)));
1121 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); 1039 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code())));
1122 result->SetAt(2, error_message); 1040 result->SetAt(2, error_message);
1123 return result; 1041 return result;
1124 } 1042 }
1125 1043
1126 } // namespace bin 1044 } // namespace bin
1127 } // namespace dart 1045 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/bin/dartutils.h ('k') | runtime/bin/gen_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698