char *widget_id = NULL;
char *instance_id = NULL;
char *sender_pkgid = NULL;
+ char *is_faulted = NULL;
int *status;
size_t status_sz = 0;
struct lifecycle_local_s *cb_info;
bundle_get_byte(envelope, AUL_K_WIDGET_STATUS, (void **)&status, &status_sz);
bundle_get_str(envelope, AUL_K_COM_SENDER_PID, &sender_pid_str);
bundle_get_str(envelope, AUL_K_PKGID, &sender_pkgid);
+ bundle_get_str(envelope, AUL_K_WIDGET_FAULT, &is_faulted);
if (widget_id == NULL || status == NULL) {
_E("undefined class or instance %s of %s", instance_id, widget_id);
}
}
- if (*status == AUL_WIDGET_LIFE_CYCLE_EVENT_APP_DEAD) {
+ if (*status == AUL_WIDGET_LIFE_CYCLE_EVENT_APP_DEAD &&
+ is_faulted && !strcmp(is_faulted, "true")) {
_D("handle dead widget instances");
__fault_handler(sender_pid);
}