Index

Package: UnZip.Decompress.Huffman

Description

package UnZip.Decompress.Huffman is
UnZip.Decompress.Huffman ------------------------- Huffman tree generation and deletion. Originally from info-zip's unzip, data structure rewritten by G. de Montmollin

Types

HufT_table

type HufT_table;

References:

unzip-decompress-huffman.ads:8:8 (declaration)
unzip-decompress-huffman.adb:16:35 (reference)
unzip-decompress-huffman.adb:226:38 (reference)
unzip-decompress-huffman.ads:9:31 (reference)
unzip-decompress-huffman.ads:20:8 (full declaration)

p_HufT_table

type p_HufT_table is access HufT_table;

References:

unzip-decompress-huffman.ads:9:8 (declaration)
unzip-decompress-huffman.adb:16:47 (reference)
unzip-decompress-huffman.adb:67:25 (reference)
unzip-decompress-huffman.adb:73:30 (reference)
unzip-decompress-huffman.ads:15:18 (reference)
unzip-decompress-huffman.ads:30:12 (reference)
unzip-decompress.adb:990:14 (reference)
unzip-decompress.adb:1103:14 (reference)

HufT

type HufT is record
    extra_bits : Natural;
    bits       : Natural;
    n          : Natural;
    next_table : p_HufT_table;
  end record;

References:

unzip-decompress-huffman.ads:11:8 (declaration)
unzip-decompress-huffman.adb:71:16 (reference)
unzip-decompress-huffman.ads:20:59 (reference)
unzip-decompress-huffman.ads:22:29 (reference)

p_HufT

type p_HufT is access all HufT;

References:

unzip-decompress-huffman.ads:22:8 (declaration)
unzip-decompress.adb:1422:18 (reference)
unzip-decompress.adb:1621:15 (reference)

Table_list

type Table_list;

References:

unzip-decompress-huffman.ads:26:8 (declaration)
unzip-decompress-huffman.adb:18:35 (reference)
unzip-decompress-huffman.adb:227:38 (reference)
unzip-decompress-huffman.ads:27:31 (reference)
unzip-decompress-huffman.ads:29:8 (full declaration)

p_Table_list

type p_Table_list is access Table_list;

References:

unzip-decompress-huffman.ads:27:8 (declaration)
unzip-decompress-huffman.adb:13:36 (reference)
unzip-decompress-huffman.adb:18:47 (reference)
unzip-decompress-huffman.adb:20:14 (reference)
unzip-decompress-huffman.adb:47:40 (reference)
unzip-decompress-huffman.adb:68:25 (reference)
unzip-decompress-huffman.adb:69:25 (reference)
unzip-decompress-huffman.ads:31:12 (reference)
unzip-decompress-huffman.ads:39:36 (reference)
unzip-decompress-huffman.ads:45:40 (reference)
unzip-decompress.adb:982:22 (reference)
unzip-decompress.adb:1096:20 (reference)
unzip-decompress.adb:1191:22 (reference)
unzip-decompress.adb:1421:41 (reference)
unzip-decompress.adb:1556:16 (reference)
unzip-decompress.adb:1619:16 (reference)

Length_array

type Length_array is array(Integer range <>) of Natural;

References:

unzip-decompress-huffman.ads:34:8 (declaration)
unzip-decompress-huffman.adb:44:33 (reference)
unzip-decompress-huffman.adb:46:33 (reference)
unzip-decompress-huffman.ads:36:20 (reference)
unzip-decompress-huffman.ads:42:33 (reference)
unzip-decompress-huffman.ads:44:33 (reference)
unzip-decompress.adb:935:35 (reference)
unzip-decompress.adb:1193:13 (reference)
unzip-decompress.adb:1197:20 (reference)
unzip-decompress.adb:1204:20 (reference)
unzip-decompress.adb:1211:20 (reference)
unzip-decompress.adb:1220:20 (reference)
unzip-decompress.adb:1229:20 (reference)
unzip-decompress.adb:1529:30 (reference)
unzip-decompress.adb:1535:28 (reference)
unzip-decompress.adb:1541:39 (reference)
unzip-decompress.adb:1548:38 (reference)
unzip-decompress.adb:1561:21 (reference)
unzip-decompress.adb:1629:13 (reference)

Constants & Global variables

invalid

invalid: constant:= 99;

References:

unzip-decompress-huffman.ads:18:3 (declaration)
unzip-decompress-huffman.adb:273:35 (reference)
unzip-decompress.adb:1012:22 (reference)
unzip-decompress.adb:1036:22 (reference)
unzip-decompress.adb:1056:22 (reference)
unzip-decompress.adb:1130:22 (reference)
unzip-decompress.adb:1150:22 (reference)
unzip-decompress.adb:1440:20 (reference)
unzip-decompress.adb:1474:24 (reference)
unzip-decompress.adb:1537:55 (reference)
unzip-decompress.adb:1537:64 (reference)

empty (Length_array)

empty : constant Length_array( 1..0 ):= ( others=> 0 );

References:

unzip-decompress-huffman.ads:36:3 (declaration)
unzip-decompress.adb:1243:33 (reference)
unzip-decompress.adb:1243:40 (reference)
unzip-decompress.adb:1668:30 (reference)
unzip-decompress.adb:1668:37 (reference)

huft_error

huft_error,                    -- bad tree constructed
  huft_out_of_memory: exception;

References:

unzip-decompress-huffman.ads:50:3 (declaration)
unzip-decompress-huffman.adb:111:15 (reference)
unzip-decompress-huffman.adb:147:15 (reference)
unzip-decompress-huffman.adb:155:13 (reference)
unzip-decompress-huffman.adb:260:21 (reference)
unzip-decompress-huffman.adb:286:21 (reference)
unzip-decompress.adb:1593:37 (reference)
unzip-decompress.adb:1749:37 (reference)
Possible exceptions occuring in huft_build

huft_out_of_memory

huft_out_of_memory: exception;

References:

unzip-decompress-huffman.ads:51:3 (declaration)
unzip-decompress-huffman.adb:230:21 (reference)
unzip-decompress.adb:1593:16 (reference)
unzip-decompress.adb:1749:16 (reference)
bad tree constructed

Subprograms & Entries

HufT_free

procedure HufT_free 
( tl: in out p_Table_list );

References:

unzip-decompress-huffman.ads:39:13 (declaration)
unzip-decompress-huffman.adb:13:13 (body)
unzip-decompress-huffman.adb:40:7 (label)
unzip-decompress-huffman.adb:332:7 (reference)
unzip-decompress.adb:1245:15 (reference)
unzip-decompress.adb:1257:15 (reference)
unzip-decompress.adb:1266:15 (reference)
unzip-decompress.adb:1267:15 (reference)
unzip-decompress.adb:1272:15 (reference)
unzip-decompress.adb:1280:15 (reference)
unzip-decompress.adb:1281:15 (reference)
unzip-decompress.adb:1291:17 (reference)
unzip-decompress.adb:1292:17 (reference)
unzip-decompress.adb:1293:17 (reference)
unzip-decompress.adb:1303:17 (reference)
unzip-decompress.adb:1304:17 (reference)
unzip-decompress.adb:1305:17 (reference)
unzip-decompress.adb:1313:15 (reference)
unzip-decompress.adb:1314:15 (reference)
unzip-decompress.adb:1317:11 (reference)
unzip-decompress.adb:1318:11 (reference)
unzip-decompress.adb:1319:11 (reference)
unzip-decompress.adb:1335:15 (reference)
unzip-decompress.adb:1347:15 (reference)
unzip-decompress.adb:1357:17 (reference)
unzip-decompress.adb:1358:17 (reference)
unzip-decompress.adb:1368:17 (reference)
unzip-decompress.adb:1369:17 (reference)
unzip-decompress.adb:1377:15 (reference)
unzip-decompress.adb:1380:11 (reference)
unzip-decompress.adb:1381:11 (reference)
unzip-decompress.adb:1594:13 (reference)
unzip-decompress.adb:1600:9 (reference)
unzip-decompress.adb:1601:9 (reference)
unzip-decompress.adb:1671:13 (reference)
unzip-decompress.adb:1716:9 (reference)
unzip-decompress.adb:1727:13 (reference)
unzip-decompress.adb:1750:13 (reference)
unzip-decompress.adb:1757:9 (reference)
unzip-decompress.adb:1758:9 (reference)

Called by:

HufT_build defined at unzip-decompress-huffman.ads:42:13
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_fixed_block defined at unzip-decompress.adb:1554:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_fixed_block defined at unzip-decompress.adb:1554:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_fixed_block defined at unzip-decompress.adb:1554:17

Calls:

Put defined at a-textio.ads:245:14
Put_Line defined at a-textio.ads:266:14
Unchecked_Deallocation defined at a-uncdea.ads:20:15
UnZip.Decompress.Huffman.HufT_free.Dispose defined at unzip-decompress-huffman.adb:15:16
UnZip.Decompress.Huffman.HufT_free.Dispose defined at unzip-decompress-huffman.adb:17:16
Free huffman tables starting with table where t points to

HufT_build

procedure HufT_build 
( b: Length_array;
s: Integer;
d, e: Length_array;
tl: out p_Table_list;
m: in out Integer;
huft_incomplete: out Boolean);

References:

unzip-decompress-huffman.ads:42:13 (declaration)
unzip-decompress-huffman.adb:44:13 (body)
unzip-decompress-huffman.adb:334:7 (label)
unzip-decompress.adb:1243:13 (reference)
unzip-decompress.adb:1262:13 (reference)
unzip-decompress.adb:1287:15 (reference)
unzip-decompress.adb:1299:15 (reference)
unzip-decompress.adb:1331:13 (reference)
unzip-decompress.adb:1353:15 (reference)
unzip-decompress.adb:1364:15 (reference)
unzip-decompress.adb:1571:9 (reference)
unzip-decompress.adb:1579:11 (reference)
unzip-decompress.adb:1667:11 (reference)
unzip-decompress.adb:1721:11 (reference)
unzip-decompress.adb:1738:11 (reference)

Called by:

UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Explode defined at unzip-decompress.adb:122:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_dynamic_block defined at unzip-decompress.adb:1608:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_fixed_block defined at unzip-decompress.adb:1554:17
UnZip.Decompress.Decompress_data.UnZ_Meth.Inflate_fixed_block defined at unzip-decompress.adb:1554:17

Calls:

HufT_free defined at unzip-decompress-huffman.ads:39:13
Put defined at a-textio.ads:245:14
Put_Line defined at a-textio.ads:266:14
Shift_Left defined at interfac.ads:105:13
Shift_Right defined at interfac.ads:109:13
Build huffman table from code lengths given by array b.all