The Memory Management Glossary
U

 Contents | News | Glossary | FAQ | Articles | Bibliography | Links | Feedback

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - Help

Our aim is for these entries to be accurate, comprehensible, and useful, and also to have an entry for all common memory management terms. If you can't find the term you're looking for, if our definition doesn't help you, or if you'd like to suggest corrections or additions, please let us know via our feedback page.

For an explanation of the structure of the entries, and information on how to link to definitions, please see the glossary help page.


unaligned (also known as misaligned)

An address is unaligned or misaligned if it does not comply with some alignment constraint on it.

For example, typically double precision floating point numbers occupy 8 bytes(1) and have an alignment of 4 bytes; that is, their address must be a multiple of four. If a program tries to access such a number using an address that is not a multiple of four, a bus error will result.

Opposites: aligned.
See also: alignment; bus error.

unboxed

Unboxed objects are represented by an encoding of the data itself, and not by a pointer to that data.

Representations are typically chosen so that unboxed values are the same size as the pointer part of a boxed object. Sometimes the value is tagged to distinguish it from a boxed object. The entire object is duplicated when the object is passed around, so updates to it, if allowed, only affect one copy.

Similar terms: immediate data.
Opposites: boxed.

Related publications:


undead

An undead object is an object that cannot be proven to be dead by the garbage collector, but whose liveness is dubious.

For example, an ambiguous reference to an object on a page may mark the entire page as reachable. No further data is collected about that page. The other objects on the page will survive, even though their reachability has not been determined. They are undead.

unmapped (also known as free(4))

A range of virtual addresses is said to be unmapped (free on Windows®) if there is no physical memory(2) associated with the range.

An unmapped range may or may not be reserved.

Opposites: mapped.

unreachable

An object is unreachable if there is no reference chain to it from any root.

An object will become unreachable when the mutator overwrites its last (direct or indirect) reference to the object.

Similar terms: dead.
Opposites: reachable; live.
See also: reachable; garbage collection.

unsure reference (for full details, see ambiguous reference)

An ambiguous or unsure reference is a value that is potentially a reference, but the collector(1) cannot prove that it is.

unwrapped (also known as raw)

A value is unwrapped or raw if it is not encoded with type information.

In a dynamically-typed language, the compiler may sometimes be able to pick a more compact or efficient representation for a value if it can prove that the type can be determined at compile-time. This is a particularly useful optimization for numeric values such as integers or floats.

Opposites: wrapped.
See also: boxed; tag; value object.

Related publications:


use after free (for full details, see premature free)

A premature free or use after free occurs when memory(2) is deallocated, but is later accessed.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - Help