| object.h | | object.h | |
| | | | |
| skipping to change at line 331 | | skipping to change at line 331 | |
| GSList *p; \ | | GSList *p; \ | |
| \ | | \ | |
| for( p = object_class->argument_table_traverse; p; p = p->next ) { \ | | for( p = object_class->argument_table_traverse; p; p = p->next ) { \ | |
| VipsArgumentClass *ARG_CLASS = \ | | VipsArgumentClass *ARG_CLASS = \ | |
| (VipsArgumentClass *) p->data; \ | | (VipsArgumentClass *) p->data; \ | |
| VipsArgument *argument = (VipsArgument *) argument_class; \ | | VipsArgument *argument = (VipsArgument *) argument_class; \ | |
| GParamSpec *PSPEC = argument->pspec; \ | | GParamSpec *PSPEC = argument->pspec; \ | |
| VipsArgumentInstance *ARG_INSTANCE = \ | | VipsArgumentInstance *ARG_INSTANCE = \ | |
| vips__argument_get_instance( argument_class, \ | | vips__argument_get_instance( argument_class, \ | |
| VIPS_OBJECT( OBJECT ) ); \ | | VIPS_OBJECT( OBJECT ) ); \ | |
|
| \ | | | |
| /* We have many props on the arg table ... filter out the \ | | | |
| * ones for this class. \ | | | |
| */ \ | | | |
| if( g_object_class_find_property( \ | | | |
| G_OBJECT_CLASS( object_class ), \ | | | |
| g_param_spec_get_name( PSPEC ) ) == PSPEC ) { | | | |
| | | | |
|
| #define VIPS_ARGUMENT_FOR_ALL_END } } } | | #define VIPS_ARGUMENT_FOR_ALL_END } } | |
| | | | |
| /* And some macros to collect args from a va list. | | /* And some macros to collect args from a va list. | |
| */ | | */ | |
| #define VIPS_ARGUMENT_COLLECT_SET( PSPEC, ARG_CLASS, AP ) \ | | #define VIPS_ARGUMENT_COLLECT_SET( PSPEC, ARG_CLASS, AP ) \ | |
| if( (ARG_CLASS->flags & VIPS_ARGUMENT_INPUT) ) { \ | | if( (ARG_CLASS->flags & VIPS_ARGUMENT_INPUT) ) { \ | |
| GValue value = { 0, }; \ | | GValue value = { 0, }; \ | |
| gchar *error = NULL; \ | | gchar *error = NULL; \ | |
| \ | | \ | |
| /* Input args are given inline, eg. ("factor", 12.0) \ | | /* Input args are given inline, eg. ("factor", 12.0) \ | |
| * and must be collected. \ | | * and must be collected. \ | |
| | | | |
| skipping to change at line 497 | | skipping to change at line 490 | |
| | | | |
| /* Class nickname, eg. "VipsInterpolateBicubic" has "bicubic" as a | | /* Class nickname, eg. "VipsInterpolateBicubic" has "bicubic" as a | |
| * nickname. Not internationalised. | | * nickname. Not internationalised. | |
| */ | | */ | |
| const char *nickname; | | const char *nickname; | |
| | | | |
| /* Class description. Used for help messages, so internationalised. | | /* Class description. Used for help messages, so internationalised. | |
| */ | | */ | |
| const char *description; | | const char *description; | |
| | | | |
|
| /* Table of arguments for this class and any derived classes. Order | | /* Hash from pspec to VipsArgumentClass. | |
| * is important, so keep a traverse list too. We can't rely on the | | * | |
| * ordering given by g_object_class_list_properties() since it comes | | * This records the VipsArgumentClass for every pspec used in | |
| * from a hash :-( | | * VipsObject and any subclass (ie. everywhere), so it's huge. Don't | |
| | | * loop over this hash! Fine for lookups though. | |
| */ | | */ | |
| VipsArgumentTable *argument_table; | | VipsArgumentTable *argument_table; | |
|
| | | | |
| | | /* A sorted (by priority) list of the VipsArgumentClass for this cla | |
| | | ss | |
| | | * and any superclasses. This is small and specific to this class. | |
| | | * | |
| | | * Use the stored GType to work out when to restart the list for a | |
| | | * subclass. | |
| | | */ | |
| GSList *argument_table_traverse; | | GSList *argument_table_traverse; | |
|
| | | GType argument_table_traverse_gtype; | |
| }; | | }; | |
| | | | |
| gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value ); | | gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value ); | |
| void vips_object_set_property( GObject *gobject, | | void vips_object_set_property( GObject *gobject, | |
| guint property_id, const GValue *value, GParamSpec *pspec ); | | guint property_id, const GValue *value, GParamSpec *pspec ); | |
| void vips_object_get_property( GObject *gobject, | | void vips_object_get_property( GObject *gobject, | |
| guint property_id, GValue *value, GParamSpec *pspec ); | | guint property_id, GValue *value, GParamSpec *pspec ); | |
| | | | |
| void vips_object_preclose( VipsObject *object ); | | void vips_object_preclose( VipsObject *object ); | |
| int vips_object_build( VipsObject *object ); | | int vips_object_build( VipsObject *object ); | |
| | | | |
End of changes. 5 change blocks. |
| 12 lines changed or deleted | | 15 lines changed or added | |
|