TODO: * It seems the local case optimization can go wrong when invoking bogus methods from a different interface on an Object ref. + this is to do with a) not checking the vepv offset we get b) not expanding the lookup of the vepv offset at all. * Thread safety + apparently g_object_ref / unref are not thread safe we need linc_object_ref / unref instead that does a LINC_MUTEX_LOCK on the global object lifecycle lock that needs to move into linc ... sigh ! + we need to ensure that linc does no signal emissions, since these are horribly slow and again not safe. * Optimization + we need some concept of align == native align flagged on TypeCodes, so we can blat things quickly with memcpy in a generic way - eg. sequences of octets. * Dragons: + giop_recv_buffer.c (giop_connection_handle_input) manages to go through the error condition a whole load; _why_ is this ? - is it a recursive effect on the method ? why are we called if there is no data ?