Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: compiled/bindings/runtime_utils.cpp

Issue 29434561: Noissue - [emscripten] Call the correct constructor for strings created from JavaScript (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore
Patch Set: Created May 9, 2017, 10:37 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
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 }
OLDNEW
« compiled/bindings/generator.cpp ('K') | « compiled/bindings/generator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld