mIRC Home    About    Download    Register    News    Help

Print Thread
#272005 01/09/23 09:45 PM
Joined: Feb 2023
Posts: 43
Ameglian cow
OP Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
I didn't tested on other Windows version, but on my Win11 the last 7.75 version is crashing after some time running

I reverted back to 7.74 and I got no more crashs so far...

Joined: Dec 2002
Posts: 5,426
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,426
Thanks for your bug report. I have been running a copy of mIRC 7.75 for several days here on multiple servers/channels with no issues.

When you say "after some time running", how long do you mean? A few minutes, a few hours, a few days?

In order to track down this issue, please follow these steps:

1) Install mIRC 7.75 into a clean, empty folder with no DLLs, scripts, etc. using the portable option in the installer.
2) Run mIRC, connect to servers, join channels, etc.

Do you see the same issue with the clean install of mIRC?

If you do not, is it possible that one of your scripts is causing the issue? You will need to try to narrow down the cause of the issue so that we can try to reproduce it.

Udpate: I have been looking at the source code changes between 7.74/7.75 and have so far not been able to see anything that would cause this.

Last edited by Khaled; 02/09/23 12:26 PM.
Joined: Feb 2023
Posts: 43
Ameglian cow
OP Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
The crash happens after some hours running. I also got it on 7.74 this night.
I'm using Windows 11 insider preview, so could also be a Windows problem.

I'll try to reproduce on a clean 7.75 mirc folder and I'll bring back more info about it.

By the way, here a screenshot of the bug

[Linked Image from i.imgur.com]

Joined: Dec 2002
Posts: 5,426
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,426
In the image you've attached, it looks like /toolbar is unable to allocate memory because Windows is reporting that there is no memory available. When Windows reports that there is no memory available, there could be several causes, eg. a script that is not freeing memory correctly, or another application that is using available Windows memory, or a bug in mIRC itself where it is not freeing memory in some contexts. You will need to narrow down the issue to establish what is causing this.

Joined: Feb 2023
Posts: 43
Ameglian cow
OP Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
I'll keep running a clean mIRC 7.75 to see if I can reproduce the bug on it.

Joined: Feb 2023
Posts: 43
Ameglian cow
OP Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
The clean mirc didn't crashed so far.

So I made some changes on my lagbar script, and it seems that 1 single line solved the problem

I added the line clear @lag.win

this is my lagbar script, it executes every 10 seconds to refresh @lag.win and maybe the /drawpic was eating the memory after some hours.
So I added the /clear in the cicle to keep the @lag.win with low buffer, and it seems to have worked

Code
alias lag.small {
  if ($hget(txlag,curlag) == ......) && ($1 != ✖) { var %cor.em 32764 }
  elseif ($hget(txlag,curlag) < 0.22) && ($1 != ✖) { var %lem 1 | var %cor.em 777777 }
  elseif ($hget(txlag,curlag) >= 0.22) && ($hget(txlag,curlag) < 0.5) && ($1 != ✖) { var %lem 2 | var %cor.em 65458 }
  elseif ($hget(txlag,curlag) >= 0.5) && ($hget(txlag,curlag) < 0.75) && ($1 != ✖) { var %lem 3 | var %cor.em 65535 }
  elseif ($hget(txlag,curlag) >= 0.75) && ($hget(txlag,curlag) < 1) && ($1 != ✖) { var %lem 4 | var %cor.em 32764 }
  elseif ($hget(txlag,curlag) >= 1) && ($1 != ✖) { var %lem 5 | var %cor.em 255 }
  if ($1 == ✖) || (!$server) { var %cor.em 255 | var %lem off }
  if ($1 == ✔) { var %cor.em 777777 | var %lem on }
  if ($1 == ➠) { var %cor.em 16757849 | var %lem ing }
  if ($1 == 🔵) { var %cor.em 16757849 | var %lem gre }
  var %l = $hget(txlag,curlag),%t =    Lag: $lag.isms($hget(txlag,curlag))

  clear @lag.win

  drawrect -nrf @lag.win $iif(%tema == claro,$lag.face,2631720) 1 0 0 335 26
  if ($server) {
    drawtext -nr @lag.win $color(%lagtema) %fonte $iif($dbuh == 2.5,-10,-14) $int($calc((269 - $width(    Lag: ......, %fonte, $iif($dbuh == 2.5,-17,-25))) / 2)) 0 $iif(!$2,%t,$2)
    drawpic -t @lag.win 0 0 -2 $+(lagbar\lag,%lem,.gif)
    /toolbar -pt Away "💤 Away $iif(%away.barra = on,(você está away),(você está disponível)) $+ " $iif(%away.barra = on,sistema\imagens\away2.ico,sistema\imagens\away1.ico) "/abriraway" @Away
  }
  else {
    drawtext -nr @lag.win $color(%lagtema) %fonte $iif($dbuh == 2.5,-10,-14) $int($calc((269 - $width(    Lag: ......, %fonte, $iif($dbuh == 2.5,-17,-25))) / 2)) 0 $iif(!$2,    Desconectado,$2)
    drawpic -t @lag.win 0 0 -2 $+(lagbar\lag,%lem,.gif)
    /toolbar -pt Away "💤 Away (você está desconectado)" sistema\imagens\away3.ico "/abriraway" @Away
  }
  drawrect $+(-nr,$lag.oval) @lag.win $color(%lagtema) 1 174 3 105 17
  drawrect $+(-nrf,$lag.oval) @lag.win %cor.em 1 176 5 $iif(%l > 1,$iif(%l != ......,101,0),$int($calc(%l * 100))) 13
  drawdot @lag.win
}

edit:
it just crashed a few time after my commentary lol

I made another modification on my code and will keep testing

Code
alias lag.small {
  if ($hget(txlag,curlag) == ......) && ($1 != ✖) { var %cor.em 32764 }
  elseif ($hget(txlag,curlag) < 0.22) && ($1 != ✖) { var %lem 1 | var %cor.em 777777 }
  elseif ($hget(txlag,curlag) >= 0.22) && ($hget(txlag,curlag) < 0.5) && ($1 != ✖) { var %lem 2 | var %cor.em 65458 }
  elseif ($hget(txlag,curlag) >= 0.5) && ($hget(txlag,curlag) < 0.75) && ($1 != ✖) { var %lem 3 | var %cor.em 65535 }
  elseif ($hget(txlag,curlag) >= 0.75) && ($hget(txlag,curlag) < 1) && ($1 != ✖) { var %lem 4 | var %cor.em 32764 }
  elseif ($hget(txlag,curlag) >= 1) && ($1 != ✖) { var %lem 5 | var %cor.em 255 }
  if ($1 == ✖) || (!$server) { var %cor.em 255 | var %lem off }
  if ($1 == ✔) { var %cor.em 777777 | var %lem on }
  if ($1 == ➠) { var %cor.em 16757849 | var %lem ing }
  if ($1 == 🔵) { var %cor.em 16757849 | var %lem gre }
  var %l = $hget(txlag,curlag),%t =    Lag: $lag.isms($hget(txlag,curlag))

  clear @lag.win

  drawrect -nrf @lag.win $iif(%tema == claro,$lag.face,2631720) 1 0 0 335 26
  if ($server) {
    drawtext -nr @lag.win $color(%lagtema) %fonte $iif($dbuh == 2.5,-10,-14) $int($calc((269 - $width(    Lag: ......, %fonte, $iif($dbuh == 2.5,-17,-25))) / 2)) 0 $iif(!$2,%t,$2)
    drawpic -t @lag.win 0 0 -2 $+(lagbar\lag,%lem,.gif)
    if (%away.barra = on) /toolbar -ptlo Away "💤 Away (você está away)" sistema\imagens\away2.ico "/abriraway" @Away
    if (%away.barra = off) /toolbar -ptlo Away "💤 Away (você está disponível)" sistema\imagens\away1.ico "/abriraway" @Away
  }
  else {
    drawtext -nr @lag.win $color(%lagtema) %fonte $iif($dbuh == 2.5,-10,-14) $int($calc((269 - $width(    Lag: ......, %fonte, $iif($dbuh == 2.5,-17,-25))) / 2)) 0 $iif(!$2,    Desconectado,$2)
    drawpic -t @lag.win 0 0 -2 $+(lagbar\lag,%lem,.gif)
    /toolbar -ptlo Away "💤 Away (você está desconectado)" sistema\imagens\away3.ico "/abriraway" @Away
  }
  drawrect $+(-nr,$lag.oval) @lag.win $color(%lagtema) 1 174 3 105 17
  drawrect $+(-nrf,$lag.oval) @lag.win %cor.em 1 176 5 $iif(%l > 1,$iif(%l != ......,101,0),$int($calc(%l * 100))) 13
  drawdot @lag.win
}

edit2:
I just saw this on help file
Quote
The -c switch indicates that the bitmap should be cached. This greatly speeds up subsequent references to this bitmap. If you specify -c and the bitmap is already in the cache, it is loaded and used from the cache, otherwise it is reloaded from the file. You can clear the entire cache with /drawpic -c.

so I included a -c on the drawpic, and will test now

Last edited by Piratoshi; 03/09/23 12:09 PM. Reason: testing drawpic -c
Joined: Dec 2002
Posts: 5,426
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,426
I created a script that called /drawpic thousands of times, using the same switches, etc. as your script but it did not reproduce the issue.

However, you use /toolbar -pt in your script to update the toolbar button repeatedly. When I created a small alias to test this, it reproduced the issue. The issue is due to /toolbar -pt not correctly freeing the previously loaded icon file when replacing the button. This is actually quite an old bug that has been around for a decade or two.

This has been fixed for the next version. Thanks for your help.

Joined: Aug 2003
Posts: 319
P
Pan-dimensional mouse
Offline
Pan-dimensional mouse
P
Joined: Aug 2003
Posts: 319
If anyone were ever to complain to me about the quality of Khaled's support for mIRC, I would only need to refer them to this thread to see just how brilliant it is i.e. in my opinion, second to none!!

Joined: Feb 2023
Posts: 43
Ameglian cow
OP Offline
Ameglian cow
Joined: Feb 2023
Posts: 43
Thank you Khaled !!!! 🙏

😽😽😽


Link Copied to Clipboard