playdate->lua->getArgObject() should probably take a const char* argument

,

When getting an object argument the method:

void* playdate->lua->getArgObject(int pos, char* type, LuaUDObject** outud);

takes a char* for the class name. This unfortunately doesn't vibe with the method used to parse arguments which returns a const char*:

enum LuaType playdate->lua->getArgType(int pos, const char** outClass);

This prevents parsing code from safely reusing the same string between the two functions.

getArgObject()'s signature should probably be modified like so:

void* playdate->lua->getArgObject(int pos, const char* type, LuaUDObject** outud);

Same deal for void playdate->lua->pushString(char* str);

The get version:

const char* playdate->lua->getArgString(int pos);

returns a const, which clearly indicates that you're not supposed to mess with the string content.

pushString() takes a char* which, since there is no indication of ownership in the documentation, implies that maybe the string content could be modified by the recipient.

I think this needs to be clarified and probably changed to const too. If the recipient does need to be able to modify this, it should make a copy. It probably already does since nothing indicates that the memory for the string needs to be kept around after calling pushString().