Question about BLO_read_id_address and ID management in general


I’m trying to expand UPBGE’s features which involves adding RNA properties of various data types, like Material, or Object, for example.

At first, it looked to work well, as I could assign values to such a property which can be read while the game is running, and it persists when I save and load the .blend file.

But after finding out that the referenced data items don’t get included when I append an object that owns the property, I noticed that I was missing a call to BLO_read_id_address in object.c.

I’m not sure if it’s in anyway related to the problem, but what I found is that when I invoke BLO_read_id_address, value of the property gets lost so it shows up as blank in Blender.

So, can anyone give me a hint as to where should I look to fix this problem? I’m not really a C/C++ developer, so my knowledge of the language or of the internals of Blender is quite limited. As such, any sort of advice, directions, hints would be appreciated.

Thanks in advance!

I just found out the cause. It was because of a mismatching BLO_write_struct call.