X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=pkgsrc-xorg-server.git;a=blobdiff_plain;f=patches%2Fpatch-aa;fp=patches%2Fpatch-aa;h=cad0f8aaeffbd3e9fb29640b730d143fdfe9fe11;hp=0000000000000000000000000000000000000000;hb=b2f3b0b6d35e6d1605cfdd8b3f6eddd31d2c1787;hpb=cca991fae99c7e9c467351d703e5bce4c4588ef4 diff --git a/patches/patch-aa b/patches/patch-aa new file mode 100644 index 0000000..cad0f8a --- /dev/null +++ b/patches/patch-aa @@ -0,0 +1,103 @@ +$NetBSD$ + +--- dix/atom.c.orig 2009-03-06 19:05:09.000000000 +0900 ++++ dix/atom.c +@@ -74,98 +74,6 @@ static NodePtr *nodeTable; + + void FreeAtom(NodePtr patom); + +-_X_EXPORT Atom +-MakeAtom(char *string, unsigned len, Bool makeit) +-{ +- NodePtr * np; +- unsigned i; +- int comp; +- unsigned int fp = 0; +- +- np = &atomRoot; +- for (i = 0; i < (len+1)/2; i++) +- { +- fp = fp * 27 + string[i]; +- fp = fp * 27 + string[len - 1 - i]; +- } +- while (*np != (NodePtr) NULL) +- { +- if (fp < (*np)->fingerPrint) +- np = &((*np)->left); +- else if (fp > (*np)->fingerPrint) +- np = &((*np)->right); +- else +- { /* now start testing the strings */ +- comp = strncmp(string, (*np)->string, (int)len); +- if ((comp < 0) || ((comp == 0) && (len < strlen((*np)->string)))) +- np = &((*np)->left); +- else if (comp > 0) +- np = &((*np)->right); +- else +- return(*np)->a; +- } +- } +- if (makeit) +- { +- NodePtr nd; +- +- nd = (NodePtr) xalloc(sizeof(NodeRec)); +- if (!nd) +- return BAD_RESOURCE; +- if (lastAtom < XA_LAST_PREDEFINED) +- { +- nd->string = string; +- } +- else +- { +- nd->string = (char *) xalloc(len + 1); +- if (!nd->string) { +- xfree(nd); +- return BAD_RESOURCE; +- } +- strncpy(nd->string, string, (int)len); +- nd->string[len] = 0; +- } +- if ((lastAtom + 1) >= tableLength) { +- NodePtr *table; +- +- table = (NodePtr *) xrealloc(nodeTable, +- tableLength * (2 * sizeof(NodePtr))); +- if (!table) { +- if (nd->string != string) +- xfree(nd->string); +- xfree(nd); +- return BAD_RESOURCE; +- } +- tableLength <<= 1; +- nodeTable = table; +- } +- *np = nd; +- nd->left = nd->right = (NodePtr) NULL; +- nd->fingerPrint = fp; +- nd->a = (++lastAtom); +- *(nodeTable+lastAtom) = nd; +- return nd->a; +- } +- else +- return None; +-} +- +-_X_EXPORT Bool +-ValidAtom(Atom atom) +-{ +- return (atom != None) && (atom <= lastAtom); +-} +- +-_X_EXPORT char * +-NameForAtom(Atom atom) +-{ +- NodePtr node; +- if (atom > lastAtom) return 0; +- if ((node = nodeTable[atom]) == (NodePtr)NULL) return 0; +- return node->string; +-} +- + void + AtomError(void) + {