diff options
author | Corentin Noël <corentin.noel@collabora.com> | 2021-12-07 12:22:53 +0100 |
---|---|---|
committer | Corentin Noël <tintou@noel.tf> | 2022-04-09 00:43:08 +0200 |
commit | ab94a01bbbcb90b360e1892e1e0153d1724a8028 (patch) | |
tree | 261598d37278f3f3ea9adfdb95fa5188496f7421 /gcr | |
parent | 520571eb32d0dbe40d91a6cc90b5861f069f9c7a (diff) | |
download | gcr-ab94a01bbbcb90b360e1892e1e0153d1724a8028.tar.gz |
gcr-simple-certificate: Use a GBytes internally
Makes the code simpler.
Diffstat (limited to 'gcr')
-rw-r--r-- | gcr/gcr-simple-certificate.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/gcr/gcr-simple-certificate.c b/gcr/gcr-simple-certificate.c index 0331a3b..59bf633 100644 --- a/gcr/gcr-simple-certificate.c +++ b/gcr/gcr-simple-certificate.c @@ -37,9 +37,7 @@ */ struct _GcrSimpleCertificatePrivate { - const guchar *data; - gsize n_data; - guchar *owned; + GBytes *bytes; }; /* Forward declarations */ @@ -66,10 +64,7 @@ gcr_simple_certificate_real_finalize (GObject *obj) { GcrSimpleCertificate *self = GCR_SIMPLE_CERTIFICATE (obj); - g_free (self->pv->owned); - self->pv->owned = NULL; - self->pv->data = NULL; - self->pv->n_data = 0; + g_clear_pointer (&self->pv->bytes, g_bytes_unref); G_OBJECT_CLASS (gcr_simple_certificate_parent_class)->finalize (obj); } @@ -94,11 +89,10 @@ gcr_simple_certificate_get_der_data (GcrCertificate *cert, g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL); g_return_val_if_fail (n_data, NULL); - g_return_val_if_fail (self->pv->data, NULL); + g_return_val_if_fail (self->pv->bytes, NULL); /* This is called when we're not a base class */ - *n_data = self->pv->n_data; - return self->pv->data; + return g_bytes_get_data (self->pv->bytes, n_data); } static void @@ -131,9 +125,7 @@ gcr_simple_certificate_new (const guchar *data, g_return_val_if_fail (n_data, NULL); cert = g_object_new (GCR_TYPE_SIMPLE_CERTIFICATE, NULL); - - cert->pv->data = cert->pv->owned = g_memdup (data, n_data); - cert->pv->n_data = n_data; + cert->pv->bytes = g_bytes_new (data, n_data); return GCR_CERTIFICATE (cert); } @@ -158,9 +150,6 @@ gcr_simple_certificate_new_static (const guchar *data, g_return_val_if_fail (n_data, NULL); cert = g_object_new (GCR_TYPE_SIMPLE_CERTIFICATE, NULL); - - cert->pv->owned = NULL; - cert->pv->data = data; - cert->pv->n_data = n_data; + cert->pv->bytes = g_bytes_new_static (data, n_data); return GCR_CERTIFICATE (cert); } |