Skip to content

Commit 63ed1d4

Browse files
committed
优化一处可能频繁申请并释放无用内存的问题。
1 parent 086260a commit 63ed1d4

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

kbe/src/server/cellappmgr/cellappmgr.cpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,6 @@ void Cellappmgr::reqCreateInNewSpace(Mercury::Channel* pChannel, MemoryStream& s
199199
static SPACE_ID spaceID = 1;
200200

201201
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
202-
ForwardItem* pFI = new ForwardItem();
203-
pFI->pHandler = NULL;
204-
205-
pFI->pBundle = pBundle;
206202
(*pBundle).newMessage(CellappInterface::onCreateInNewSpaceFromBaseapp);
207203
(*pBundle) << entityType;
208204
(*pBundle) << id;
@@ -223,14 +219,16 @@ void Cellappmgr::reqCreateInNewSpace(Mercury::Channel* pChannel, MemoryStream& s
223219
if(cinfos == NULL || cinfos->pChannel == NULL)
224220
{
225221
WARNING_MSG("Cellappmgr::reqCreateInNewSpace: not found cellapp, message is buffered.\n");
222+
ForwardItem* pFI = new ForwardItem();
223+
pFI->pHandler = NULL;
224+
pFI->pBundle = pBundle;
226225
forward_cellapp_messagebuffer_.push(pFI);
227226
return;
228227
}
229228
else
230229
{
231230
(*pBundle).send(this->networkInterface(), cinfos->pChannel);
232231
Mercury::Bundle::ObjPool().reclaimObject(pBundle);
233-
SAFE_RELEASE(pFI);
234232
}
235233
}
236234

@@ -248,10 +246,6 @@ void Cellappmgr::reqRestoreSpaceInCell(Mercury::Channel* pChannel, MemoryStream&
248246
s >> spaceID;
249247

250248
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
251-
ForwardItem* pFI = new ForwardItem();
252-
pFI->pHandler = NULL;
253-
254-
pFI->pBundle = pBundle;
255249
(*pBundle).newMessage(CellappInterface::onRestoreSpaceInCellFromBaseapp);
256250
(*pBundle) << entityType;
257251
(*pBundle) << id;
@@ -272,14 +266,16 @@ void Cellappmgr::reqRestoreSpaceInCell(Mercury::Channel* pChannel, MemoryStream&
272266
if(cinfos == NULL || cinfos->pChannel == NULL)
273267
{
274268
WARNING_MSG("Cellappmgr::reqRestoreSpaceInCell: not found cellapp, message is buffered.\n");
269+
ForwardItem* pFI = new ForwardItem();
270+
pFI->pHandler = NULL;
271+
pFI->pBundle = pBundle;
275272
forward_cellapp_messagebuffer_.push(pFI);
276273
return;
277274
}
278275
else
279276
{
280277
(*pBundle).send(this->networkInterface(), cinfos->pChannel);
281278
Mercury::Bundle::ObjPool().reclaimObject(pBundle);
282-
SAFE_RELEASE(pFI);
283279
}
284280
}
285281

0 commit comments

Comments
 (0)