[Warning: entity type newbieism are likely to follow...]

I've been making a lot of use of computed_fields in my site. I use them to hold, well, computed values relevant to the node but that are not directly manipulated by the user. The question then becomes how I should make changes to those values when things change.

I defined a function that makes an entity wrapper for the field, sets the value into the field, and then does a wrapper->save. This almost works, but computed_field_entity_property_callback() disables the setter callback for computed_fields, and so the code breaks by throwing a "doesn't support writing" exception. If I comment out the lines in _property_callback that do the disabling, everything works nicely. So, some questions:

* Why are setters disabled for computed_fields? Seems like a not unreasonable thing for them to do. Am I opening myself up to anything unpleasant by hacking/forking the module and re-enabling the setter?

* As noted, I'm something of an entity newbie. But maybe the way I'm supposed to do this is to get a wrapper on the node holding the field, and do something like $wrapper->$my_node->$my_field = $value? I can see the logic of this, but some of my content types are pretty large, and I'd like to avoid updating the whole thing when all I want to do is change a single field value.

* Is there a better way to do what I want to do?

Thanks!