Allow resizing String's from GDExtension
This commit is contained in:
parent
46424488ed
commit
e87900970c
|
@ -726,6 +726,11 @@ static void gdextension_string_operator_plus_eq_c32str(GDExtensionStringPtr p_se
|
||||||
*self += p_b;
|
*self += p_b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GDExtensionInt gdextension_string_resize(GDExtensionStringPtr p_self, GDExtensionInt p_length) {
|
||||||
|
String *self = (String *)p_self;
|
||||||
|
return (*self).resize(p_length);
|
||||||
|
}
|
||||||
|
|
||||||
static GDExtensionInt gdextension_xml_parser_open_buffer(GDExtensionObjectPtr p_instance, const uint8_t *p_buffer, size_t p_size) {
|
static GDExtensionInt gdextension_xml_parser_open_buffer(GDExtensionObjectPtr p_instance, const uint8_t *p_buffer, size_t p_size) {
|
||||||
XMLParser *xml = (XMLParser *)p_instance;
|
XMLParser *xml = (XMLParser *)p_instance;
|
||||||
return (GDExtensionInt)xml->_open_buffer(p_buffer, p_size);
|
return (GDExtensionInt)xml->_open_buffer(p_buffer, p_size);
|
||||||
|
@ -1167,6 +1172,7 @@ void gdextension_setup_interface() {
|
||||||
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_cstr);
|
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_cstr);
|
||||||
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_wcstr);
|
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_wcstr);
|
||||||
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_c32str);
|
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_c32str);
|
||||||
|
REGISTER_INTERFACE_FUNC(string_resize);
|
||||||
REGISTER_INTERFACE_FUNC(xml_parser_open_buffer);
|
REGISTER_INTERFACE_FUNC(xml_parser_open_buffer);
|
||||||
REGISTER_INTERFACE_FUNC(file_access_store_buffer);
|
REGISTER_INTERFACE_FUNC(file_access_store_buffer);
|
||||||
REGISTER_INTERFACE_FUNC(file_access_get_buffer);
|
REGISTER_INTERFACE_FUNC(file_access_get_buffer);
|
||||||
|
|
|
@ -1526,6 +1526,25 @@ typedef void (*GDExtensionInterfaceStringOperatorPlusEqWcstr)(GDExtensionStringP
|
||||||
*/
|
*/
|
||||||
typedef void (*GDExtensionInterfaceStringOperatorPlusEqC32str)(GDExtensionStringPtr p_self, const char32_t *p_b);
|
typedef void (*GDExtensionInterfaceStringOperatorPlusEqC32str)(GDExtensionStringPtr p_self, const char32_t *p_b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name string_resize
|
||||||
|
* @since 4.2
|
||||||
|
*
|
||||||
|
* Resizes the underlying string data to the given number of characters.
|
||||||
|
*
|
||||||
|
* Space needs to be allocated for the null terminating character ('\0') which
|
||||||
|
* also must be added manually, in order for all string functions to work correctly.
|
||||||
|
*
|
||||||
|
* Warning: This is an error-prone operation - only use it if there's no other
|
||||||
|
* efficient way to accomplish your goal.
|
||||||
|
*
|
||||||
|
* @param p_self A pointer to the String.
|
||||||
|
* @param p_resize The new length for the String.
|
||||||
|
*
|
||||||
|
* @return Error code signifying if the operation successful.
|
||||||
|
*/
|
||||||
|
typedef GDExtensionInt (*GDExtensionInterfaceStringResize)(GDExtensionStringPtr p_self, GDExtensionInt p_resize);
|
||||||
|
|
||||||
/* INTERFACE: XMLParser Utilities */
|
/* INTERFACE: XMLParser Utilities */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue