| 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 |