Nux

lp:~vanvugt/nux/fix-785118

Created by Daniel van Vugt and last modified
Get this branch:
bzr branch lp:~vanvugt/nux/fix-785118
Only Daniel van Vugt can upload to this branch. If you are Daniel van Vugt please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Daniel van Vugt
Project:
Nux
Status:
Merged

Recent revisions

359. By Daniel van Vugt

Merged with upstream changes from lp:nux

358. By Daniel van Vugt

Fix mismatched new[]/delete calls. This reduces noise in valgrind logs
by around 96% (!?) (LP: #785118)

357. By Alexandros Frantzis

Use glGetAttribLocationARB() to get the location index of a shader attribute (LP: #790634).

From the GL spec for glGetActiveAttrib(): "Note that index simply identifies a
member in a list of active attributes, and has no relation to the generic
attribute that the corresponding variable is bound to".

This should fix the black screens for the GLSL code path on Mesa and presumably
other drivers.

356. By Daniel van Vugt

Fix an X11 Display leak, causing window leaks and graphics corruption (LP: #769957)

Details:

Fixed an X11 Display leak, which caused Window leaks of the XInputWindows for the Unity panel and launcher. This created graphics corruption each time the Unity plugin restarted (other plugins toggled).

Possibly also fixed other window/resource leaks in nux/unity which were side effects of the same display leak.

Technical notes:

1. The Window objects being leaked are the _window members of XInputWindow used by BaseWindow::m_input_window. While the destructor of XInputWindow does correctly call XDestroyWindow for these, they are still leaked because the DestroyWindow request never reaches the X server. That's because XDestroyWindow only queues the destroy request and does not guarantee it has or will be completed. The display parameter to XDestroyWindow is the display being leaked, and as such never flushes or completes any of its pending requests such as the destroy request.

2. Given technical note #1, it is likely that a simpler workaround for this window leak problem would be to add an XFlush call to the end of XInputWindow::~XInputWindow(). That would be a simpler, more benign and compatible fix for bug 769957, however that would not fix the display leak which is the root cause of the problem. This merge proposal fixes all related leaks by removing the Display leak, which then causes the leaking windows to be destroyed also.

355. By Jay Taoko

* Removed unnecessary assertion in NThreadLocalStorage::RegisterTLS. Fixed returned result.
* Added NThreadLocalStorage::UnRegisterTLS

354. By Jay Taoko

* Object::Dispose() now does the same thing as Object::UnReference()
* Fixed memory leak in UXTheme::Load2DTextureFile
* Mesh Resource manager
    - Fixed mesh Resource manager pipeline
    - See example ProgObjMeshLoader

* Fixed GLSL Shaders in FontRendering.cpp
    - removed global variable USE_ARB_SHADERS and replaced with GraphicsEngine::UsingGLSLCodePath()

* Removing files IniFile.cpp/.h
* Removing files UIColorTheme.cpp/.h

353. By Tim Penhey

Include cstddef in SystemTypes to get the std::size_t definition.

352. By Tim Penhey

Remove the unused StremBuffer implementation in NuxCore.

351. By Tim Penhey

Remove the unused Namespace.h header.

350. By Bilal Akhtar

Make compilation on GCC 4.5 and below, as strict as that on GCC 4.6 .

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:nux
This branch contains Public information 
Everyone can see this information.

Subscribers