summaryrefslogtreecommitdiff
path: root/hv.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace hv_magic() with a macro to call sv_magic() directly. Move theNicholas Clark2005-10-301-0/+1
| | | | | old body to mathoms.c p4raw-id: //depot/perl@25897
* Replace hv_iternext() with a macro that calls hv_iternext_flags withNicholas Clark2005-10-301-0/+2
| | | | | an extra 0 argument. Move the old body to mathoms.c p4raw-id: //depot/perl@25895
* Minor comment fixRafael Garcia-Suarez2005-09-091-1/+1
| | | p4raw-id: //depot/perl@25366
* Given that we now have a union, there's no need for all the HvARRAY()Nicholas Clark2005-08-171-5/+1
| | | | | casting games. p4raw-id: //depot/perl@25297
* [patch hv.h doc] HvNAMESteve Hay2005-07-111-1/+2
| | | | | | | | | | | | From: Stas Bekman <stas@stason.org> Date: Fri, 08 Jul 2005 13:52:13 +0300 Message-ID: <42CE5ADD.3020003@stason.org> Subject: Re: [patch hv.h doc] HvNAME From: Nicholas Clark <nick@ccl4.org> Date: Sat, 9 Jul 2005 15:23:51 +0100 Message-ID: <20050709142351.GT15833@plum.flirble.org> p4raw-id: //depot/perl@25111
* Squeeze a little more savings by moving pte and he arenas into theNicholas Clark2005-06-181-0/+3
| | | | | common arena free code. p4raw-id: //depot/perl@24895
* Provide share_hek_hek, and use it for fast copying of shared stringNicholas Clark2005-06-121-0/+7
| | | | | scalars. p4raw-id: //depot/perl@24811
* In the shared string table, store the HE and HEK next to each otherNicholas Clark2005-06-121-0/+4
| | | | | in one malloc()ed block. p4raw-id: //depot/perl@24808
* hash key code cleanupNicholas Clark2005-06-111-2/+0
| | | p4raw-id: //depot/perl@24803
* Store the xhv_aux structure after the main array.Nicholas Clark2005-06-011-11/+12
| | | | | | | This reduces the size of HV bodies from 24 to 20 bytes on a 32 bit build. It has the side effect of defined %symbol_table:: now always being true. defined %hash is already deprecated. p4raw-id: //depot/perl@24660
* Attempt 2 at a diet memory layout can go live.Nicholas Clark2005-05-311-1/+1
| | | p4raw-id: //depot/perl@24649
* Change the IV to a union.Nicholas Clark2005-05-291-22/+12
| | | | | | | | Revert the NV union back to a plain NV Transpose the positions of IV and NV (NV is now first) Don't allocate the NV for PV,PVIV,PVAV and PVHV (last 2 non-allocations currently disabled by default) p4raw-id: //depot/perl@24617
* Get the HEK once only in the hot code (class method calls)Nicholas Clark2005-05-271-0/+2
| | | p4raw-id: //depot/perl@24594
* Rename the members of the SV head union to avoid pre-processorNicholas Clark2005-05-261-1/+1
| | | | | arguments with embed.h p4raw-id: //depot/perl@24590
* Store the package name as a shared HEK.Nicholas Clark2005-05-261-3/+5
| | | | | | | | Abolish HvNAME() - as the stored pointer is not a char* you can't set it directly now. Storing a pointer to a HEK tracks the length too, and seems to be faster. p4raw-id: //depot/perl@24584
* I think for now these have to be disabled by default.Nicholas Clark2005-05-251-1/+1
| | | p4raw-id: //depot/perl@24572
* Reorder the union to cause Win32 compilers to use void * alignment forNicholas Clark2005-05-241-1/+1
| | | | | it. p4raw-id: //depot/perl@24569
* Don't allocate an IV slot where the type doesn't use the IV slot.Nicholas Clark2005-05-231-0/+19
| | | p4raw-id: //depot/perl@24557
* create an "allocated" structure for PVs, PVAVs and PVHVsNicholas Clark2005-05-231-0/+1
| | | p4raw-id: //depot/perl@24544
* Re-order IVX slot in SV bodiesNicholas Clark2005-05-221-1/+1
| | | p4raw-id: //depot/perl@24542
* Add a union in place of xnv_nv, which allows AVs and HVs to re-useNicholas Clark2005-05-211-4/+15
| | | | | | | the memory to store pointers and integers. (Part 1 - will be reworked to be more efficient when IV or void* is 64 bit soon) p4raw-id: //depot/perl@24538
* Move the xpv_pv/xrv_rv member into the SV head, in a union withNicholas Clark2005-05-211-2/+1
| | | | | IV and UV. Avoid allocating a body for IVs and RVs. p4raw-id: //depot/perl@24531
* Move hv_name, hv_eiter and hv_riter into a new aux structure.Nicholas Clark2005-05-211-6/+34
| | | | | | Provide (more efficient) _get and _set macros. Adjust the core to use them. p4raw-id: //depot/perl@24526
* Move placeholders into a new rhash magic type.Nicholas Clark2005-05-211-10/+5
| | | p4raw-id: //depot/perl@24525
* Remove PMROOT and replace it with a small shell script. Er, magic.Nicholas Clark2005-05-201-2/+1
| | | | | | (PMROOT being needed to implement bare C<reset> - how often do you use that?) p4raw-id: //depot/perl@24522
* Fix a typoNicholas Clark2005-05-201-1/+1
| | | p4raw-id: //depot/perl@24516
* Default to allocating the correct size for the array in the HV.Nicholas Clark2005-05-181-1/+4
| | | | | Override this with -DPERL_USE_LARGE_HV_ALLOC p4raw-id: //depot/perl@24497
* Update copyrights.Rafael Garcia-Suarez2005-03-301-1/+1
| | | p4raw-id: //depot/perl@24106
* Revert change 23843.Rafael Garcia-Suarez2005-01-241-3/+0
| | | | | (See discussion for bug [perl #31924]) p4raw-id: //depot/perl@23873
* Re: [perl #31924] %INC caching failure-case problemRick Delaney2005-01-211-0/+3
| | | | | Message-ID: <20041013164018.GA32174@biff.bort.ca> p4raw-id: //depot/perl@23843
* Stas would prefer not to have MOD_PERL defines in perl.Nicholas Clark2003-11-031-1/+2
| | | p4raw-id: //depot/perl@21639
* s/new_hash/rehash/g (Stas suggested a better name)Nicholas Clark2003-11-031-1/+1
| | | p4raw-id: //depot/perl@21638
* mod_perl2 will require access to the Plan C hashing function.Nicholas Clark2003-11-011-1/+1
| | | p4raw-id: //depot/perl@21607
* Return 21533 (with modifications) having found the problemNicholas Clark2003-10-251-0/+11
| | | p4raw-id: //depot/perl@21535
* Back out 21533 because it broke Encode's build in really weird waysNicholas Clark2003-10-251-11/+0
| | | p4raw-id: //depot/perl@21534
* Plan C rough edge smoothing. Criteria for a hash split is nowNicholas Clark2003-10-251-0/+11
| | | | | | | the earlier of "more keys than buckets" (the old test) or linked list too long. Rehash is triggered after a split if the longest linked list is too long. p4raw-id: //depot/perl@21533
* Plan C for foiling the algorithmic complexity attackNicholas Clark2003-10-161-0/+26
| | | | | | | | | | | (based on Chip's plan A (binary compatibility with 5.8.0 and 5.8.1), Chip's plan B (do something new inside the hv functions) and introspective sort) Provides infrastructure for hashes to change their hash function if necessary, and code in hsplit to detect pathalogical data and instigate a random rehashing. Needs refinement. Let's see how much smoke it creates. p4raw-id: //depot/perl@21471
* It's UTF-8, not UTF8. (Note: not s/UTF-8/UTF8/,Jarkko Hietaniemi2003-09-121-2/+2
| | | | | | since that would break a lot of code.) Also few stray UTF16s, UTF32s, and "encoded in Unicode". p4raw-id: //depot/perl@21198
* This should make Stas happy.Jarkko Hietaniemi2003-07-231-4/+13
| | | p4raw-id: //depot/perl@20182
* Bite the bullet and apply the hash randomisation patch.Jarkko Hietaniemi2003-06-261-1/+8
| | | | | [perl #22371] Algorimic Complexity Attack on Perl 5.6.1, 5.8.0 p4raw-id: //depot/perl@19854
* Fix up Larry's copyright statements to my best knowledge.Jarkko Hietaniemi2003-04-161-1/+2
| | | | | | | (Lots of Perl 5 source code archaeology was involved.) Larry didn't make strangled noises when I showed him the patch, either :-) p4raw-id: //depot/perl@19242
* Reverse copyright update (#18801) for files not changed in 2003.Hugo van der Sanden2003-03-021-1/+1
| | | p4raw-id: //depot/perl@18807
* Update all copyrights to 2003, from JarkkoHugo van der Sanden2003-03-021-1/+1
| | | p4raw-id: //depot/perl@18801
* PERL_HASH() casting games so that our hashed data is "unsignedJarkko Hietaniemi2002-05-171-4/+11
| | | | | | | | | char" but old code using just a "char" doesn't need changes. (The change is using a temporary pointer instead of a direct cast to unsigned char* which would blindly cast anything, not just char pointers.) (The problem arose in MacOS Classic, as seen by Pudge, the cure by Nicholas Clark.) p4raw-id: //depot/perl@16656
* unsigned char hashes (Re: perl@16539)Nicholas Clark2002-05-111-1/+1
| | | | | | | Message-ID: <20020511165444.GD301@Bagpuss.unfortu.net> Be explicitly unsigned char in the hash calculation. p4raw-id: //depot/perl@16542
* [dodgy PATCH] Re: [Storable] utf8 keys started working!Nicholas Clark2002-04-131-0/+5
| | | | | Message-ID: <20020413015806.GA371@Bagpuss.unfortu.net> p4raw-id: //depot/perl@15893
* Re: the dirty half dozen (Re: perl@15662)Benjamin Goldberg2002-04-061-1/+1
| | | | | Message-ID: <3CAE3E2E.8483505@earthlink.net> p4raw-id: //depot/perl@15767
* Re: the dirty half dozen (Re: perl@15662)Nicholas Clark2002-04-061-5/+27
| | | | | | | Message-ID: <20020405232117.GE323@Bagpuss.unfortu.net> (with the last one reversed) p4raw-id: //depot/perl@15757
* If Unicode keys are entered to a hash, a bit is turned on.Jarkko Hietaniemi2002-03-221-1/+4
| | | | | | | | | | If the bit is on, when the keys are fetched from the hash (%h, each %h, keys %h), the Unicodified versions of the keys are returned if needed. This solution errs on the size of over-Unicodifying, the old solution erred on the side of under-Unicodifying. As long as the hash keys can be a mix of byte and Unicode strings, a perfect fit is hard to come by. p4raw-id: //depot/perl@15407
* Make shared hash keys to be \0-terminated:Jarkko Hietaniemi2002-02-281-1/+3
| | | | | | | | | | | | | | | | | | one possible resolution for "UTF-8, weird \w behaviour after HASH-KEY-ification" http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-01/msg01327.html The hash keys were shared (the SvLEN(sv) = 0 was the giveaway). The hash keys weren't \0-terminated. This meant that the EOL ($) in regmatch() got the nextchr beyond the last character. Since the keys were UTF-8, the nextchr was \1, not the usual string-terminating \0. Wham, no match. I think another possible resolution could be to stop the nextchr computation in regmatch() from peeking beyond the last character of the string: nextchr = locinput < PL_regeol ? UCHARAT(locinput) : 0; p4raw-id: //depot/perl@14908