|
@@ -407,6 +407,7 @@ void laShutoff(){
|
|
|
laSharedTypeItem* sti; while(sti=lstPopItem(&MAIN.SharedTypePointerSync)){ memFree(sti); }
|
|
|
laKeyMapItem* kmi; while(kmi=lstPopItem(&MAIN.KeyMap.Items)){ la_FreeKeyMapItem(kmi); }
|
|
|
laTheme* t; while(t=lstPopItem(&MAIN.Themes)){ la_DestroyTheme(t); }
|
|
|
+ laPanel* p; while(p=lstPopItem(&MAIN.WastedPanels)){ memFree(p); }
|
|
|
|
|
|
arrFree(&MAIN.InputBuf,&MAIN.InputBufNext);
|
|
|
arrFree(&MAIN.InputBufU,&MAIN.InputBufUNext);
|
|
@@ -1840,8 +1841,16 @@ void la_EnsurePanelExtras(laPanel *p){
|
|
|
p->PropLinkPP.LastPs->Type = L'.';
|
|
|
p->PropLinkFakePS.p = p->PropLinkFakeProp;
|
|
|
}
|
|
|
+laPanel* la_GivePanelNode(){
|
|
|
+ laPanel* p; if(p=lstPopItem(&MAIN.WastedPanels)) return p;
|
|
|
+ return memAcquire(sizeof(laPanel));
|
|
|
+}
|
|
|
+void la_ReturnPanelNode(laPanel* p){
|
|
|
+ memset(p,0,sizeof(laPanel));
|
|
|
+ lstAppendItem(&MAIN.WastedPanels, p);
|
|
|
+}
|
|
|
laPanel *la_NewPanel(laUiTemplate* uit, int X, int Y, int W, int H, int MaxW, int MaxH, int MinW, int MinH, int SnapL, int SnapR, int SnapT, int SnapB){
|
|
|
- laPanel *p = memAcquireHyper(sizeof(laPanel));
|
|
|
+ laPanel *p = la_GivePanelNode();
|
|
|
int CW = MAIN.CurrentWindow->CW;
|
|
|
int CH = MAIN.CurrentWindow->CH;
|
|
|
p->PanelTemplate = uit;
|
|
@@ -2138,7 +2147,7 @@ void laDeferredDestroyPanel(laPanel *p){
|
|
|
|
|
|
memFree(p->PropLinkContainer); memFree(p->PropLinkFakeProp);
|
|
|
|
|
|
- memFree(p);
|
|
|
+ la_ReturnPanelNode(p);
|
|
|
}
|
|
|
void laDestroySinglePanel(laPanel *p){
|
|
|
la_SetPropMathcerContext(p);
|