Thank you for the valuable feedback. I tried as much as I could to maintain the semantics as is, only changing the calls to GLib's functions.
To assure myself that I understood the directions of your feedback, the initialization of the tables can be done using g_malloc directly and all the null checks for the tables to be dropped. And that's because of the cruciality of this initialization code. Can you please elaborate more on how I would employ g_autofree in this code? Are you talking about the memory allocated for ``ptr`` in OPLCreate here? Thanks Mahmoud Mandour