When a request for certain properties (e.g. 'r', 'g', 'b', 'a') fails, it is not possible to make a new request that includes previously requested properties (e.g. 'r', 'g', 'b').
With this change, all properties are validated before committing the request so that a failed request has no effect.
Also fixes the exception parameter was a pointer instead of string.
When a request for certain properties (e.g. 'r', 'g', 'b', 'a') fails, it is not possible to make a new request that includes previously requested properties (e.g. 'r', 'g', 'b'). With this change, all properties are validated before committing the request so that a failed request has no effect.
Also fixes the exception parameter was a pointer instead of string.