[D3D9 1/8] Remove const qualifier on state_test data
ivg231 at gmail.com
Thu Oct 5 05:45:03 CDT 2006
Alexandre Julliard wrote:
> Ivan Gyurdiev <ivg231 at gmail.com> writes:
>> It's already marked const in the parameters of the set and get
>> functions, which means it can't be modified there (arg 3):
>> + void (*set_handler) (IDirect3DDevice9* device, const struct
>> state_test* test, const void* data_in);
>> + void (*get_handler) (IDirect3DDevice9* device, const struct
>> state_test* test, const void* data_out);
> Which is precisely why the data pointers have to be const too. Since
> the tests don't modify anything,
Well... the way I see it, the test is composed of get/set, while the
init/teardown is just setup for the test, which may or may not include
allocating the data pointers on the heap (and correspondingly freeing
that data). Therefore the data is const in one place, and non-const in
the other where I don't know what the test is going to do (by virtue of
polymorphism). Yes, I suppose you could look at that as two completely
separate usages of the same data, requiring separate pointers, but that
seems rather odd to me.
Actually the other direction is possible too, keeping the data const,
and just casting off the const in the teardown function, but that seemed
> it must be possible to give them
> constant data. With your scheme you need to cast const off, which is
> ugly and will cause compiler warnings.
I don't know about ugly, but the casts actually prevent warnings,
instead of causing them...
Is there a compiler flag that you use to cause warnings? If so, please
let me know what it is, and I'll fix the code.
More information about the wine-devel