OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 2167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2178 } else { | 2178 } else { |
2179 const char* prefix = "[object "; | 2179 const char* prefix = "[object "; |
2180 Local<String> str = Utils::ToLocal(class_name); | 2180 Local<String> str = Utils::ToLocal(class_name); |
2181 const char* postfix = "]"; | 2181 const char* postfix = "]"; |
2182 | 2182 |
2183 int prefix_len = i::StrLength(prefix); | 2183 int prefix_len = i::StrLength(prefix); |
2184 int str_len = str->Length(); | 2184 int str_len = str->Length(); |
2185 int postfix_len = i::StrLength(postfix); | 2185 int postfix_len = i::StrLength(postfix); |
2186 | 2186 |
2187 int buf_len = prefix_len + str_len + postfix_len; | 2187 int buf_len = prefix_len + str_len + postfix_len; |
2188 char* buf = i::NewArray<char>(buf_len); | 2188 i::ScopedVector<char> buf(buf_len); |
2189 | 2189 |
2190 // Write prefix. | 2190 // Write prefix. |
2191 char* ptr = buf; | 2191 char* ptr = buf.start(); |
2192 memcpy(ptr, prefix, prefix_len * v8::internal::kCharSize); | 2192 memcpy(ptr, prefix, prefix_len * v8::internal::kCharSize); |
2193 ptr += prefix_len; | 2193 ptr += prefix_len; |
2194 | 2194 |
2195 // Write real content. | 2195 // Write real content. |
2196 str->WriteAscii(ptr, 0, str_len); | 2196 str->WriteAscii(ptr, 0, str_len); |
2197 ptr += str_len; | 2197 ptr += str_len; |
2198 | 2198 |
2199 // Write postfix. | 2199 // Write postfix. |
2200 memcpy(ptr, postfix, postfix_len * v8::internal::kCharSize); | 2200 memcpy(ptr, postfix, postfix_len * v8::internal::kCharSize); |
2201 | 2201 |
2202 // Copy the buffer into a heap-allocated string and return it. | 2202 // Copy the buffer into a heap-allocated string and return it. |
2203 Local<String> result = v8::String::New(buf, buf_len); | 2203 Local<String> result = v8::String::New(buf.start(), buf_len); |
2204 i::DeleteArray(buf); | |
2205 return result; | 2204 return result; |
2206 } | 2205 } |
2207 } | 2206 } |
2208 } | 2207 } |
2209 | 2208 |
2210 | 2209 |
2211 bool v8::Object::Delete(v8::Handle<String> key) { | 2210 bool v8::Object::Delete(v8::Handle<String> key) { |
2212 ON_BAILOUT("v8::Object::Delete()", return false); | 2211 ON_BAILOUT("v8::Object::Delete()", return false); |
2213 ENTER_V8; | 2212 ENTER_V8; |
2214 HandleScope scope; | 2213 HandleScope scope; |
(...skipping 2025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4240 | 4239 |
4241 | 4240 |
4242 char* HandleScopeImplementer::Iterate(ObjectVisitor* v, char* storage) { | 4241 char* HandleScopeImplementer::Iterate(ObjectVisitor* v, char* storage) { |
4243 HandleScopeImplementer* thread_local = | 4242 HandleScopeImplementer* thread_local = |
4244 reinterpret_cast<HandleScopeImplementer*>(storage); | 4243 reinterpret_cast<HandleScopeImplementer*>(storage); |
4245 thread_local->IterateThis(v); | 4244 thread_local->IterateThis(v); |
4246 return storage + ArchiveSpacePerThread(); | 4245 return storage + ArchiveSpacePerThread(); |
4247 } | 4246 } |
4248 | 4247 |
4249 } } // namespace v8::internal | 4248 } } // namespace v8::internal |
OLD | NEW |