Some information first:
  • I am using C++/CLI (C++ on windows with .NET bindings)
  • I am using the newest version of the TS3 Client


So my issue lies in the following code:
PHP Code:
1  |void rebuildChannelList(uint64 schid) {
2  |    ts3.logMessage("Rebuilding channeltree..."LogLevel_DEBUG"wk"schid);
3  |
4  |    Lists::channels->Clear(); // Empty current lists
5  |    Lists::errors->Clear();
6  |
7  |    uint64result;
8  |    int success ts3.getChannelList(schid, &result);
9  |
10 |    if (success) {
11 |        ts3.logMessage("Successfully got the channel list"LogLevel_DEBUG"wk"schid);
12 |        int i 0;
13 |        while (result[i] != NULL) {
14 |            Lists::channels->Add(result[i++]);
15 |        }
16 |        ts3.logMessage("Successfully built channel list"LogLevel_DEBUG"wk"schid);
17 |    }
18 |
19 |    ts3.freeMemory(result);
20 |    ts3.logMessage("Successfully freed channel tree memory"LogLevel_DEBUG"wk"schid);
21 |} 
Explaination:
  • The Lists::channels list has a type of uint64
  • In this state, it logs the lines 2 and 11
  • Without the while loop in line 13-15, the plugin crashes, but still logs line 16.
  • With the while loop, but without the freeMemory in line 19, the client still crashes and does not log line 16.
  • ONLY and ONLY when removing the loop and the freeMemory statement in line 19, the client starts.


So seemingly the error is in both right?
But I cant seem to find where it is, and it is mandatory that the IDs are used in a List<uint64>^ CLI structure.

Does anyone know a reason why this is happening? I have no idea anymore...