mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-28 08:07:31 -04:00
Fixed crash after last commit in p3idservice.cc.
Fixed memory leaks and possible crashs in ::getGroupData - p3gxschannels - p3gxscircles - p3gxsforums - p3idservice - p3posted - p3photoservice git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6524 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
3730645808
commit
f5218cdfc3
7 changed files with 143 additions and 109 deletions
|
@ -397,72 +397,78 @@ bool p3IdService::getReputation(const RsGxsId &id, GixsReputation &rep)
|
|||
|
||||
bool p3IdService::getGroupData(const uint32_t &token, std::vector<RsGxsIdGroup> &groups)
|
||||
{
|
||||
std::vector<RsGxsGrpItem*> grpData;
|
||||
bool ok = RsGenExchange::getGroupData(token, grpData);
|
||||
|
||||
std::vector<RsGxsGrpItem*> grpData;
|
||||
bool ok = RsGenExchange::getGroupData(token, grpData);
|
||||
if(ok)
|
||||
{
|
||||
std::vector<RsGxsGrpItem*>::iterator vit = grpData.begin();
|
||||
|
||||
if(ok)
|
||||
{
|
||||
std::vector<RsGxsGrpItem*>::iterator vit = grpData.begin();
|
||||
|
||||
for(; vit != grpData.end(); vit++)
|
||||
{
|
||||
RsGxsIdGroupItem* item = dynamic_cast<RsGxsIdGroupItem*>(*vit);
|
||||
RsGxsIdGroup group = item->group;
|
||||
group.mMeta = item->meta;
|
||||
|
||||
// Decode information from serviceString.
|
||||
SSGxsIdGroup ssdata;
|
||||
if (ssdata.load(group.mMeta.mServiceString))
|
||||
for(; vit != grpData.end(); vit++)
|
||||
{
|
||||
RsGxsIdGroupItem* item = dynamic_cast<RsGxsIdGroupItem*>(*vit);
|
||||
if (item)
|
||||
{
|
||||
group.mPgpKnown = ssdata.pgp.idKnown;
|
||||
group.mPgpId = ssdata.pgp.pgpId;
|
||||
RsGxsIdGroup group = item->group;
|
||||
group.mMeta = item->meta;
|
||||
|
||||
// Decode information from serviceString.
|
||||
SSGxsIdGroup ssdata;
|
||||
if (ssdata.load(group.mMeta.mServiceString))
|
||||
{
|
||||
group.mPgpKnown = ssdata.pgp.idKnown;
|
||||
group.mPgpId = ssdata.pgp.pgpId;
|
||||
#ifdef DEBUG_IDS
|
||||
std::cerr << "p3IdService::getGroupData() Success decoding ServiceString";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "\t mGpgKnown: " << group.mPgpKnown;
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "\t mGpgId: " << group.mPgpId;
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "p3IdService::getGroupData() Success decoding ServiceString";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "\t mGpgKnown: " << group.mPgpKnown;
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "\t mGpgId: " << group.mPgpId;
|
||||
std::cerr << std::endl;
|
||||
#endif // DEBUG_IDS
|
||||
}
|
||||
else
|
||||
{
|
||||
group.mPgpKnown = false;
|
||||
group.mPgpId = "";
|
||||
|
||||
std::cerr << "p3IdService::getGroupData() Failed to decode ServiceString";
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
|
||||
groups.push_back(group);
|
||||
delete(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
group.mPgpKnown = false;
|
||||
group.mPgpId = "";
|
||||
|
||||
std::cerr << "p3IdService::getGroupData() Failed to decode ServiceString";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "Not a Id Item, deleting!" << std::endl;
|
||||
delete(*vit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
groups.push_back(group);
|
||||
}
|
||||
delete *vit ;
|
||||
}
|
||||
|
||||
return ok;
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
bool p3IdService::getMsgData(const uint32_t &token, std::vector<RsGxsIdOpinion> &opinions)
|
||||
{
|
||||
GxsMsgDataMap msgData;
|
||||
bool ok = RsGenExchange::getMsgData(token, msgData);
|
||||
|
||||
|
||||
if(ok)
|
||||
{
|
||||
GxsMsgDataMap::iterator mit = msgData.begin();
|
||||
|
||||
|
||||
for(; mit != msgData.end(); mit++)
|
||||
{
|
||||
RsGxsGroupId grpId = mit->first;
|
||||
std::vector<RsGxsMsgItem*>& msgItems = mit->second;
|
||||
std::vector<RsGxsMsgItem*>::iterator vit = msgItems.begin();
|
||||
|
||||
|
||||
for(; vit != msgItems.end(); vit++)
|
||||
{
|
||||
RsGxsIdOpinionItem* item = dynamic_cast<RsGxsIdOpinionItem*>(*vit);
|
||||
|
||||
|
||||
if (item)
|
||||
{
|
||||
RsGxsIdOpinion opinion = item->opinion;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue