Joe Shaw [Thu, 31 Mar 2011 14:58:05 +0000 (10:58 -0400)]
glib-2.0.c: add annotations for g_base64_encode and g_base64_decode
Martin Pitt [Wed, 30 Mar 2011 17:56:48 +0000 (19:56 +0200)]
Regenerate gio-2.0.c from glib/master
Colin Walters [Wed, 30 Mar 2011 17:00:08 +0000 (13:00 -0400)]
gio-2.0.c: Update from GLib git as of
92977a221760eb
Serkan Kaba [Sun, 20 Mar 2011 01:00:22 +0000 (03:00 +0200)]
girparser: use c:identifier-prefixes instead of c:prefix
This bug was introduced with
http://git.gnome.org/browse/gobject-introspection/commit/?id=
36aa515f1036978ced8d4ffb808260844f7229e0
due to rename of c:prefix to c:identifier-prefixes.
https://bugzilla.gnome.org/show_bug.cgi?id=640264
Owen W. Taylor [Sat, 26 Mar 2011 00:43:34 +0000 (20:43 -0400)]
configure: Post-release version bump
Owen W. Taylor [Fri, 25 Mar 2011 23:36:36 +0000 (19:36 -0400)]
Fix generation of cairo typelib
By separating out cairo-1.0.gir from gir_DATA, we lost the generation
of the cairo typelib. So instead add cairo-1.0.gir to a new
SUBSTITUTED_GIRSOURCES and include that in gir_DATA.
Fix the rule for generating cairo-1.0.gir for srcdir != builddir.
https://bugzilla.gnome.org/show_bug.cgi?id=645692
Colin Walters [Fri, 25 Mar 2011 22:11:27 +0000 (18:11 -0400)]
configure: Post-release version bump
Colin Walters [Fri, 25 Mar 2011 22:09:36 +0000 (18:09 -0400)]
Makefile-gir: Fix EXTRA_DIST
Colin Walters [Fri, 25 Mar 2011 22:07:06 +0000 (18:07 -0400)]
Don't dist gir/cairo-1.0.gir, it's generated
We should not be disting it, because it contains values derived
from configure. Extract it out of STATIC_GIRSOURCES, and also
move it to a Makefile rule rather than AC_SUBST as it should be
so it gets cleaned properly.
John (J5) Palmieri [Wed, 16 Mar 2011 21:31:47 +0000 (17:31 -0400)]
[tests] add a gclosure_return method to test passing GClosures between methods
John (J5) Palmieri [Mon, 14 Mar 2011 18:18:22 +0000 (14:18 -0400)]
support setting gobjects and ginterfaces in struct fields
https://bugzilla.gnome.org/show_bug.cgi?id=644749
Colin Walters [Thu, 10 Mar 2011 19:47:30 +0000 (14:47 -0500)]
Makefile: Rework release tools
Separate "preparing" a release locally from actually uploading it,
and automate bumping the version in configure.ac.
Colin Walters [Thu, 10 Mar 2011 19:42:56 +0000 (14:42 -0500)]
configure: Post-release version bump
Colin Walters [Wed, 9 Mar 2011 18:01:54 +0000 (13:01 -0500)]
cairo-1.0.gir: Use fully qualified shared library
The .so link is for development, we need to reference the full
soname; otherwise things will break without "cairo-devel"
installed.
Colin Walters [Wed, 23 Feb 2011 15:38:53 +0000 (10:38 -0500)]
configure: Post release version bump
Laszlo Pandy [Tue, 22 Feb 2011 15:02:12 +0000 (16:02 +0100)]
Add "c:identifier" attribute to GIrNodeValue (for flags and enum values).
Flags and enums with a GType have a value_nick and value_name
strings available in the class struct. But for flags and enums
without GType, we need to get this information from introspection.
g_base_info_get_name() gives the string for value_nick. In the GIR,
the attribute "c:identifier" is the string neede for value_name.
This patch adds the "c:identifier" from GIR to the typelib for all
flags and enum values. It can be retireved using
g_base_info_get_attribute(info, "c:identifier").
https://bugzilla.gnome.org/show_bug.cgi?id=642757
Laszlo Pandy [Wed, 23 Feb 2011 12:37:09 +0000 (13:37 +0100)]
Add GIMarshalllingTests function with in parameter as well as GError.
This allows bindings to test the ability to clean up (in)
parameters after a GError is set by the wrapped function.
Laszlo Pandy [Wed, 23 Feb 2011 10:34:13 +0000 (11:34 +0100)]
Add mask flags to GIMarshallingTests to test for flags with the same value.
Glib uses flag aliases, multiple flag names with the same int
value. For example G_IO_FLAG_MASK and G_IO_FLAG_GET_MASK. We need
these flag values to test that gi bindings don't assume that all
flags have the same value.
Tomeu Vizoso [Fri, 4 Feb 2011 12:16:20 +0000 (13:16 +0100)]
Add warnings for the (constructor) annotation
https://bugzilla.gnome.org/show_bug.cgi?id=641347
Tomeu Vizoso [Tue, 22 Feb 2011 16:11:45 +0000 (17:11 +0100)]
Update exact wording of warning in test
Tomeu Vizoso [Fri, 4 Feb 2011 10:33:26 +0000 (11:33 +0100)]
Add warnings for the (method) annotation
https://bugzilla.gnome.org/show_bug.cgi?id=641347
Laszlo Pandy [Tue, 22 Feb 2011 11:15:49 +0000 (12:15 +0100)]
Add non GType flags to GIMarshallingTests.
Giovanni Campagna [Fri, 18 Feb 2011 17:14:25 +0000 (18:14 +0100)]
GIrNode: fix lookup of cached type nodes
Different types of array have different type nodes, so they should
produce different keys in the cache of already seen type nodes, to
avoid turning a GByteArray into a reference to a GPtrArray.
https://bugzilla.gnome.org/show_bug.cgi?id=642300
Laszlo Pandy [Thu, 17 Feb 2011 23:11:30 +0000 (00:11 +0100)]
[tests] Add GIMarshallingTests function for multiple in and multiple out args.
Laszlo Pandy [Thu, 17 Feb 2011 17:01:31 +0000 (18:01 +0100)]
Fix argument name of MISSING_ATTRIBUTE macro ('ctx' => 'context').
The argument was called 'ctx' but the macro was using 'context'.
This wasn't causing the build to fail because the variable
'context' was already defined in all the scopes where this macro
was used.
Simon van der Linden [Fri, 11 Feb 2011 20:43:51 +0000 (21:43 +0100)]
Include cairo.h instead of cairo/cairo.h
The cairo/ directory is searched for header files anyway.
Jonathan Matthew [Sun, 6 Feb 2011 04:48:58 +0000 (14:48 +1000)]
Account for arg direction in g_callable_info_get_ffi_arg_types
https://bugzilla.gnome.org/show_bug.cgi?id=641647
Colin Walters [Mon, 7 Feb 2011 19:53:46 +0000 (14:53 -0500)]
Post release version bump
Colin Walters [Thu, 3 Feb 2011 19:35:32 +0000 (14:35 -0500)]
scanner: Don't fail on mkdir if cachedir already exists
Hit this race in practice with two g-ir-scanner invocations
in Fedora's koji.
Tomeu Vizoso [Fri, 21 Jan 2011 17:07:45 +0000 (18:07 +0100)]
Add (method) overrides
So methods such as gtk_drag_dest_set() can be put inside Gtk.Widget
https://bugzilla.gnome.org/show_bug.cgi?id=639945
Johan Dahlin [Tue, 1 Feb 2011 18:20:44 +0000 (16:20 -0200)]
Update gobject/gio syntax
Now fetches all sections correctly, with updated glib code base
and an updated annotation tool.
Johan Dahlin [Tue, 1 Feb 2011 18:14:00 +0000 (16:14 -0200)]
Preserve gtk-doc section names
Preserve the section names and write them out on the class/record/
interface.
Johan Dahlin [Tue, 1 Feb 2011 18:13:52 +0000 (16:13 -0200)]
Sort gio/gobject annotations
Johan Dahlin [Tue, 1 Feb 2011 18:13:08 +0000 (16:13 -0200)]
Sort output
Johan Dahlin [Tue, 1 Feb 2011 15:20:19 +0000 (13:20 -0200)]
Add missing spaces
Tomeu Vizoso [Fri, 21 Jan 2011 16:32:51 +0000 (17:32 +0100)]
Add (constructor) annotation
https://bugzilla.gnome.org/show_bug.cgi?id=561264
Tomeu Vizoso [Fri, 21 Jan 2011 14:32:52 +0000 (15:32 +0100)]
[scanner] Don't crash if we don't have a ctype in array element types
Tomeu Vizoso [Wed, 19 Jan 2011 15:48:47 +0000 (16:48 +0100)]
Pass shared-library as-is to g_module_open
Because it already has the lib prefix and the .so postfix
https://bugzilla.gnome.org/show_bug.cgi?id=639961
Tomeu Vizoso [Thu, 20 Jan 2011 15:34:45 +0000 (16:34 +0100)]
Preserve the c:type of array elements
So the element type has the correct is_pointer flag
https://bugzilla.gnome.org/show_bug.cgi?id=638929
Johan Dahlin [Thu, 20 Jan 2011 15:52:48 +0000 (13:52 -0200)]
Disable missing class structure warning, add a bug reference
Johan Dahlin [Wed, 19 Jan 2011 13:04:24 +0000 (11:04 -0200)]
ast: cleanup clone() methods
Tomeu Vizoso [Wed, 19 Jan 2011 11:43:13 +0000 (12:43 +0100)]
Depend on cairo-gobject if available
And set library-name and package accordingly in the cairo .gir
https://bugzilla.gnome.org/show_bug.cgi?id=639831
Tomeu Vizoso [Thu, 20 Jan 2011 14:54:41 +0000 (15:54 +0100)]
Add GIMarshallingTests.Interface2
so we can test conflicts when two bases have a vfunc with the
same name.
Pavel Holejsovsky [Thu, 20 Jan 2011 14:07:51 +0000 (15:07 +0100)]
Regenerate gio-2.0.c from glib/master
Tomeu Vizoso [Wed, 19 Jan 2011 18:09:25 +0000 (19:09 +0100)]
Initialize GIMarshallingTestsBoxedStruct so we can test its values
Laszlo Pandy [Wed, 19 Jan 2011 16:31:16 +0000 (17:31 +0100)]
Add GIMarshallingTests function which sets a GError, to test exception handling in bindings.
https://bugzilla.gnome.org/show_bug.cgi?id=639834
Ignacio Casal Quinteiro [Wed, 19 Jan 2011 11:07:49 +0000 (12:07 +0100)]
[tests] add tests for guint8 arrays
* guint8 can be interpreted as array characters that can be memcpyied
during marshalling so add a test to check if we are correctly handling
this codepath
Laszlo Pandy [Mon, 17 Jan 2011 14:09:45 +0000 (15:09 +0100)]
Add a second enum to GIMarshallingTests to support pygi tests for non-gtype enums.
There was a bug in pygi in which non-gtype enums shared values between themselves.
That is, if there was an attribute Enum.THE_VALUE, it would be available on as OtherEnum.THE_VALUE as well.
To make a test case for this bug, we need a second non-gtype enum in GIMarshallingTests to compare with.
Mikkel Kamstrup Erlandsen [Fri, 7 Jan 2011 15:05:07 +0000 (16:05 +0100)]
test: gi_marshalling_tests_array_gvariant_in
A new test to expose a bug in pygobject
https://bugzilla.gnome.org/show_bug.cgi?id=638915
Pavel Holejsovsky [Sun, 9 Jan 2011 15:12:46 +0000 (16:12 +0100)]
Make caller-allocates detection work for struct aliases
Scanner tries to detect caller-allocates attribute automatically if
not explicitly specified by checking that parameter is not double-referenced
and is struct or union. This patch adds resolving of aliases when
checking whether parameter is struct or union.
Also removes old incorrect method transformer.follow_aliases, which
was never used in current code.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639081
Pavel Holejsovsky [Tue, 14 Dec 2010 15:28:01 +0000 (16:28 +0100)]
Add support for g[u]intptr in scanner and girwriter.
https://bugzilla.gnome.org/show_bug.cgi?id=634838
Colin Walters [Wed, 12 Jan 2011 20:12:33 +0000 (15:12 -0500)]
Post-release version bump
Tomeu Vizoso [Mon, 13 Dec 2010 12:53:55 +0000 (13:53 +0100)]
Add g_vfunc_info_invoke and g_vfunc_info_get_address
for calling the native implementation of a virtual function. Refactors
the code common with g_function_info_invoke in _g_callable_info_invoke.
https://bugzilla.gnome.org/show_bug.cgi?id=637145
Colin Walters [Tue, 11 Jan 2011 15:59:44 +0000 (10:59 -0500)]
tests: Update expected girs for --c-include
Colin Walters [Tue, 11 Jan 2011 15:46:12 +0000 (10:46 -0500)]
Revert "scanner: Stop predeclaring the functions that are to be scanned"
This reverts commit
88553b4cd6776b7eff9a3b1d63eb8e49be0bd8f2.
Colin Walters [Tue, 11 Jan 2011 15:46:01 +0000 (10:46 -0500)]
Revert "scanner: Include all headers when building the dumper binary"
This reverts commit
bedd7dd61508684b78bd1e95fed8025d48661b48.
Benjamin Otte [Tue, 11 Jan 2011 14:25:47 +0000 (15:25 +0100)]
tests: Fix build by including correct headers with --c-include
Benjamin Otte [Tue, 11 Jan 2011 13:26:29 +0000 (14:26 +0100)]
scanner: Rename g_irepository_dump when included from the dumper
This avoids a naming conflict when compiling GiRepository.gir, where
g_irepository_dump() was defined in an included header.
Benjamin Otte [Tue, 11 Jan 2011 13:02:58 +0000 (14:02 +0100)]
gir: Fix build of Gio-2.0.gir
- include gio-unix headers properly into Gio gir
- don't include gsettingsbackend.h
Benjamin Otte [Mon, 10 Jan 2011 17:53:55 +0000 (18:53 +0100)]
scanner: Stop predeclaring the functions that are to be scanned
Instead, rely on the c_includes. See the previous commit for details.
Benjamin Otte [Mon, 10 Jan 2011 17:48:23 +0000 (18:48 +0100)]
scanner: Include all headers when building the dumper binary
This avoids warnings about undefined functions when using init sections
and it removes the requirement to predeclare the get_type functions that
should be called. For an example for this problem with GStreamer, see
https://bugzilla.gnome.org/show_bug.cgi?id=639039
We can now also use gcc's error checking to ensure that users
- specify the correct C includes in the gir file (because otherwise we
get errors when compiling the dumper).
- the types do actually exist (because again, the compiler will
complain).
Benjamin Otte [Mon, 10 Jan 2011 17:15:03 +0000 (18:15 +0100)]
scanner: Use packages from --pkg
Use pkgconfig files from --pkg when compiling the dump binary.
This helps avoiding linker errors when init sections are provided that
use code from those packages.
https://bugzilla.gnome.org/show_bug.cgi?id=639039
Tomeu Vizoso [Fri, 7 Jan 2011 16:15:52 +0000 (17:15 +0100)]
scanner: Make sure that vfuncs made to the GIR
* don't skip those associated to a signal
* don't warn if it doesn't have an invoker
https://bugzilla.gnome.org/show_bug.cgi?id=637215
Colin Walters [Wed, 5 Jan 2011 21:32:44 +0000 (16:32 -0500)]
scanner: Fix handling of property transfer
* gdumpparser.py was incorrectly passing the ctype for transfer
* Property constructor wasn't actually doing anything with passed transfer
* Parse transfer-ownership in girparser
Colin Walters [Wed, 5 Jan 2011 20:56:01 +0000 (15:56 -0500)]
scanner: Properly parse recursive list type nodes
Previously we were just looking for <type> inside a GLib.List,
but it may be <array>.
See bug 637262 for code that triggered this.
Pavel Holejsovsky [Wed, 5 Jan 2011 19:23:49 +0000 (20:23 +0100)]
Regenerate gio-2.0.c
Pavel Holejsovsky [Wed, 29 Dec 2010 15:23:12 +0000 (16:23 +0100)]
Regenerate gio-2.0.c and gobject-2.0.c from current glib HEAD
Kristian Rietveld [Tue, 28 Dec 2010 09:41:16 +0000 (10:41 +0100)]
Avoid using namespace as identifier in public header files
Owen W. Taylor [Wed, 22 Dec 2010 20:53:25 +0000 (15:53 -0500)]
Post-release version bump
Owen W. Taylor [Wed, 22 Dec 2010 20:42:41 +0000 (15:42 -0500)]
Fix srcdir != builddir problems for test cases
Owen W. Taylor [Wed, 22 Dec 2010 20:40:53 +0000 (15:40 -0500)]
Fix error handling when writing out typelib
Return a non-zero result when opening the output file fails and
don't use g_error() for other failures when writing out the file,
since such errors should not produce a core dump.
Pavel Holejsovsky [Tue, 21 Dec 2010 17:22:52 +0000 (18:22 +0100)]
Regenerate gir/gio-2.0.c
Pavel Holejsovsky [Tue, 21 Dec 2010 15:21:02 +0000 (16:21 +0100)]
scanner: avoid crash when annotation explicitly changes 'self' argument
Pavel Holejsovsky [Sun, 19 Dec 2010 21:24:10 +0000 (22:24 +0100)]
Regenerate gio-2.0.c and gobject-2.0.c from current glib.
Pavel Holejsovsky [Sun, 19 Dec 2010 09:46:22 +0000 (10:46 +0100)]
Fix misc/extract-gobject-sources.sh.
g-ir-annotation-tool is in builddir root now. Also avoid feeding
problematic and not-GI-useful headers to it.
Dan Winship [Fri, 17 Dec 2010 20:23:46 +0000 (15:23 -0500)]
glib-2.0.c: annotate g_get_environ() and g_listenv()
Colin Walters [Fri, 17 Dec 2010 17:58:59 +0000 (12:58 -0500)]
make check pass for recent commits
* Fix use of tabs
* Update for correct signal parameters
Pavel Holejsovsky [Fri, 17 Dec 2010 15:34:39 +0000 (16:34 +0100)]
Regenerate gio-2.0.c from current glib/gio HEAD.
Pavel Holejsovsky [Thu, 16 Dec 2010 20:07:46 +0000 (21:07 +0100)]
Regenerate gio-2.0.c
Pavel Holejsovsky [Thu, 16 Dec 2010 20:00:11 +0000 (21:00 +0100)]
Update path to g-ir-annotation-tool in extract-gio-sources.sh.
Jonathan Matthew [Wed, 27 Oct 2010 09:11:13 +0000 (19:11 +1000)]
scanner: support typedefs for container types
Inside an alias definition, we only need the name of the alias target
type. Add a method to GIRWriter to write out a type reference rather
than full type definition and use it when writing out an alias.
Determine introspectableness of aliases in IntrospectablePass so functions
using aliases can be marked not-introspectable if the alias itself is not.
https://bugzilla.gnome.org/show_bug.cgi?id=629682
Pavel Holejsovsky [Wed, 15 Dec 2010 10:35:01 +0000 (11:35 +0100)]
Regenerate gio-2.0.c from current glib/gio.
Pavel Holejsovsky [Tue, 14 Dec 2010 15:14:55 +0000 (16:14 +0100)]
giscanner: don't ignore signal parameter names from annotations.
If present in annotation, use parameter names from annotation instead
of (object, p0, p1, ...) names generated by dumpparser.
Assign names for all parameters before trying to resolve annotation
types, so that annotations containing forward references to other
arguments, e.g.
* GApplication::open:
* @application: the application
* @files: (array length=n_files) (element-type GFile): an array of #GFiles
* @n_files: the length of @files
Colin Walters [Mon, 6 Dec 2010 20:10:58 +0000 (15:10 -0500)]
cairo: Fill out GIR with cairo-gobject boxed information
We need these references to correctly handle when an API (say GTK3)
uses the cairo-gobject boxed types in a signal (like "draw").
API consumers need to be using g-i for signal handling to make
this all work.
https://bugzilla.gnome.org/show_bug.cgi?id=636646
Colin Walters [Mon, 6 Dec 2010 15:26:02 +0000 (10:26 -0500)]
cairo-1.0.gir: Un-foreign RectangleInt
cairo.RectangleInt is a very tricky case; it's (as of now)
boxed in cairo-gobject. We're trying to fix a few bugs here. First,
we want to make (out caller-allocates) work. In order to do that,
we need to explicitly specify the fields so that the typelib
has the right size.
Also, add the boxed type now so that we pick up the right thing
from GObject signal parameters.
See history in bug 623222 and bug 636393.
https://bugzilla.gnome.org/show_bug.cgi?id=636617
Emmanuele Bassi [Thu, 9 Dec 2010 12:31:40 +0000 (12:31 +0000)]
gir: Add Time to xlibs-2.0
Pavel Holejsovsky [Tue, 30 Nov 2010 08:41:12 +0000 (09:41 +0100)]
Fix thinko in regress suite.
regress_test_fundamental_sub_object_finalize should call parent's
regress_test_fundamental_object_finalize instead of
regress_test_fundamental_object_unref, otherwise recursion and
double-free might happen.
https://bugzilla.gnome.org/show_bug.cgi?id=636620
Andreas Rottmann [Mon, 6 Dec 2010 23:18:15 +0000 (00:18 +0100)]
Support glib-mkenums comment /*< flags >*/
- Modify the lexer to consider all "trigraph" comments specially, and
parse them for "flags" as well as "private" and "public" (which were
previously hardcoded). This change allows for future support of
multiple annotations inside a single trigraph comment.
- Change the parser to consider the additional field "flags" set by
the lexer when constructing enums.
- Add a test case for the "flags" trigraph comment to the scanner
annotation tests.
See <https://bugzilla.gnome.org/show_bug.cgi?id=631530>.
Andreas Rottmann [Mon, 6 Dec 2010 23:07:08 +0000 (00:07 +0100)]
Don't emit shadowed methods into the typelib
Ignore shadowed methods when parsing the GIR.
Colin Walters [Mon, 6 Dec 2010 16:14:53 +0000 (11:14 -0500)]
g_object_info_find_method_using_interfaces: Fix crash if not found
If a method wasn't found, we'd try to unref NULL.
Colin Walters [Fri, 22 Oct 2010 18:22:19 +0000 (14:22 -0400)]
g_object_info_find_method_using_interfaces: New function
Pull this down into introspection from gjs; this will allow us
to cache this better in the future (for example, by caching the
infos for interfaces in the info for the object).
https://bugzilla.gnome.org/show_bug.cgi?id=632924
Tomeu Vizoso [Mon, 6 Dec 2010 15:10:02 +0000 (16:10 +0100)]
Make sure we don't mark GInitiallyUnownedClass as disguised
Colin Walters [Mon, 25 Oct 2010 17:33:01 +0000 (13:33 -0400)]
Add directory index section
Use the internal perfect hashing API to add an index to the directory.
To support this, add the notion of additional "sections" to the
typelib. A section index is inserted between the header and the
directory.
https://bugzilla.gnome.org/show_bug.cgi?id=554943
Colin Walters [Thu, 11 Nov 2010 21:09:51 +0000 (16:09 -0500)]
.gitignore: Update
Colin Walters [Mon, 25 Oct 2010 11:56:05 +0000 (07:56 -0400)]
Add internal hashing API designed for the typelib
In multiple places in the typelib, but most importantly the directory,
we need some fast indexing. Perfect hashing, as implemented by CMPH
(previous commit), is an exact fit for the problem domain.
Add an API built on top of CMPH which maps strings->guint16 (we just
need a guint16 for the typelib index).
https://bugzilla.gnome.org/show_bug.cgi?id=554943
Colin Walters [Thu, 11 Nov 2010 20:34:11 +0000 (15:34 -0500)]
cmph-bdz-test: New test
Add a basic test of CMPH (without any layers on top).
Colin Walters [Thu, 2 Dec 2010 16:34:46 +0000 (11:34 -0500)]
cmph: Squash a lot of gcc -Wall compiler warnings
* Functions taking no parameters need to explicitly say (void).
* Mark some functions as static that are
* Comment out an unused function in bdz.c
* Change loop indicies "i" to be unsigned if our limit is unsigned
Colin Walters [Thu, 11 Nov 2010 20:14:07 +0000 (15:14 -0500)]
cmph: Add automake rules
Colin Walters [Thu, 11 Nov 2010 20:03:20 +0000 (15:03 -0500)]
cmph: Modify types to use GLib types
The 64 bit #ifdefs is just hackish and broken; e.g. it will fail
on ppc64/linux and WIN64.
Use the GLib typedefs, which I know are more correct.
Colin Walters [Thu, 11 Nov 2010 20:01:07 +0000 (15:01 -0500)]
Import CMPH 1.0
This will be used for typelib indexing. See README-CMPH-IMPORT.txt
for more information.