From 31e170379d567a71f1792e0bad9aea6ca3c6478a Mon Sep 17 00:00:00 2001 From: pzread Date: Tue, 9 Apr 2013 09:37:29 +0800 Subject: Fix segment fault(use deleted memory). Add square-problem manage. Check setting file exist --- toj/center/src/center_judge.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'toj/center/src/center_judge.h') diff --git a/toj/center/src/center_judge.h b/toj/center/src/center_judge.h index 99a3cf9..a955ce9 100755 --- a/toj/center/src/center_judge.h +++ b/toj/center/src/center_judge.h @@ -22,6 +22,7 @@ public: int submit(judge_submit_info *submit_info); int result(int subid,char *res_data); int updatepro(std::vector > &pro_list); + int updatejmod(std::vector > &jmod_list); }; class judge_conn : public netio{ @@ -58,7 +59,7 @@ public: int send_setid(int judgeid); int send_submit(judge_submit_info* submit_info); int send_setpro(std::vector > &pro_list,int type); - int send_setjmod(char **jmod_name,int *cacheid,int type,int count); + int send_setjmod(std::vector > &jmod_list,int type); virtual int readidle(); }; @@ -70,13 +71,13 @@ public: char *set_data; size_t set_len; - judge_submit_info(int subid,int proid,int lang,char *setdata,size_t setlen){ + judge_submit_info(int subid,int proid,int lang,char *set_data,size_t set_len){ this->subid = subid; this->proid = proid; this->lang = lang; - this->set_data = new char[setlen]; - memcpy(this->set_data,setdata,setlen); - this->set_len = setlen; + this->set_data = new char[set_len]; + memcpy(this->set_data,set_data,set_len); + this->set_len = set_len; } ~judge_submit_info(){ delete this->set_data; @@ -92,8 +93,9 @@ static std::queue judge_submitqueue; int center_judge_init(); void* center_judge_addconn(int fd); int center_judge_dispatch(int evflag,void *data); -int center_judge_submit(int subid,int proid,int lang,char *setdata,size_t setlen); +int center_judge_submit(int subid,int proid,int lang,char *set_data,size_t set_len); int center_judge_updatepro(std::vector > &pro_list); +int center_judge_updatejmod(std::vector > &jmod_list); extern int center_manage_result(int subid,char *res_data); extern center_pro_info* center_manage_getprobyid(int proid); -- cgit v1.2.3