diff --git a/TODO b/TODO index 014aee84..afa4670b 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,14 @@ +- don't do vips_image_write() at the end of a pipeline, instead try: + + g_object_set( object, "output", t ); + + ie. replace the output object + + in cache.c, we must not include the hash of the output objects, I guess we + don't + @@ -9,43 +18,6 @@ can be reused -- we should cache on "written" ... we should emit written for all objects, and - there should be a a vipsarg flag to block updates after written - -- we have a "written" method/signal in image.h, move this to object.h - -- the lifetime of an object is - - new - set base params - build - set more params - write - ... and now it's frozen and read-only, except for things like "kill" - unref - - we have - - gboolean constructed; /* Construct done and checked */ - - I suppose we need to add - - gboolean written; /* Object done and frozen */ - - and a "written" virtual method I guess - - this seems like a big change :-( can we avoid it? - - bodge it for now, fix properly after we merge - -- don't do vips_image_write() at the end of a pipeline, instead try: - - g_object_set( object, "output", t ); - - ie. replace the output object - - fails due to "assign once only" rule ... we need "don't assign after - written" instead diff --git a/libvips/include/vips/object.h b/libvips/include/vips/object.h index 957da62c..eb8f81f7 100644 --- a/libvips/include/vips/object.h +++ b/libvips/include/vips/object.h @@ -87,24 +87,20 @@ VIPS_ARGUMENT_OPTIONAL_OUTPUT Eg. the x pos of the image minimum #define VIPS_ARGUMENT_REQUIRED_INPUT \ (VIPS_ARGUMENT_INPUT | \ VIPS_ARGUMENT_REQUIRED | \ - VIPS_ARGUMENT_CONSTRUCT | \ - VIPS_ARGUMENT_SET_ONCE) + VIPS_ARGUMENT_CONSTRUCT) #define VIPS_ARGUMENT_OPTIONAL_INPUT \ (VIPS_ARGUMENT_INPUT | \ - VIPS_ARGUMENT_CONSTRUCT | \ - VIPS_ARGUMENT_SET_ONCE) + VIPS_ARGUMENT_CONSTRUCT) #define VIPS_ARGUMENT_REQUIRED_OUTPUT \ (VIPS_ARGUMENT_OUTPUT | \ VIPS_ARGUMENT_REQUIRED | \ - VIPS_ARGUMENT_CONSTRUCT | \ - VIPS_ARGUMENT_SET_ONCE) + VIPS_ARGUMENT_CONSTRUCT) #define VIPS_ARGUMENT_OPTIONAL_OUTPUT \ (VIPS_ARGUMENT_OUTPUT | \ - VIPS_ARGUMENT_CONSTRUCT | \ - VIPS_ARGUMENT_SET_ONCE) + VIPS_ARGUMENT_CONSTRUCT) extern int _vips__argument_id;