Help! Memory leakage in Iport module
EugenKo
Posts: 3
Hi!
Sorry for a bad english.
I have an a greate trouble thith Sonance NeLinx iport module, then im`e using tracks, named in russian.
If all tracks named in english, all working well, but then i`me trying to play, stop or list forward- backvward tracks, named in russian, i have an eror like this:
Line 47 :: Ref Error ? Index to large - 14:41:38
Line 48 :: DoNumberExpression - Error 2 Tk=0x2010 - 14:41:38
Line 49 :: GetNumber - Error 1 Tk=0x0000 - 14:41:38
Line 50 :: GetReference - Error Tk=0x2000 Add=0x09941C - 14:41:38
Line 51 :: DoNumberExpression - Error 1 Tk=0x301A - 14:41:38
Line 52 :: GetNumber - Error 1 Tk=0x0000 - 14:41:38
Line 53 :: RunCode - Address Mismatch 0x4050 0x09941E 0x099428 - 14:41:38
Line 54 :: Memory Available = 1978952 <10120> - 14:42:38
Line 55 :: Memory Available = 1968032 <10920> - 14:42:42
Line 56 :: Memory Available = 1957368 <10664> - 14:42:46
....
Line 229 :: CHeap::New - Insufficient memory for alloc! Task=tInterpreter) - 14:54:07
Line 230 :: CHeap::New - Error (Task=tInterpreter) - 14:54:07
Line 231 :: RunCode - DevUnion Allocation failed - 14:54:07
My system consist of:
Ni-4100
6xMioR4`s
2xMVP8400
Have an opinion?
Tnx!
Sorry for a bad english.
I have an a greate trouble thith Sonance NeLinx iport module, then im`e using tracks, named in russian.
If all tracks named in english, all working well, but then i`me trying to play, stop or list forward- backvward tracks, named in russian, i have an eror like this:
Line 47 :: Ref Error ? Index to large - 14:41:38
Line 48 :: DoNumberExpression - Error 2 Tk=0x2010 - 14:41:38
Line 49 :: GetNumber - Error 1 Tk=0x0000 - 14:41:38
Line 50 :: GetReference - Error Tk=0x2000 Add=0x09941C - 14:41:38
Line 51 :: DoNumberExpression - Error 1 Tk=0x301A - 14:41:38
Line 52 :: GetNumber - Error 1 Tk=0x0000 - 14:41:38
Line 53 :: RunCode - Address Mismatch 0x4050 0x09941E 0x099428 - 14:41:38
Line 54 :: Memory Available = 1978952 <10120> - 14:42:38
Line 55 :: Memory Available = 1968032 <10920> - 14:42:42
Line 56 :: Memory Available = 1957368 <10664> - 14:42:46
....
Line 229 :: CHeap::New - Insufficient memory for alloc! Task=tInterpreter) - 14:54:07
Line 230 :: CHeap::New - Error (Task=tInterpreter) - 14:54:07
Line 231 :: RunCode - DevUnion Allocation failed - 14:54:07
My system consist of:
Ni-4100
6xMioR4`s
2xMVP8400
Have an opinion?
Tnx!
0
Comments
There was a similar issue to this in an older version of the iPort Netlinx module. Which version of the module are you currently using? If needed, I can send you version 3.2 which works well with the R4 devices.
I might be dumb, but I can't find version 3.2 on the website.
Could you send it to me as well because I am having some issues with an R4 install?
Thanks
the8thst@gmail.com
I will send you v3.2 shortly.
That is debatable on certain days...
Thanks for the email.
I`me tryed 2.0 and 3.0 with similar results.
My e-mail eugen@pccenter.ru
Thank You!
I F**k with this error about week
There is a BUG!!! in UnicodeLib.axi
You need to add some checks to WC_DECODE function in UTF8 section:
When this funcion get broken (cutted) 2 or 3-byte UTF-8 symbol for decode you have a problem with "cData[lPos+1]" & "cData[lPos+2]"
// 0x80-0x7FF (2^11), encode as 2 bytes
// 0xC2 0x80 -> 0x0080
// 0xDF 0xBF -> 0x07FF
ACTIVE (nChar <= $DF):
//add by pillbox
if (lPos+1<=LENGTH_ARRAY(cData))
//end pillbox
{
nChar = TYPE_CAST(nChar & $1F) // grab lower 5 bits (110xxxxx)
nChar = TYPE_CAST(nChar << 6) // shift those 5 bits up leaving room for 6 more bits
nChar = nChar + TYPE_CAST(cData[lPos+1] & $3F) // add 6 bits from next byte (10xxxxxx)
wcOut[lCharsOut] = TYPE_CAST(nChar)
lPos++ // skip one byte
} else BREAK
// 0x800-0xFFFF (2^16), encode as 3 bytes
// 0xE0 0xA0 0x80 -> 0x0800
// 0xEF 0xBF 0xBF -> 0xFFFF
ACTIVE (1):
//add by pillbox
if (lPos+2<=LENGTH_ARRAY(cData))
//end pillbox
{
nChar = TYPE_CAST(nChar & $0F) // grab lower 4 bits (1110xxxx)
nChar = TYPE_CAST(nChar << 12) // shift those 4 bits up leaving room for 12 more bits
nChar = nChar + TYPE_CAST((cData[lPos+1] & $3F) << 6) // add 6 bits from next byte (10xxxxxx)
nChar = nChar + TYPE_CAST(cData[lPos+2] &$3F) // add 6 bits from next next byte (10xxxxxx)
wcOut[lCharsOut] = TYPE_CAST(nChar)
lPos = lPos + 2 // skip two bytes
}else BREAK
All working Fine now!
Thank you, it was a very helpful!