Over the last days we have been working on reengineering plugins. We added additional type checking for arrays to all plugins. This means that for the last ten years, the compiler go a REALarray pointer and the plugin could read objects, doubles or strings from the array. Now we use dedicated array types like REALarrayDouble and all array functions have those types, too. This way the compiler can complain when we would try to read a double value from a string array. This showed a few potential bugs in our code and we fixed everything.
Also we are working to have the compiler verify for us that parameters to functions and events in C declaration match those in the Realbasic declaration. This is a lot of work, but also a good preparation for the day we move to 64 bit. Now we use RBInteger for all integer parameters instead of just int or long. And of course RBColor instead of integer types for colors.
With RBInteger and our now centralized array code we can easier change things once Real Software gives more details for 64 bit transition. Also for string access we centralize more to adapt to the new string access functions from the newer SDKs and also have the plugins honor text encodings better.