substitutions
Martin von Loewis
loewis at informatik.hu-berlin.de
Wed Apr 19 18:10:46 UTC 2000
> But we don't have the string 2C12C3 in the encoding, if C1::C2 already
> appear before, we need to reuse (let say that C1 is a long enough name)
> the C1 preffix, so we only have S<nc1>2C2 appearing in the encoding.
> And probably some map indicating that C1::C3 is encoded with that
> string.
IMO, the back-references always refer to the original expanded names,
in some interal form. Conceptually, you have C1::C3 in the compression
table, not 2C12C3 (and neither S<n>_2C3).
> 4Temp
> I
> N 6C1xxxx 2C2 E
> N S1_ 2C3 ES
> i
> N S2_ 2C4 E // S2_ -> S1_ 2C3, let's call S2_ S<C13n>_ instead.
> E
> Now imagine, instead of "int", we have something very
> big that generate a 5 digit (or more) C13n (sure, it's
> a big number, it won't append very often) so that
> strlen( "S<C13n>_2C4" ) > strlen ("S1_ 2C3")
> At that point, I don't see what to write instead of "S<C13n>_2C4".
The procedure is as follows:
1. Do you have a compression for C1xxxx::C3::C4? No.
2. Do you have a compression for C1xxxx::C3? Yes, S<C13n>.
Is it shorter than 6C1xxxx2C3? Let's assume it isn't.
3. Do you have a compression for C1xxxx? Yes, S<C13n+3> (correct me if
I'm wrong). Is it shorter than C1xxxx? Certainly not.
4. Use the uncompressed version, i.e.
N6C1xxxx2C32C4E, putting new entries into the compression list,
namely
C1xxxx
C1xxxx::C3
C1xxxx::C3::C4
which can be done as you encode them, after finding out that you
cannot compress them.
Regards,
Martin
More information about the cxx-abi-dev
mailing list