devPrivates rework: unhook resource system; will try a different approach.

This commit is contained in:
Eamon Walsh 2007-03-01 12:07:33 -05:00 committed by Eamon Walsh
parent 81372f9096
commit 74f1de1de9
3 changed files with 6 additions and 23 deletions

View File

@ -135,7 +135,6 @@ Equipment Corporation.
#include "misc.h" #include "misc.h"
#include "os.h" #include "os.h"
#include "resource.h" #include "resource.h"
#include "privates.h"
#include "dixstruct.h" #include "dixstruct.h"
#include "opaque.h" #include "opaque.h"
#include "windowstr.h" #include "windowstr.h"
@ -207,8 +206,6 @@ CreateNewResourceType(DeleteType deleteFunc)
if (next & lastResourceClass) if (next & lastResourceClass)
return 0; return 0;
if (!dixUpdatePrivates())
return 0;
funcs = (DeleteType *)xrealloc(DeleteFuncs, funcs = (DeleteType *)xrealloc(DeleteFuncs,
(next + 1) * sizeof(DeleteType)); (next + 1) * sizeof(DeleteType));
if (!funcs) if (!funcs)
@ -454,7 +451,7 @@ FakeClientID(register int client)
} }
_X_EXPORT Bool _X_EXPORT Bool
dixAddResource(XID id, RESTYPE type, pointer value, pointer parent) AddResource(XID id, RESTYPE type, pointer value)
{ {
int client; int client;
register ClientResourceRec *rrec; register ClientResourceRec *rrec;
@ -475,7 +472,7 @@ dixAddResource(XID id, RESTYPE type, pointer value, pointer parent)
(rrec->hashsize < MAXHASHSIZE)) (rrec->hashsize < MAXHASHSIZE))
RebuildTable(client); RebuildTable(client);
head = &rrec->resources[Hash(client, id)]; head = &rrec->resources[Hash(client, id)];
res = dixAllocateResourceRec(type, value, parent); res = (ResourcePtr)xalloc(sizeof(ResourceRec));
if (!res) if (!res)
{ {
(*DeleteFuncs[type & TypeMask])(value, id); (*DeleteFuncs[type & TypeMask])(value, id);
@ -489,16 +486,9 @@ dixAddResource(XID id, RESTYPE type, pointer value, pointer parent)
rrec->elements++; rrec->elements++;
if (!(id & SERVER_BIT) && (id >= rrec->expectID)) if (!(id & SERVER_BIT) && (id >= rrec->expectID))
rrec->expectID = id + 1; rrec->expectID = id + 1;
dixCallPrivateInitFuncs(res);
return TRUE; return TRUE;
} }
_X_EXPORT Bool
AddResource(XID id, RESTYPE type, pointer value)
{
return dixAddResource(id, type, value, NULL);
}
static void static void
RebuildTable(int client) RebuildTable(int client)
{ {
@ -580,7 +570,7 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType)
FlushClientCaches(res->id); FlushClientCaches(res->id);
if (rtype != skipDeleteFuncType) if (rtype != skipDeleteFuncType)
(*DeleteFuncs[rtype & TypeMask])(res->value, res->id); (*DeleteFuncs[rtype & TypeMask])(res->value, res->id);
dixFreeResourceRec(res); xfree(res);
if (*eltptr != elements) if (*eltptr != elements)
prev = head; /* prev may no longer be valid */ prev = head; /* prev may no longer be valid */
gotOne = TRUE; gotOne = TRUE;
@ -624,7 +614,7 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
FlushClientCaches(res->id); FlushClientCaches(res->id);
if (!skipFree) if (!skipFree)
(*DeleteFuncs[type & TypeMask])(res->value, res->id); (*DeleteFuncs[type & TypeMask])(res->value, res->id);
dixFreeResourceRec(res); xfree(res);
break; break;
} }
else else
@ -789,7 +779,7 @@ FreeClientNeverRetainResources(ClientPtr client)
if (rtype & RC_CACHED) if (rtype & RC_CACHED)
FlushClientCaches(this->id); FlushClientCaches(this->id);
(*DeleteFuncs[rtype & TypeMask])(this->value, this->id); (*DeleteFuncs[rtype & TypeMask])(this->value, this->id);
dixFreeResourceRec(this); xfree(this);
} }
else else
prev = &this->next; prev = &this->next;
@ -839,7 +829,7 @@ FreeClientResources(ClientPtr client)
if (rtype & RC_CACHED) if (rtype & RC_CACHED)
FlushClientCaches(this->id); FlushClientCaches(this->id);
(*DeleteFuncs[rtype & TypeMask])(this->value, this->id); (*DeleteFuncs[rtype & TypeMask])(this->value, this->id);
dixFreeResourceRec(this); xfree(this);
} }
} }
xfree(clientTable[client->index].resources); xfree(clientTable[client->index].resources);

View File

@ -283,7 +283,6 @@ _X_HIDDEN void *dixLookupTab[] = {
#endif #endif
/* resource.c */ /* resource.c */
SYMFUNC(AddResource) SYMFUNC(AddResource)
SYMFUNC(dixAddResource)
SYMFUNC(ChangeResourceValue) SYMFUNC(ChangeResourceValue)
SYMFUNC(CreateNewResourceClass) SYMFUNC(CreateNewResourceClass)
SYMFUNC(CreateNewResourceType) SYMFUNC(CreateNewResourceType)

View File

@ -183,12 +183,6 @@ extern Bool AddResource(
RESTYPE /*type*/, RESTYPE /*type*/,
pointer /*value*/); pointer /*value*/);
extern Bool dixAddResource(
XID /*id*/,
RESTYPE /*type*/,
pointer /*value*/,
pointer /*parent*/);
extern void FreeResource( extern void FreeResource(
XID /*id*/, XID /*id*/,
RESTYPE /*skipDeleteFuncType*/); RESTYPE /*skipDeleteFuncType*/);