static void del_instance(T* o) { if (!is_instance(o)) return; m_instances.erase(m_instances.find(o)); }
static int length(oop java_string) { assert(initialized, "Must be initialized"); assert(is_instance(java_string), "must be java_string"); if (count_offset > 0) { return java_string->int_field(count_offset); } else { return ((typeArrayOop)java_string->obj_field(value_offset))->length(); } }
static int offset(oop java_string) { assert(initialized, "Must be initialized"); assert(is_instance(java_string), "must be java_string"); if (offset_offset > 0) { return java_string->int_field(offset_offset); } else { return 0; } }
int CLAMAPI Scan_GetOption(CClamAVScanner *pScanner, int option, void *value, unsigned long inputLength, unsigned long *outLength) { instance *inst; unsigned int whichopt; INFN(); if(!pScanner) FAIL(CL_ENULLARG, "NULL pScanner"); if(!value || !inputLength) FAIL(CL_ENULLARG, "NULL value"); if(lock_instances()) FAIL(CL_ELOCK, "failed to lock instances"); inst = (instance *)pScanner; if(!is_instance(inst)) { unlock_instances(); FAIL(CL_EARG, "invalid instance %p", inst); } switch(option) { case CLAM_OPTION_SCAN_ARCHIVE: whichopt = CL_SCAN_ARCHIVE; break; case CLAM_OPTION_SCAN_MAIL: whichopt = CL_SCAN_MAIL; break; case CLAM_OPTION_SCAN_OLE2: whichopt = CL_SCAN_OLE2; break; case CLAM_OPTION_SCAN_HTML: whichopt = CL_SCAN_HTML; break; case CLAM_OPTION_SCAN_PE: whichopt = CL_SCAN_PE; break; case CLAM_OPTION_SCAN_PDF: whichopt = CL_SCAN_PDF; break; case CLAM_OPTION_SCAN_ALGORITHMIC: whichopt = CL_SCAN_ALGORITHMIC; break; case CLAM_OPTION_SCAN_ELF: whichopt = CL_SCAN_ELF; break; case CLAM_OPTION_SCAN_SWF: whichopt = CL_SCAN_SWF; break; default: unlock_instances(); FAIL(CL_EARG, "Unsupported option: %d", option); } *(unsigned int *)value = (inst->scanopts & whichopt) != 0; unlock_instances(); WIN(); }
void florb::osmlayer::cb_download(void *userdata) { // This might be a callback for an already destroyed layer instance layer *l = static_cast<layer*>(userdata); if (!is_instance(l)) return; osmlayer *osml = dynamic_cast<osmlayer*>(l); if (!osml) return; osml->process_downloads(); }
int CLAMAPI Scan_SetScanCallback(CClamAVScanner *pScanner, CLAM_SCAN_CALLBACK pfnCallback, void *pContext) { instance *inst; logg("*in SetScanCallback(pScanner = %p, pfnCallback = %p, pContext = %p)\n", pScanner, pfnCallback, pContext); if(!pScanner) FAIL(CL_ENULLARG, "NULL pScanner"); if(lock_instances()) FAIL(CL_ELOCK, "failed to lock instances for instance %p", pScanner); inst = (instance *)pScanner; if(is_instance(inst)) { inst->scancb = pfnCallback; inst->scancb_ctx = pContext; unlock_instances(); WIN(); } unlock_instances(); FAIL(CL_EARG, "invalid instance %p", inst); }
// Accessors static typeArrayOop value(oop java_string) { assert(initialized && (value_offset > 0), "Must be initialized"); assert(is_instance(java_string), "must be java_string"); return (typeArrayOop) java_string->obj_field(value_offset); }
int CLAMAPI Scan_SetOption(CClamAVScanner *pScanner, int option, void *value, unsigned long inputLength) { instance *inst; unsigned int whichopt, newval; INFN(); if(!pScanner) FAIL(CL_ENULLARG, "NULL pScanner"); if(!value) FAIL(CL_ENULLARG, "NULL value"); if(lock_instances()) FAIL(CL_ELOCK, "failed to lock instances"); inst = (instance *)pScanner; if(!is_instance(inst)) { unlock_instances(); FAIL(CL_EARG, "invalid instance %p", inst); } newval = *(unsigned int *)value; switch(option) { case CLAM_OPTION_SCAN_ARCHIVE: logg("CLAM_OPTION_SCAN_ARCHIVE: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_ARCHIVE; break; case CLAM_OPTION_SCAN_MAIL: logg("CLAM_OPTION_SCAN_MAIL: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_MAIL; break; case CLAM_OPTION_SCAN_OLE2: logg("CLAM_OPTION_SCAN_OLE2: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_OLE2; break; case CLAM_OPTION_SCAN_HTML: logg("CLAM_OPTION_SCAN_HTML: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_HTML; break; case CLAM_OPTION_SCAN_PE: logg("CLAM_OPTION_SCAN_PE: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_PE; break; case CLAM_OPTION_SCAN_PDF: logg("CLAM_OPTION_SCAN_PDF: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_PDF; break; case CLAM_OPTION_SCAN_ALGORITHMIC: logg("CLAM_OPTION_SCAN_ALGORITHMIC: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_ALGORITHMIC; break; case CLAM_OPTION_SCAN_ELF: logg("CLAM_OPTION_SCAN_ELF: %s on instance %p\n", newval ? "enabled" : "disabled", inst); whichopt = CL_SCAN_ELF; break; default: unlock_instances(); FAIL(CL_EARG, "Unsupported option: %d", option); } if(!newval) inst->scanopts &= ~whichopt; else inst->scanopts |= whichopt; unlock_instances(); WIN(); }
bool string_check(object_t *self) { return is_instance(self, vm_get()->string_type); }
static int length(oop java_string) { assert(is_instance(java_string), "must be java_string"); return java_string->int_field(count_offset); }
// Accessors static typeArrayOop value(oop java_string) { assert(is_instance(java_string), "must be java_string"); return (typeArrayOop) java_string->obj_field(value_offset); }
ciInstance* as_instance() { assert(is_instance(), "bad cast"); return (ciInstance*)this; }
bool function_check(object_t *self) { return is_instance(self, vm_get()->function_type); }
// type test operations that doesn't require inclusion of oop.inline.hpp. bool oopDesc::is_instance_noinline() const { return is_instance(); }
bool bool_check(object_t *self) { return is_instance(self, vm_get()->bool_type); }
static unsigned int hash(oop java_string) { assert(initialized && (hash_offset > 0), "Must be initialized"); assert(is_instance(java_string), "must be java_string"); return java_string->int_field(hash_offset); }