I would do the cheaper test first, <code> if (ctx->launch_directory && !IsAbsolute...) </code> so as to save the (comparatively expensive) function calls when their results are going to be ignored anyway.