資源簡介
libvips-8.9.1-win32-x64.tar.gz 官網(wǎng)下載下來好像總是丟失文件。需要的話可以用這個(gè)
代碼片段和文件信息
/*?Gobject?-?GLib?Type?object?Parameter?and?Signal?Library
?*?Copyright?(C)?1998-1999?2000-2001?Tim?Janik?and?Red?Hat?Inc.
?*
?*?This?library?is?free?software;?you?can?redistribute?it?and/or
?*?modify?it?under?the?terms?of?the?GNU?Lesser?General?Public
?*?License?as?published?by?the?Free?Software?Foundation;?either
?*?version?2.1?of?the?License?or?(at?your?option)?any?later?version.
?*
?*?This?library?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the?GNU
?*?Lesser?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?Lesser?General
?*?Public?License?along?with?this?library;?if?not?see? .
?*/
/*?WARNING:
?*
?*????This?file?is?INSTALLED?and?other?projects?(outside?of?glib)
?*????#include?its?contents.
?*/
#ifndef?__G_object_NOTIFY_QUEUE_H__
#define?__G_object_NOTIFY_QUEUE_H__
#include??/*?memset?*/
#include?ject.h>
G_BEGIN_DECLS
/*?---?typedefs?---?*/
typedef?struct?_GobjectNotifyContext??????????GobjectNotifyContext;
typedef?struct?_GobjectNotifyQueue????????????GobjectNotifyQueue;
typedef?void?(*GobjectNotifyQueueDispatcher)?(Gobject?????*object
??????guint????????n_pspecs
??????GParamSpec?**pspecs);
/*?---?structures?---?*/
struct?_GobjectNotifyContext
{
??GQuark???????????????????????quark_notify_queue;
??GobjectNotifyQueueDispatcher?dispatcher;
??GTrashStack?????????????????*_nqueue_trash;?/*?unused?*/
};
struct?_GobjectNotifyQueue
{
??GobjectNotifyContext?*context;
??GSList???????????????*pspecs;
??guint16???????????????n_pspecs;
??guint16???????????????freeze_count;
};
G_LOCK_DEFINE_STATIC(notify_lock);
/*?---?functions?---?*/
static?void
g_object_notify_queue_free?(gpointer?data)
{
??GobjectNotifyQueue?*nqueue?=?data;
??g_slist_free?(nqueue->pspecs);
??g_slice_free?(GobjectNotifyQueue?nqueue);
}
static?inline?GobjectNotifyQueue*
g_object_notify_queue_freeze?(Gobject ???*object
??????GobjectNotifyContext?*context)
{
??GobjectNotifyQueue?*nqueue;
??G_LOCK(notify_lock);
??nqueue?=?g_datalist_id_get_data?(&object->qdata?context->quark_notify_queue);
??if?(!nqueue)
????{
??????nqueue?=?g_slice_new0?(GobjectNotifyQueue);
??????nqueue->context?=?context;
??????g_datalist_id_set_data_full?(&object->qdata?context->quark_notify_queue
???nqueue?g_object_notify_queue_free);
????}
??if?(nqueue->freeze_count?>=?65535)
????g_critical(“Free?queue?for?%s?(%p)?is?larger?than?65535“
???????????????“?called?g_object_freeze_notify()?too?often.“
???????????????“?Forgot?to?call?g_object_thaw_notify()?or?infinite?loop“
???????????????G_object_TYPE_NAME?(object)?object);
??else
????nqueue->freeze_count++;
??G_UNLOCK(notify_lock);
??return?nqueue;
}
static?inline?void
g_object_notify_queue_thaw?(Gobject????????????*object
????GobjectNotifyQueue?*nqueue)
{
??GobjectNotifyContext?*context?=?nqueue->con
評(píng)論
共有 條評(píng)論