| OLD | NEW |
| 1 #include "runtime.h" | 1 #include "runtime.h" |
| 2 #include "../intrusive_ptr.h" | 2 #include "../intrusive_ptr.h" |
| 3 #include "../String.h" | 3 #include "../String.h" |
| 4 | 4 |
| 5 extern "C" | 5 extern "C" |
| 6 { | 6 { |
| 7 void BINDINGS_EXPORTED InitString(DependentString* str, | 7 void BINDINGS_EXPORTED InitString(DependentString* str, |
| 8 String::value_type* data, String::size_type len) | 8 String::value_type* data, String::size_type len) |
| 9 { | 9 { |
| 10 // String is already allocated on stack, we merely need to call | 10 // String is already allocated on stack, we merely need to call |
| 11 // constructor. | 11 // constructor. |
| 12 new (str) DependentString(data, len); | 12 new (str) DependentString(data, len); |
| 13 } | 13 } |
| 14 | 14 |
| 15 void BINDINGS_EXPORTED InitOwnedString(OwnedString* str) |
| 16 { |
| 17 // String is already allocated on stack, we merely need to call |
| 18 // constructor. |
| 19 new (str) OwnedString(); |
| 20 } |
| 21 |
| 15 void BINDINGS_EXPORTED DestroyString(OwnedString* str) | 22 void BINDINGS_EXPORTED DestroyString(OwnedString* str) |
| 16 { | 23 { |
| 17 // Stack memory will be freed automatically, we need to call | 24 // Stack memory will be freed automatically, we need to call |
| 18 // destructor explicitly however. | 25 // destructor explicitly however. |
| 19 str->~OwnedString(); | 26 str->~OwnedString(); |
| 20 } | 27 } |
| 21 | 28 |
| 22 String::size_type BINDINGS_EXPORTED GetStringLength( | 29 String::size_type BINDINGS_EXPORTED GetStringLength( |
| 23 const String& str) | 30 const String& str) |
| 24 { | 31 { |
| 25 return str.length(); | 32 return str.length(); |
| 26 } | 33 } |
| 27 | 34 |
| 28 const String::value_type* BINDINGS_EXPORTED GetStringData( | 35 const String::value_type* BINDINGS_EXPORTED GetStringData( |
| 29 const String& str) | 36 const String& str) |
| 30 { | 37 { |
| 31 return str.data(); | 38 return str.data(); |
| 32 } | 39 } |
| 33 | 40 |
| 34 void BINDINGS_EXPORTED ReleaseRef(ref_counted* ptr) | 41 void BINDINGS_EXPORTED ReleaseRef(ref_counted* ptr) |
| 35 { | 42 { |
| 36 ptr->ReleaseRef(); | 43 ptr->ReleaseRef(); |
| 37 } | 44 } |
| 38 } | 45 } |
| OLD | NEW |