@@ -28,7 +28,7 @@
#define TYPE_QAUTHZ_LIST "authz-list"
OBJECT_DECLARE_SIMPLE_TYPE(QAuthZList, qauthz_list,
- QAUTHZ_LIST, QAuthZClass)
+ QAUTHZ_LIST)
@@ -28,7 +28,7 @@
#define TYPE_QAUTHZ_LIST_FILE "authz-list-file"
OBJECT_DECLARE_SIMPLE_TYPE(QAuthZListFile, qauthz_list_file,
- QAUTHZ_LIST_FILE, QAuthZClass)
+ QAUTHZ_LIST_FILE)
@@ -28,7 +28,7 @@
#define TYPE_QAUTHZ_PAM "authz-pam"
OBJECT_DECLARE_SIMPLE_TYPE(QAuthZPAM, qauthz_pam,
- QAUTHZ_PAM, QAuthZClass)
+ QAUTHZ_PAM)
@@ -27,7 +27,7 @@
#define TYPE_QAUTHZ_SIMPLE "authz-simple"
OBJECT_DECLARE_SIMPLE_TYPE(QAuthZSimple, qauthz_simple,
- QAUTHZ_SIMPLE, QAuthZClass)
+ QAUTHZ_SIMPLE)
@@ -27,7 +27,7 @@
#define TYPE_QCRYPTO_SECRET_KEYRING "secret_keyring"
OBJECT_DECLARE_SIMPLE_TYPE(QCryptoSecretKeyring, qcrypto_secret_keyring,
- QCRYPTO_SECRET_KEYRING, QCryptoSecretCommonClass)
+ QCRYPTO_SECRET_KEYRING)
struct QCryptoSecretKeyring {
@@ -27,7 +27,7 @@
#define TYPE_QIO_DNS_RESOLVER "qio-dns-resolver"
OBJECT_DECLARE_SIMPLE_TYPE(QIODNSResolver, qio_dns_resolver,
- QIO_DNS_RESOLVER, ObjectClass)
+ QIO_DNS_RESOLVER)
/**
@@ -26,7 +26,7 @@
#define TYPE_QIO_NET_LISTENER "qio-net-listener"
OBJECT_DECLARE_SIMPLE_TYPE(QIONetListener, qio_net_listener,
- QIO_NET_LISTENER, ObjectClass)
+ QIO_NET_LISTENER)
typedef void (*QIONetListenerClientFunc)(QIONetListener *listener,
@@ -639,19 +639,19 @@ struct Object
* @InstanceType: instance struct name
* @module_obj_name: the object name in lowercase with underscore separators
* @MODULE_OBJ_NAME: the object name in uppercase with underscore separators
- * @ParentClassType: class struct name of parent type
*
- * This does the same as OBJECT_DECLARE_TYPE(), but also declares
- * the class struct, thus only the object struct needs to be declare
- * manually.
+ * This does the same as OBJECT_DECLARE_TYPE(), but with no class struct
+ * declared.
*
* This macro should be used unless the class struct needs to have
* virtual methods declared.
*/
-#define OBJECT_DECLARE_SIMPLE_TYPE(InstanceType, module_obj_name, \
- MODULE_OBJ_NAME, ParentClassType) \
- OBJECT_DECLARE_TYPE(InstanceType, InstanceType##Class, module_obj_name, MODULE_OBJ_NAME) \
- struct InstanceType##Class { ParentClassType parent_class; };
+#define OBJECT_DECLARE_SIMPLE_TYPE(InstanceType, module_obj_name, MODULE_OBJ_NAME) \
+ typedef struct InstanceType InstanceType; \
+ \
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(InstanceType, object_unref) \
+ \
+ DECLARE_INSTANCE_CHECKER(InstanceType, MODULE_OBJ_NAME, TYPE_##MODULE_OBJ_NAME)
/**
@@ -23,7 +23,7 @@
#define TYPE_VHOST_USER_BACKEND "vhost-user-backend"
OBJECT_DECLARE_SIMPLE_TYPE(VhostUserBackend, vhost_user_backend,
- VHOST_USER_BACKEND, ObjectClass)
+ VHOST_USER_BACKEND)
@@ -252,7 +252,6 @@ static const TypeInfo qauthz_list_info = {
.name = TYPE_QAUTHZ_LIST,
.instance_size = sizeof(QAuthZList),
.instance_finalize = qauthz_list_finalize,
- .class_size = sizeof(QAuthZListClass),
.class_init = qauthz_list_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -263,7 +263,6 @@ static const TypeInfo qauthz_list_file_info = {
.instance_init = qauthz_list_file_init,
.instance_size = sizeof(QAuthZListFile),
.instance_finalize = qauthz_list_file_finalize,
- .class_size = sizeof(QAuthZListFileClass),
.class_init = qauthz_list_file_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -129,7 +129,6 @@ static const TypeInfo qauthz_pam_info = {
.name = TYPE_QAUTHZ_PAM,
.instance_size = sizeof(QAuthZPAM),
.instance_finalize = qauthz_pam_finalize,
- .class_size = sizeof(QAuthZPAMClass),
.class_init = qauthz_pam_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -96,7 +96,6 @@ static const TypeInfo qauthz_simple_info = {
.name = TYPE_QAUTHZ_SIMPLE,
.instance_size = sizeof(QAuthZSimple),
.instance_finalize = qauthz_simple_finalize,
- .class_size = sizeof(QAuthZSimpleClass),
.class_init = qauthz_simple_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -24,7 +24,7 @@
#define TYPE_DBUS_VMSTATE "dbus-vmstate"
OBJECT_DECLARE_SIMPLE_TYPE(DBusVMState, dbus_vmstate,
- DBUS_VMSTATE, ObjectClass)
+ DBUS_VMSTATE)
struct DBusVMState {
@@ -483,7 +483,6 @@ static const TypeInfo dbus_vmstate_info = {
.parent = TYPE_OBJECT,
.instance_size = sizeof(DBusVMState),
.instance_finalize = dbus_vmstate_finalize,
- .class_size = sizeof(DBusVMStateClass),
.class_init = dbus_vmstate_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -197,7 +197,6 @@ static const TypeInfo vhost_user_backend_info = {
.instance_size = sizeof(VhostUserBackend),
.instance_init = vhost_user_backend_init,
.instance_finalize = vhost_user_backend_finalize,
- .class_size = sizeof(VhostUserBackendClass),
};
static void register_types(void)
@@ -129,7 +129,6 @@ static const TypeInfo qcrypto_secret_info = {
.parent = TYPE_QCRYPTO_SECRET_COMMON,
.name = TYPE_QCRYPTO_SECRET_KEYRING,
.instance_size = sizeof(QCryptoSecretKeyring),
- .class_size = sizeof(QCryptoSecretKeyringClass),
.class_init = qcrypto_secret_keyring_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_USER_CREATABLE },
@@ -267,7 +267,6 @@ static const TypeInfo qio_dns_resolver_info = {
.parent = TYPE_OBJECT,
.name = TYPE_QIO_DNS_RESOLVER,
.instance_size = sizeof(QIODNSResolver),
- .class_size = sizeof(QIODNSResolverClass),
};
@@ -307,7 +307,6 @@ static const TypeInfo qio_net_listener_info = {
.name = TYPE_QIO_NET_LISTENER,
.instance_size = sizeof(QIONetListener),
.instance_finalize = qio_net_listener_finalize,
- .class_size = sizeof(QIONetListenerClass),
};
@@ -21,7 +21,7 @@
#define TYPE_INPUT_BARRIER "input-barrier"
OBJECT_DECLARE_SIMPLE_TYPE(InputBarrier, input_barrier,
- INPUT_BARRIER, ObjectClass)
+ INPUT_BARRIER)
#define MAX_HELLO_LENGTH 1024
@@ -723,7 +723,6 @@ static void input_barrier_class_init(ObjectClass *oc, void *data)
static const TypeInfo input_barrier_info = {
.name = TYPE_INPUT_BARRIER,
.parent = TYPE_OBJECT,
- .class_size = sizeof(InputBarrierClass),
.class_init = input_barrier_class_init,
.instance_size = sizeof(InputBarrier),
.instance_init = input_barrier_instance_init,
@@ -32,7 +32,7 @@ static bool linux_is_button(unsigned int lnx)
#define TYPE_INPUT_LINUX "input-linux"
OBJECT_DECLARE_SIMPLE_TYPE(InputLinux, input_linux,
- INPUT_LINUX, ObjectClass)
+ INPUT_LINUX)
struct InputLinux {
@@ -514,7 +514,6 @@ static void input_linux_class_init(ObjectClass *oc, void *data)
static const TypeInfo input_linux_info = {
.name = TYPE_INPUT_LINUX,
.parent = TYPE_OBJECT,
- .class_size = sizeof(InputLinuxClass),
.class_init = input_linux_class_init,
.instance_size = sizeof(InputLinux),
.instance_init = input_linux_instance_init,