diff options
author | mycroft <mycroft@pkgsrc.org> | 2002-09-03 14:58:17 +0000 |
---|---|---|
committer | mycroft <mycroft@pkgsrc.org> | 2002-09-03 14:58:17 +0000 |
commit | 12a43970b28f62049df40fff53d37d47a9a3de0a (patch) | |
tree | ca4e11cbde19ee48ab4d7990906fc485906408a0 | |
parent | 45bc6e568a3789081ae5e99f75c55dc7fbeda490 (diff) | |
download | pkgsrc-12a43970b28f62049df40fff53d37d47a9a3de0a.tar.gz |
Swipe the patch for bug 160535 from the Mozilla tree, to fix unaligned access
problems on 64-bit platforms.
(I don't think this is the right way to do it, but...)
-rw-r--r-- | www/mozilla/distinfo | 4 | ||||
-rw-r--r-- | www/mozilla/patches/patch-bk | 31 | ||||
-rw-r--r-- | www/mozilla/patches/patch-bl | 44 |
3 files changed, 78 insertions, 1 deletions
diff --git a/www/mozilla/distinfo b/www/mozilla/distinfo index b2eee3f6f32..4a93292f416 100644 --- a/www/mozilla/distinfo +++ b/www/mozilla/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.27 2002/08/29 15:11:11 taya Exp $ +$NetBSD: distinfo,v 1.28 2002/09/03 14:58:17 mycroft Exp $ SHA1 (mozilla-source-1.1.tar.gz) = 9499b9c96ca5128be9a4e92c9cfead9950fd2efd Size (mozilla-source-1.1.tar.gz) = 40817026 bytes @@ -13,3 +13,5 @@ SHA1 (patch-ba) = 71758ae86bd7f57095b5af2f96d5d2c4416bec57 SHA1 (patch-bb) = 4f8b98e24afdba9b281f7fbfe551837560d75c62 SHA1 (patch-be) = 768bf48f5a667e51cea9fd83c5cb26cf86e72e18 SHA1 (patch-bj) = 3690cdca84ad2a721d98156404e8f309ba47b3d6 +SHA1 (patch-bk) = e1ef475003bc46fd340e2f3e1bf19ad1811094d4 +SHA1 (patch-bl) = bf9c9a86bd30912788c222c5f1536d83f707c77d diff --git a/www/mozilla/patches/patch-bk b/www/mozilla/patches/patch-bk new file mode 100644 index 00000000000..2452d3a931b --- /dev/null +++ b/www/mozilla/patches/patch-bk @@ -0,0 +1,31 @@ +$NetBSD: patch-bk,v 1.5 2002/09/03 14:58:18 mycroft Exp $ + +--- xpcom/ds/nsRecyclingAllocator.cpp.orig Sat Sep 3 14:38:03 2022 ++++ xpcom/ds/nsRecyclingAllocator.cpp Sat Sep 3 14:35:24 2022 +@@ -159,7 +159,7 @@ + + // Allocation and free routines + void* +-nsRecyclingAllocator::Malloc(PRUint32 bytes, PRBool zeroit) ++nsRecyclingAllocator::Malloc(PRSize bytes, PRBool zeroit) + { + // Mark that we are using. This will prevent any + // timer based release of unused memory. +@@ -173,7 +173,7 @@ + + // We need to do an allocation + // Add 4 bytes to what we allocate to hold the bucket index +- PRUint32 allocBytes = bytes + NS_ALLOCATOR_OVERHEAD_BYTES; ++ PRSize allocBytes = bytes + NS_ALLOCATOR_OVERHEAD_BYTES; + + // We dont have that memory already. Allocate. + Block *ptr = (Block *) (zeroit ? calloc(1, allocBytes) : malloc(allocBytes)); +@@ -275,7 +275,7 @@ + } + + nsRecyclingAllocator::Block* +-nsRecyclingAllocator::FindFreeBlock(PRUint32 bytes) ++nsRecyclingAllocator::FindFreeBlock(PRSize bytes) + { + // We dont enter lock for this check. This is intentional. + // Here is my logic: we are checking if (!mFreeList). Doing this check diff --git a/www/mozilla/patches/patch-bl b/www/mozilla/patches/patch-bl new file mode 100644 index 00000000000..341d62e1518 --- /dev/null +++ b/www/mozilla/patches/patch-bl @@ -0,0 +1,44 @@ +$NetBSD: patch-bl,v 1.1 2002/09/03 14:58:18 mycroft Exp $ + +--- xpcom/ds/nsRecyclingAllocator.h.orig Sat Sep 3 14:38:24 2022 ++++ xpcom/ds/nsRecyclingAllocator.h Sat Sep 3 14:36:54 2022 +@@ -78,7 +78,7 @@ + class NS_COM nsRecyclingAllocator { + protected: + struct Block { +- PRUint32 bytes; ++ PRSize bytes; + }; + + // Make |BlockStoreNode| a |friend| so it can access |Block|. +@@ -87,7 +87,7 @@ + + struct BlockStoreNode { + BlockStoreNode() : bytes(0), block(nsnull), next(nsnull) {}; +- PRUint32 bytes; ++ PRSize bytes; + Block *block; + BlockStoreNode *next; + }; +@@ -150,10 +150,10 @@ + nsresult Init(PRUint32 nbucket, PRUint32 recycleAfter, const char *id); + + // Allocation and free routines +- void* Malloc(PRUint32 size, PRBool zeroit = PR_FALSE); ++ void* Malloc(PRSize size, PRBool zeroit = PR_FALSE); + void Free(void *ptr); + +- void* Calloc(PRUint32 items, PRUint32 size) ++ void* Calloc(PRUint32 items, PRSize size) + { + return Malloc(items * size, PR_TRUE); + } +@@ -168,7 +169,7 @@ + + // Freelist management + // FindFreeBlock: return a free block that can hold bytes (best fit) +- Block* FindFreeBlock(PRUint32 bytes); ++ Block* FindFreeBlock(PRSize bytes); + // AddToFreeList: adds block into our freelist for future retrieval. + // Returns PR_TRUE is addition was successful. PR_FALSE otherewise. + PRBool AddToFreeList(Block* block); |