In computer programming, oxbow code refers to fragments of program code that were once needed but which are now never used. Such code is typically formed when a program is modified, either when an item is superseded with a newer version but the old version is not removed, or when an item is removed or replaced, but the item's supporting code is not removed.
Such code is normally removed unless sufficiently amusing or educational.
Similarly, variables and data structures can be left around after the last code that used them has been removed, though this is more commonly called unused or unreferenced variables.
The term is taken by analogy with oxbow lakes which are formed in nature when a bend in a river becomes so pronounced that the water breaks through from before the bend to after it, making the river straight again. When the sides of the new course silt up, a curved lake is left, disconnected from the main stream.
Examples
(from gnash/server/asobj/Global.cpp 1.46)
static void
as_global_escape(const fn_call& fn)
{
// List of chars we must convert to escape sequences
const string strHexDigits = "0123456789ABCDEF";
string strInput = fn.arg(0).to_string();
URL::encode(strInput);
fn.result->set_string(strInput.c_str());
}
In this, "strHexDigits" is oxbow code (or oxbow data).