Commit Graph

44 Commits

Author SHA1 Message Date
John Cupitt 5569022dbd use G_GNUC_* attribute system
Instead of our own compiler attr thing.

see https://github.com/libvips/libvips/issues/2871
2022-09-23 14:37:35 +01:00
Kleis Auke Wolthuizen 07edfe37b1
Improve symbol visibility (#2688)
* Improve symbol visibility

* Decorate required internal symbols with VIPS_API

* Remove a couple of stray header decls

* Incorporate review comment

- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.

* Don't export internal deprecated symbols

* Move deprecated symbols to vips7compat.h

* `IM_FORMAT_H` -> `VIPS_FORMAT_H`

* Move `vips_window_ref` compat stub to `vips7compat.c`

* Disable deprecation warnings internally

* `vips_image_get_kill` -> `vips_image_iskilled`

* Ensure API compatibility

* Add missing include directives

* Move `vips__init` decl to vips7compat

* Move `vips__get_sizeof_vipsobject` to vips7compat

* Fix introspection build

* Fix 2 introspection warnings

* Ensure compatibility with vipsdisp

/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00
John Cupitt eba9ec0dd7
Add a way to disable less well tested operations (#2636)
* quick proposal

warn on startup if untrusted operations might run

use vips_block_untrusted_set() to block untrusted operations, set an env
var or make a file to stop the warning

* mark fits, nifti and svg as untrusted

* remove the annoying "untrusted" warning message

better to warn on the download page

leave vips_block_untrusted_set() since it's obviously useful

* separate UNTRUSTED and BLOCKED

* typos

* add VIPS_BLOCK_UNTRUSTED env var

* move BLOCK_UNTRUSTED after plugin load

obviously, ooops

* add a test, disable *magick

although *magick is fuzzed, it's probably safer to disable it in
untrusted environments

* mark some more operations as untrusted
2022-04-11 11:32:32 +01:00
Corentin Noël 542dd06999
Refine header inclusion to allow better introspection generation (#2654)
The headers need to be self-contained for the introspection parser
to work correctly. The entry for external users remains vips/vips.h
2022-02-15 05:02:07 +00:00
John Cupitt fc9322f71b move concurrency_set into the public API
oops, it was off in threadpool and wasn't being scanned
2016-09-09 08:52:14 +01:00
John Cupitt 9c18f1b4d5 yet mmore doc fixes
classes are working again in gtk-doc, yay
2016-07-13 22:39:16 +01:00
John Cupitt eb5fee5e65 add lower-level cache access 2015-02-01 17:56:48 +00:00
John Cupitt 266e120676 new C++ interface works!
phew
2014-10-27 12:57:28 +00:00
John Cupitt 952241a426 more cplusplus hackery 2014-10-21 14:55:38 +01:00
John Cupitt 904803510d box/unbox hooks in C API
should help us pass C++ objects as args
2014-10-21 09:27:34 +01:00
John Cupitt 7608524f61 fix up gtk-doc comments
fewer warnings now, phew
2014-09-03 14:32:55 +01:00
John Cupitt d7bad8fd5b cache drops operations on invalidate
we can now enable the vips8 operation cache in nip2, woo!
2014-06-12 13:40:00 +01:00
John Cupitt a8d04a7dd1 add op invalidate stuff
still need to test and link to cache
2014-06-12 09:22:28 +01:00
John Cupitt fd495d3617 cleaned up foreign.c
need to actually interpret the filename, oops

$ vips copy wtc.jpg x.jpg[Q=100]
$ ls -l x.jpg\[Q\=100\]
-rw-rw-r-- 1 john john 15133033 Apr 25 14:50 x.jpg[Q=100]
$ vips copy wtc.jpg x.jpg[Q=1]
$ ls -l x.jpg\[Q\=1\]
-rw-rw-r-- 1 john john 15133033 Apr 25 14:50 x.jpg[Q=1]
2014-04-25 14:50:58 +01:00
John Cupitt b72818a2b8 add VIPS_OPERATION_DEPRECATED
and fix a tiny problem in vipswrap7
2014-02-03 13:23:58 +00:00
John Cupitt eb3ad6d64f add lots of instrumentation
also svg output
2013-11-26 14:57:56 +00:00
John Cupitt 693ed09edd add --vips-profile
only added a few gates so far, try a visualiser next
2013-11-18 18:31:49 +00:00
John Cupitt f8f61fedf3 operation flags were not disjoint
meaning CACHE / NOCACHE was not working correctly
2013-11-09 11:54:33 +00:00
John Cupitt 440b800e0e add a new unbuffered seq mode
things like

	vips copy huge.png x.v

now run with only a small line cache
2013-09-29 11:04:11 +01:00
Benjamin Gilbert 8cc76a6ba3 Update address for Free Software Foundation
Also update LGPLv2.1 license text from the copy currently on the GNU
website.
2013-03-07 00:40:19 -05:00
John Cupitt 26f2105e5b make everything LGPL2.1+
some files were incorrectly tagged as GPL, thanks Dmitry
2012-09-17 11:52:32 +01:00
John Cupitt 17f6489c0e Merge remote-tracking branch 'origin/7.28'
Conflicts:
	ChangeLog
	configure.in
	libvips/deprecated/im_csv2vips.c
2012-07-18 10:39:29 +01:00
John Cupitt 643dc28950 turn on seq mode automatically in cli
cli operations turn on seq mode automatically when they can

vips_operation_get_flags() added: lets you attach a set of flags to an
operation

flags for now are "nocache" (replacing the old nocache system) and "seqential"

if vips_object_set_argument_from_string() from string sees "seq" flag on the
object for which it is setting the arg, it enables sequential mode

all operations which can run sequentially have been tagged

the operation printer knows about flags and can display them
2012-07-10 10:51:40 +01:00
John Cupitt 701ff1ae8d oops fix build failure 2012-07-09 17:20:58 +01:00
John Cupitt 911a1c7e71 move vips_operation_set_valist_optional() to obj
now a method on object, vips_object_set()
2012-07-09 14:51:37 +01:00
John Cupitt 7a51b59016 some vips_shrink() tuning
tried an int coordinate path for vips_shrink(), no significant speedup
2012-06-21 13:11:35 +01:00
John Cupitt 352c88b0ce clean up cache.c 2012-06-21 12:22:30 +01:00
John Cupitt 1ee48e4cd6 add nocache flag, use for sequential file ops
stop it caching sequential file read (eg. sequential tiff read), since
you can only read sequentially once
2012-06-06 19:33:11 +01:00
John Cupitt 5fd317941d rationalise the dumpers 2012-01-16 14:54:29 +00:00
John Cupitt 1e3edd7b1e mvoe vips7 wrap back to vips7 names
improve cache trace formatting too
2012-01-06 14:56:24 +00:00
John Cupitt d5034b0485 add --vips-cache-trace
and rename cache-print as cache-dump
2012-01-06 09:36:04 +00:00
John Cupitt 6f82f1ad61 make the cache more goi-friendly 2012-01-03 16:02:52 +00:00
John Cupitt 0983b50905 Merge remote-tracking branch 'origin/gobject-introspection' into goi-merge
Conflicts:
	TODO
	libvips/arithmetic/im_recomb.c
	libvips/arithmetic/im_stats.c
	libvips/deprecated/im_measure.c
	libvips/include/vips/header.h
	libvips/include/vips/image.h
	libvips/include/vips/object.h
	libvips/iofuncs/header.c
	libvips/iofuncs/image.c
	libvips/iofuncs/object.c
2011-12-24 17:36:55 +00:00
John Cupitt 5e037e4c68 foreign uses the cache 2011-12-02 13:15:05 +00:00
John Cupitt 52c8678b23 flush on too many open files
start to drop cached operations when there are too many files open

also, CLI args to control the cache limit, and more informative
--vips-leak messages
2011-11-02 14:51:39 +00:00
John Cupitt ed73e8cf08 add cache drop and trim
the operation cache now has drop and trim and can report stats
2011-09-22 14:07:12 +01:00
John Cupitt 4b2c8587b2 vips_malloc() size tracking
vips_malloc() now tracks allocation size and can report total mem use.
It seems to trigger quite a few nip2 bugs though, I guess we are
g_free()ing the result in places (or vice versa).

======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x78a8f)[0x2aae8e011a8f]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x73)[0x2aae8e0158e3]
/home/john/vips/lib/libvips.so.15(vips_free+0xc2)[0x2aae88f7717e]
/home/john/GIT/nip2/src/nip2[0x4c9ce2]
/home/john/GIT/nip2/src/nip2(path_map_exact+0x63)[0x4ca127]
/home/john/GIT/nip2/src/nip2[0x4b5381]
2011-09-19 16:44:51 +01:00
John Cupitt edb28af67c more cache fixups 2011-09-19 10:18:48 +01:00
John Cupitt f94541ba64 more introspection hackery 2011-06-21 14:41:38 +01:00
John Cupitt 6cb6d2289b new CLI done
the new cli interface is done, try "vips add a.jpg b.jpg out.jpg", or
"vips add".
2011-05-16 17:10:08 +01:00
John Cupitt 67df101545 more command-line interface
more hacker ... this time a better way to do optional args
2011-05-11 14:51:47 +01:00
John Cupitt e3f18fb9d1 compiles phew 2011-04-05 17:02:12 +01:00
John Cupitt 75d209fd2c hackery
ops, half-done
2011-04-05 14:46:17 +01:00
John Cupitt db41b6ac4e add VipsOperation
abstract base class for all operations goes in
2011-03-29 12:12:20 +01:00