Another RAII member.
This commit is contained in:
15
src/cache.cc
15
src/cache.cc
@ -51,7 +51,7 @@ struct CacheEntry_t
|
|||||||
~CacheEntry_t();
|
~CacheEntry_t();
|
||||||
|
|
||||||
std::unique_ptr< const DilloUrl > Url; /**< Cached Url. Url is used as a primary Key */
|
std::unique_ptr< const DilloUrl > Url; /**< Cached Url. Url is used as a primary Key */
|
||||||
char *TypeDet; /**< MIME type string (detected from data) */
|
std::string TypeDet; /**< MIME type string (detected from data) */
|
||||||
char *TypeHdr; /**< MIME type string as from the HTTP Header */
|
char *TypeHdr; /**< MIME type string as from the HTTP Header */
|
||||||
char *TypeMeta; /**< MIME type string from META HTTP-EQUIV */
|
char *TypeMeta; /**< MIME type string from META HTTP-EQUIV */
|
||||||
char *TypeNorm; /**< MIME type string normalized */
|
char *TypeNorm; /**< MIME type string normalized */
|
||||||
@ -194,7 +194,6 @@ static void Cache_client_dequeue(CacheClient_t *Client)
|
|||||||
static void Cache_entry_init(CacheEntry_t *NewEntry, const DilloUrl *Url)
|
static void Cache_entry_init(CacheEntry_t *NewEntry, const DilloUrl *Url)
|
||||||
{
|
{
|
||||||
NewEntry->Url = a_Url_dup(Url);
|
NewEntry->Url = a_Url_dup(Url);
|
||||||
NewEntry->TypeDet = NULL;
|
|
||||||
NewEntry->TypeHdr = NULL;
|
NewEntry->TypeHdr = NULL;
|
||||||
NewEntry->TypeMeta = NULL;
|
NewEntry->TypeMeta = NULL;
|
||||||
NewEntry->TypeNorm = NULL;
|
NewEntry->TypeNorm = NULL;
|
||||||
@ -299,7 +298,6 @@ static void Cache_auth_free(Dlist *auth)
|
|||||||
CacheEntry_t::~CacheEntry_t()
|
CacheEntry_t::~CacheEntry_t()
|
||||||
{
|
{
|
||||||
auto *const entry= this;
|
auto *const entry= this;
|
||||||
dFree(entry->TypeDet);
|
|
||||||
dFree(entry->TypeHdr);
|
dFree(entry->TypeHdr);
|
||||||
dFree(entry->TypeMeta);
|
dFree(entry->TypeMeta);
|
||||||
dFree(entry->TypeNorm);
|
dFree(entry->TypeNorm);
|
||||||
@ -459,8 +457,13 @@ static void Cache_unref_data(CacheEntry_t *entry)
|
|||||||
*/
|
*/
|
||||||
static const char *Cache_current_content_type(CacheEntry_t *entry)
|
static const char *Cache_current_content_type(CacheEntry_t *entry)
|
||||||
{
|
{
|
||||||
return entry->TypeNorm ? entry->TypeNorm : entry->TypeMeta ? entry->TypeMeta
|
return entry->TypeNorm
|
||||||
: entry->TypeHdr ? entry->TypeHdr : entry->TypeDet;
|
? entry->TypeNorm
|
||||||
|
: entry->TypeMeta
|
||||||
|
? entry->TypeMeta
|
||||||
|
: entry->TypeHdr
|
||||||
|
? entry->TypeHdr
|
||||||
|
: entry->TypeDet.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -516,7 +519,7 @@ const char *a_Cache_set_content_type(const DilloUrl *url, const char *ctype,
|
|||||||
if (*from == 'm' && charset &&
|
if (*from == 'm' && charset &&
|
||||||
((!major || !*major) && (!minor || !*minor))) {
|
((!major || !*major) && (!minor || !*minor))) {
|
||||||
/* META only gives charset; use detected MIME type too */
|
/* META only gives charset; use detected MIME type too */
|
||||||
entry->TypeNorm = dStrconcat(entry->TypeDet, ctype, NULL);
|
entry->TypeNorm = dStrconcat(entry->TypeDet.c_str(), ctype, NULL);
|
||||||
} else if (*from == 'm' &&
|
} else if (*from == 'm' &&
|
||||||
!dStrnAsciiCasecmp(ctype, "text/xhtml", 10)) {
|
!dStrnAsciiCasecmp(ctype, "text/xhtml", 10)) {
|
||||||
/* WORKAROUND: doxygen uses "text/xhtml" in META */
|
/* WORKAROUND: doxygen uses "text/xhtml" in META */
|
||||||
|
Reference in New Issue
Block a user