瀏覽代碼

Another follow up of c4fe3be0a13b6dfa993a9d07029735c4f4c16164, `sc` null pointer check is done too eearly. Thank @Lemongrass3110

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Cydh Ramdh 9 年之前
父節點
當前提交
ecb70d47f3
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      src/map/status.c

+ 7 - 7
src/map/status.c

@@ -3748,20 +3748,20 @@ void status_calc_atk_ele_pc(struct map_session_data *sd, struct status_change *s
 	int i = 0;
 
 	nullpo_retv(sd);
-	
+
 	memset(sd->magic_addele, 0, sizeof(sd->magic_addele));
 	memset(sd->right_weapon.addele, 0, sizeof(sd->right_weapon.addele));
 	memset(sd->left_weapon.addele, 0, sizeof(sd->left_weapon.addele));
 
-	if (!sc || !sc->count)
-		return;
-
 	if ((i = pc_checkskill(sd, AB_EUCHARISTICA)) > 0) {
 		sd->right_weapon.addele[ELE_DARK] += i;
 		sd->left_weapon.addele[ELE_DARK] += i;
 		sd->magic_addele[ELE_DARK] += i;
 	}
 
+	if (!sc || !sc->count)
+		return;
+
 	if (sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3)
 		sd->magic_addele[ELE_FIRE] += 25;
 	if (sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 3)
@@ -3785,9 +3785,6 @@ void status_calc_def_ele_pc(struct map_session_data *sd, struct status_change *s
 
 	memset(sd->subele, 0, sizeof(sd->subele));
 
-	if (!sc || !sc->count)
-		return;
-
 	if ((i = pc_checkskill(sd,CR_TRUST))>0)
 		sd->subele[ELE_HOLY] += i * 5;
 
@@ -3799,6 +3796,9 @@ void status_calc_def_ele_pc(struct map_session_data *sd, struct status_change *s
 	if ((i = pc_checkskill(sd, AB_EUCHARISTICA)) > 0)
 		sd->subele[ELE_DARK] += i;
 
+	if (!sc || !sc->count)
+		return;
+
 	if (sc->data[SC_SIEGFRIED]) {
 		i = sc->data[SC_SIEGFRIED]->val2;
 		sd->subele[ELE_WATER] += i;