Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.10.0
-
None
-
None
Description
Create TBufferedTransport by using its receiver funciton. and using TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. It make app crash.
details:
struct CliRoomData { 10: i32 roomId 20: string roomName 30: i32 masterUserId 40: map<i32, CliRoomUserData> mapUserData // key: user id value: CliRoomUserData 50: map<i32, CliRoomLevelData> mapLevelData // key: level id value: CliRoomLevelData 60: optional string groupId }
generated code which crashes the app:
// input haven't property `rstack` and `rpos` if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { input.rstack.pop(); }
code about the crash
const entity = new Protocols[className]() // create the thrift object to read from protocol return new Promise((resolve, reject) => { const receiver = thrift.TBufferedTransport.receiver((reader) => { // create buffered using library const protocol = new thrift.TCompactProtocol(reader) entity.read(protocol) // crash the app resolve(entity) }) receiver(payload) })