bool JSDOMApplicationCacheOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor) { JSDOMApplicationCache* jsDOMApplicationCache = static_cast<JSDOMApplicationCache*>(handle.get().asCell()); if (!isObservable(jsDOMApplicationCache)) return false; Frame* root = jsDOMApplicationCache->impl()->frame(); if (!root) return false; return visitor.containsOpaqueRoot(root); }
bool JSTestInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor) { JSTestInterface* jsTestInterface = static_cast<JSTestInterface*>(handle.get().asCell()); if (jsTestInterface->impl()->hasPendingActivity()) return true; if (!isObservable(jsTestInterface)) return false; UNUSED_PARAM(visitor); return false; }
bool JSStyleSheetListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor) { JSStyleSheetList* jsStyleSheetList = static_cast<JSStyleSheetList*>(handle.get().asCell()); if (!isObservable(jsStyleSheetList)) return false; Document* root = jsStyleSheetList->impl()->document(); if (!root) return false; return visitor.containsOpaqueRoot(root); }
bool JSStyleMediaOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor) { JSStyleMedia* jsStyleMedia = static_cast<JSStyleMedia*>(handle.get().asCell()); if (!isObservable(jsStyleMedia)) return false; Frame* root = jsStyleMedia->impl()->frame(); if (!root) return false; return visitor.containsOpaqueRoot(root); }
bool JSNamedNodeMapOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor) { JSNamedNodeMap* jsNamedNodeMap = static_cast<JSNamedNodeMap*>(handle.get().asCell()); if (!isObservable(jsNamedNodeMap)) return false; Element* element = jsNamedNodeMap->impl()->element(); if (!element) return false; void* root = WebCore::root(element); return visitor.containsOpaqueRoot(root); }
bool UniformValidBeliefSampler::sampleNear(State *state, const State *near, const double distance) { unsigned int attempts = 0; bool valid = false; do { sampler_->sampleUniformNear(state, near, distance); valid = si_->isValid(state) && isObservable(state) ; ++attempts; } while (!valid && attempts < attempts_); return valid; }
bool UniformValidBeliefSampler::sample(State *state) { unsigned int attempts = 0; bool valid = false; do { sampler_->sampleUniform(state); valid = si_->isValid(state) && isObservable(state); ++attempts; } while (!valid && attempts < attempts_); return valid; }
bool GaussianValidBeliefSampler::sampleNear(ompl::base::State *state, const ompl::base::State *near, const double distance) { bool result = false; unsigned int attempts = 0; ompl::base::State *temp = si_->allocState(); do { sampler_->sampleUniformNear(state, near, distance); bool v1 = si_->isValid(state) ; sampler_->sampleGaussian(temp, state, distance); bool v2 = si_->isValid(temp) ; if (v1 != v2) { if (v2 && isObservable(temp)) // state must be observable to be a valid FIRM node si_->copyState(state, temp); result = true; } ++attempts; } while (!result && attempts < attempts_); si_->freeState(temp); return result; }
bool GaussianValidBeliefSampler::sample(ompl::base::State *state) { bool result = false; unsigned int attempts = 0; ompl::base::State *temp = si_->allocState(); do { sampler_->sampleUniform(state); bool v1 = si_->isValid(state) ; sampler_->sampleGaussian(temp, state, stddev_); bool v2 = si_->isValid(temp) ; if (v1 != v2) { if (v2 && isObservable(temp)) // observability check must also be performed si_->copyState(state, temp); result = true; } ++attempts; } while (!result && attempts < attempts_); si_->freeState(temp); return result; }