OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 10 matching lines...) Expand all Loading... |
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | 27 |
28 #include "allocation.h" | 28 #include "allocation.h" |
29 | 29 |
30 #include <stdlib.h> // For free, malloc. | 30 #include <stdlib.h> // For free, malloc. |
31 #include <string.h> // For memcpy. | |
32 #include "checks.h" | 31 #include "checks.h" |
| 32 #include "platform.h" |
33 #include "utils.h" | 33 #include "utils.h" |
34 | 34 |
35 namespace v8 { | 35 namespace v8 { |
36 namespace internal { | 36 namespace internal { |
37 | 37 |
38 void* Malloced::New(size_t size) { | 38 void* Malloced::New(size_t size) { |
39 void* result = malloc(size); | 39 void* result = malloc(size); |
40 if (result == NULL) { | 40 if (result == NULL) { |
41 v8::internal::FatalProcessOutOfMemory("Malloced operator new"); | 41 v8::internal::FatalProcessOutOfMemory("Malloced operator new"); |
42 } | 42 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 void AllStatic::operator delete(void* p) { | 78 void AllStatic::operator delete(void* p) { |
79 UNREACHABLE(); | 79 UNREACHABLE(); |
80 } | 80 } |
81 | 81 |
82 #endif | 82 #endif |
83 | 83 |
84 | 84 |
85 char* StrDup(const char* str) { | 85 char* StrDup(const char* str) { |
86 int length = StrLength(str); | 86 int length = StrLength(str); |
87 char* result = NewArray<char>(length + 1); | 87 char* result = NewArray<char>(length + 1); |
88 memcpy(result, str, length); | 88 OS::MemCopy(result, str, length); |
89 result[length] = '\0'; | 89 result[length] = '\0'; |
90 return result; | 90 return result; |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 char* StrNDup(const char* str, int n) { | 94 char* StrNDup(const char* str, int n) { |
95 int length = StrLength(str); | 95 int length = StrLength(str); |
96 if (n < length) length = n; | 96 if (n < length) length = n; |
97 char* result = NewArray<char>(length + 1); | 97 char* result = NewArray<char>(length + 1); |
98 memcpy(result, str, length); | 98 OS::MemCopy(result, str, length); |
99 result[length] = '\0'; | 99 result[length] = '\0'; |
100 return result; | 100 return result; |
101 } | 101 } |
102 | 102 |
103 | 103 |
104 void PreallocatedStorage::LinkTo(PreallocatedStorage* other) { | 104 void PreallocatedStorage::LinkTo(PreallocatedStorage* other) { |
105 next_ = other->next_; | 105 next_ = other->next_; |
106 other->next_->previous_ = this; | 106 other->next_->previous_ = this; |
107 previous_ = other; | 107 previous_ = other; |
108 other->next_ = this; | 108 other->next_ = this; |
109 } | 109 } |
110 | 110 |
111 | 111 |
112 void PreallocatedStorage::Unlink() { | 112 void PreallocatedStorage::Unlink() { |
113 next_->previous_ = previous_; | 113 next_->previous_ = previous_; |
114 previous_->next_ = next_; | 114 previous_->next_ = next_; |
115 } | 115 } |
116 | 116 |
117 | 117 |
118 PreallocatedStorage::PreallocatedStorage(size_t size) | 118 PreallocatedStorage::PreallocatedStorage(size_t size) |
119 : size_(size) { | 119 : size_(size) { |
120 previous_ = next_ = this; | 120 previous_ = next_ = this; |
121 } | 121 } |
122 | 122 |
123 } } // namespace v8::internal | 123 } } // namespace v8::internal |
OLD | NEW |