/// <summary>
        /// This removes the functions corresponding to the indices. All calls are removed from
        /// the call recording to these functions as well.
        /// </summary>
        /// <param name="rowIndices"></param>
        public void removeFunctions(List<int> rowIndices)
        {
            // Generate the list of destination addresses
            List<uint> functionAddresses = new List<uint>(rowIndices.Count);
            for (int i = 0; i < rowIndices.Count; i++)
            {
                if (rowIndices[i] >= 0 && rowIndices[i] < functions.Count)
                {
                    functionAddresses.Add(functions[rowIndices[i]].address);
                }
            }

            if( dataVis != null )
            {
                // Filter out the calls
                // Now lets filter out the calls to these function addresses
                dataVis = dataVis.clipOutCalls_addresses(functionAddresses);
            }

            // Remove the functions from the list
            FunctionSelectFromAddressArray selecter = new FunctionSelectFromAddressArray(functionAddresses);
            functions = functions.FindAll(selecter.isNotInList);
        }
 public void clipFunctions_address(List<uint> functionAddresses)
 {
     // Clip the function list
     FunctionSelectFromAddressArray selecter = new FunctionSelectFromAddressArray(functionAddresses);
     functions = functions.FindAll(selecter.isInList);
 }