2011/5/13 Eric Blake <ebl...@redhat.com>: > On 05/01/2011 01:57 PM, Matthias Bolte wrote: >> Don't make all object and enum types (de)serializable by default. >> Detect this from the input file instead. >> --- >> src/esx/esx_vi_generator.py | 167 >> +++++++++++++++++++++++++++++++----------- >> 1 files changed, 123 insertions(+), 44 deletions(-) > > Too bad generated files don't show up in the diffstat :) > >> +# there are two directions to spread features: >> +# 1) up and down the inheritance chain >> +# 2) from object types to their member property types >> +# spreading needs to be done alternating on both directions because they can >> +# affect each other >> +features_have_changed = True >> + >> +while features_have_changed: >> + features_have_changed = False >> + >> + for obj in objects_by_name.values(): >> + propagate_feature(obj, Object.FEATURE__DEEP_COPY) >> + propagate_feature(obj, Object.FEATURE__SERIALIZE) >> + propagate_feature(obj, Object.FEATURE__DESERIALIZE) >> + >> + for obj in objects_by_name.values(): >> + inherit_features(obj) > > If I'm reading this correctly, this looks like the core of the algorithm > - compute a closure of all features, and then only generate for where > the features were needed, rather than the old code that generated > features for everything whether it was needed or not.
Yes, that's correct :) > My python is not very strong, but what you did was fairly readable and > seems to make sense. At any rate, it compiles. > > ACK. > Thanks, pushed. Matthias -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list