Merge pull request #79156 from dsnopek/gdextension-string-resize
Allow resizing Strings from GDExtension
This commit is contained in:
commit
6bfda7f5c5
|
@ -726,6 +726,11 @@ static void gdextension_string_operator_plus_eq_c32str(GDExtensionStringPtr p_se
|
|||
*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) {
|
||||
XMLParser *xml = (XMLParser *)p_instance;
|
||||
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_wcstr);
|
||||
REGISTER_INTERFACE_FUNC(string_operator_plus_eq_c32str);
|
||||
REGISTER_INTERFACE_FUNC(string_resize);
|
||||
REGISTER_INTERFACE_FUNC(xml_parser_open_buffer);
|
||||
REGISTER_INTERFACE_FUNC(file_access_store_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);
|
||||
|
||||
/**
|
||||
* @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 */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue