Why is part of my code not executed?
===

I'm using Visual C++ to compile my plug-in for Cinema 4D.

        GeDebugOut("-->");
        subroot = NULL;
        head = NULL;
        tail = NULL;
        success = PolygonizeHierarchy(source, hh, head, tail, &subroot, malloc);
        if (!success) {
            /* .. */
        }
        String str("not set.");
        if (subroot) {
            GeDebugOut("yes");
            str = "yes!";
            GeDebugOut("Subroot name: " + subroot->GetName());
        }
        else {
            GeDebugOut("no");
            str = "no!";
        }
        GeDebugOut("Is there a subroot?   " + str);
        GeDebugOut("<--");

The expected output is the following:

    -->
    yes
    Subroot name: Cube
    Is there a subroot?  yes
    <--

(or the same with "no" instead.) But I get

    -->
    yes
    <--

<br />
**Why are two prints missing here?**
