A downloadable extension

Download NowName your own price

Versions: GameMaker: Studio
Platforms: Windows, Windows (YYC)

In GMS1, calling buffer_create with size of 0 throws an error like this one:

ERROR!!! :: ############################################################################################
FATAL ERROR in
action number 1
of PreCreate Event
for object <name>:
 
buffer_create: Illegal size 0
############################################################################################

Consequently, this also means that if a game receives a network_send* packet with size of 0, it will crash - with nothing that you can do about this.

This extension fixes that by monkey-patching the implementation of buffer_create to allow 0-sized buffers like GMS2 does.

How to use:

1. Import the extension to your project (drag and drop onto GMS1 IDE or right-click on "Extensions" in resource panel ➜ "Import extension").

2. Call the function on game start once:

buffer_create_fix();

You can verify that it works by doing the following:

socket = network_create_server(network_socket_udp, 5000, 1);
buffer = buffer_create(1, buffer_grow, 1);
network_send_udp(socket, "127.0.0.1", 5000, buffer, 0);
 
var b = buffer_create(0, buffer_grow, 1);
show_debug_message("size of zero-sized buffer(): " + string(buffer_get_size(b)));

Special thanks to Pelican Police for funding development of this extension.

Download

Download NowName your own price

Click download now to get access to the following files:

buffer_create_fix.gmz 209 kB
buffer_create_fix.gmez 65 kB

Comments

Log in with itch.io to leave a comment.

(+1)

Now that's handy.