final protected FrameType modifyFrame(FrameType orig, @CheckForNull FrameType copy) {
        if (copy == null) {
            copy = createFact();
            copy.copyFrom(orig);
        }
        return copy;
    }
final protected FrameType modifyFrame ( FrameType orig , @ CheckForNull FrameType copy ) { if ( copy == null ) { copy = createFact ( ) ; copy . copyFrom ( orig ) ; } return copy ; }
<p>Create a modifiable copy of a frame. This is useful for meetInto(), if
the frame needs to be modified in a path-sensitive fashion. A typical
usage pattern is:
</p>

<pre>
FrameType copy = null;
if (someCondition()) {
copy = modifyFrame(fact, copy);
// modify copy
}
if (someOtherCondition()) {
copy = modifyFrame(fact, copy);
// modify copy
}
if (copy != null)
fact = copy;
mergeInto(fact, result);
</pre>
<p>
The advantage of using modifyFrame() is that new code can be added before
or after other places where the frame is modified, and the code will
remain correct.</p>

@param orig
the original frame
@param copy
the modifiable copy (returned by a previous call to
modifyFrame()), or null if this is the first time
modifyFrame() is being called
@return a modifiable copy of fact