diff options
Diffstat (limited to 'core/io/xml_parser.cpp')
-rw-r--r-- | core/io/xml_parser.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp index 150643b2e1..5d3e4f61ad 100644 --- a/core/io/xml_parser.cpp +++ b/core/io/xml_parser.cpp @@ -392,7 +392,8 @@ void XMLParser::_bind_methods() { ObjectTypeDB::bind_method(_MD("get_current_line"),&XMLParser::get_current_line); ObjectTypeDB::bind_method(_MD("skip_section"),&XMLParser::skip_section); ObjectTypeDB::bind_method(_MD("seek"),&XMLParser::seek); - ObjectTypeDB::bind_method(_MD("open"),&XMLParser::open); + ObjectTypeDB::bind_method(_MD("open","file"),&XMLParser::open); + ObjectTypeDB::bind_method(_MD("open_buffer","buffer"),&XMLParser::open_buffer); BIND_CONSTANT( NODE_NONE ); BIND_CONSTANT( NODE_ELEMENT ); @@ -493,6 +494,19 @@ bool XMLParser::is_empty() const { return node_empty; } +Error XMLParser::open_buffer(const Vector<uint8_t>& p_buffer) { + + ERR_FAIL_COND_V(p_buffer.size()==0,ERR_INVALID_DATA); + + length = p_buffer.size(); + data = memnew_arr( char, length+1); + copymem(data,p_buffer.ptr(),length); + data[length]=0; + P=data; + return OK; + +} + Error XMLParser::open(const String& p_path) { Error err; |