lib: Coerce flags enums to GIR bitfields
The GI scanner decides if an `enum` is really a `bitfield` if it finds any values that have left shifts. With an `enumeration`, the introspecting language may error or convert to a different type if the user tries to combine values. Change all Flags `enum`s to use left-shifted values so that they're represented as `bitfield`s in the GIR. The primary bug here is that you can't combine `REFS_ONLY` and `NO_PRUNE` when calling `OSTree.Repo.prune()` from an introspected language. This is an IABI break since the typelib will change from `enumeration` to `bitfield`. `OstreeRepoImportFlags` is internal but the change is included here to prepare for a subsequent name that would require bit shifting to operate correctly as a flag.
This commit is contained in:
parent
240f6d3ac6
commit
dc69f56de6
|
|
@ -134,7 +134,7 @@ GVariant * ostree_gpg_verify_result_get_all (OstreeGpgVerifyResult *result,
|
||||||
* for future variations.
|
* for future variations.
|
||||||
**/
|
**/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT = 0
|
OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT = (0 << 0),
|
||||||
} OstreeGpgSignatureFormatFlags;
|
} OstreeGpgSignatureFormatFlags;
|
||||||
|
|
||||||
_OSTREE_PUBLIC
|
_OSTREE_PUBLIC
|
||||||
|
|
|
||||||
|
|
@ -374,9 +374,9 @@ _ostree_repo_verify_commit_internal (OstreeRepo *self,
|
||||||
#endif /* OSTREE_DISABLE_GPGME */
|
#endif /* OSTREE_DISABLE_GPGME */
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
_OSTREE_REPO_IMPORT_FLAGS_NONE,
|
_OSTREE_REPO_IMPORT_FLAGS_NONE = 0,
|
||||||
_OSTREE_REPO_IMPORT_FLAGS_TRUSTED,
|
_OSTREE_REPO_IMPORT_FLAGS_TRUSTED = (1 << 0),
|
||||||
_OSTREE_REPO_IMPORT_FLAGS_VERIFY_BAREUSERONLY,
|
_OSTREE_REPO_IMPORT_FLAGS_VERIFY_BAREUSERONLY = (1 << 1),
|
||||||
} OstreeRepoImportFlags;
|
} OstreeRepoImportFlags;
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
|
|
||||||
|
|
@ -1174,9 +1174,9 @@ void ostree_repo_commit_traverse_iter_cleanup (void *p);
|
||||||
* @OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY: Do not traverse individual commit objects, only follow refs
|
* @OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY: Do not traverse individual commit objects, only follow refs
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OSTREE_REPO_PRUNE_FLAGS_NONE,
|
OSTREE_REPO_PRUNE_FLAGS_NONE = 0,
|
||||||
OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE,
|
OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE = (1 << 0),
|
||||||
OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY
|
OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY = (1 << 1),
|
||||||
} OstreeRepoPruneFlags;
|
} OstreeRepoPruneFlags;
|
||||||
|
|
||||||
_OSTREE_PUBLIC
|
_OSTREE_PUBLIC
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue