private void IntegrateQueryMemory(IAndroidLogcatTaskResult result)
        {
            m_RequestsInQueue--;
            if (m_RequestsInQueue < 0)
            {
                m_RequestsInQueue = 0;
                throw new Exception("Receiving more memory results than requested ?");
            }
            var memoryResult = (AndroidLogcatQueryMemoryResult)result;

            // When selecting a new package, there might be still few requests for other packages running on other threads
            // Ignore those
            if (m_ExpectedPackageFromRequest == null || m_ExpectedDevice == null)
            {
                return;
            }

            if (memoryResult.packageProcessId != m_ExpectedPackageFromRequest.processId ||
                memoryResult.deviceId != m_ExpectedDevice.Id ||
                string.IsNullOrEmpty(memoryResult.contents))
            {
                return;
            }

            if (memoryResult.contents.Contains("No process found for:"))
            {
                m_ExpectedPackageFromRequest.SetExited();
                m_Parent.Repaint();
                return;
            }

            var stats = AllocateMemoryStatistics();

            try
            {
                stats.Parse(memoryResult.contents);
            }
            catch (Exception ex)
            {
                stats.Clear();
                AndroidLogcatInternalLog.Log(ex.Message);
            }
            UpdateGeneralStats();

            m_Parent.Repaint();
        }